Назад | Перейти на главную страницу

WMI-запрос для определенных имен компьютеров, но не для других

Я пытаюсь написать запрос GPO WMI, который будет включать компьютеры с определенными именами, но при этом исключать некоторые машины, подпадающие под эти параметры. Вот что у меня есть (и не работает):

SELECT * FROM Win32_ComputerSystem WHERE Name LIKE '%MSD%' OR Name LIKE '%MSL%' AND NOT Name LIKE "%MSDSY%"

Этот вариант не сработал. Я также попытался разделить его на два разных запроса, как показано ниже:

SELECT * FROM Win32_ComputerSystem WHERE Name LIKE '%MSD%' OR Name LIKE '%MSL%'

А потом:

SELECT * from Win32_ComputerSystem WHERE NOT Name LIKE "%MSDSY01% OR %MSDSY02% OR %MSDSY05%"

Это тоже не сработало. Кто-нибудь может сказать мне, что я сделал не так? Спасибо.

Я не проверял скобку из предыдущего ответа, если она работает, это должно решить ее.

На мой взгляд, вы слишком усложняете, это можно упростить. Во-первых, если имена ваших серверов всегда начинаются с MS, опустите начальный знак процента. Затем представьте, что это соответствует всему, что вы хотите, а затем исключите те, которые вам не нужны.

Вы хотите, чтобы все серверы, начинающиеся с MS

SELECT * FROM Win32_ComputerSystem WHERE Name LIKE 'MS%'

Вам не нужны серверы, которые начинаются с MSDS (или MSDSY, но в вашем примере вы можете остановиться на втором S)

SELECT * FROM Win32_ComputerSystem WHERE not Name LIKE 'MSDS%' 

Теперь объедините их

SELECT * FROM Win32_ComputerSystem WHERE Name LIKE 'MS%' AND NOT Name LIKE 'MSDS%'

Это получит все серверы, которые начинаются с MS, кроме тех, которые начинаются с MSDS.

Я также рекомендую вам использовать Утилита WBEMTEST, это может помочь вам точно настроить эти запросы (и / или убедиться, что ваш ответ точен при обмене стеками!)

Я не создавал WMI-запросы в GPMC более года, но думаю, ваш второй запрос будет работать, если вы просто добавите несколько скобок:

ВЫБЕРИТЕ * ИЗ Win32_ComputerSystem WHERE (Имя КАК '% MSD%' ИЛИ ​​Имя КАК '% MSL%')

Содержимое в круглых скобках должно возвращать истину только для этих двух совпадений с подстановочными знаками. Если имя компьютера другое, запрос вернет false, и объект групповой политики к нему применяться не будет.