Подзапрос WQL как значение поля, запрос WQL CIMV2 WMI для фильтра WMI

Мне нужна помощь по запросу WMI для WMI-фильтра групповой политики. Я запрашиваю пространство имен win32_group в поставщике WMI root\CIMV2.

Я выполняю поиск группы локальной безопасности (например, «Администраторы») на нескольких компьютерах с окнами (XP-8, сервер 03-12). Когда запрос выполняется на компьютере, я хотел бы, чтобы он вводил имя компьютера в поле эквивалентности для домена.

Базовый оператор WQL выглядит следующим образом:

SELECT * FROM win32_group 
WHERE Domain="currentComputerName" and Name="Administrators"

Моя цель – запустить WQL-оператор в том же духе, но это плохой WQL-оператор:

SELECT * FROM win32_group 
WHERE Domain=(SELECT Name FROM Win32_ComputerSystem) and Name="Administrators" 

Важно, чтобы я мог ввести имя текущего компьютера для домена. Эти компьютеры являются частью домена Active Directory (AD). По умолчанию win32_group будет искать все группы домена AD в дополнение к группе безопасности локального компьютера (если параметр домена не указан). Указав имя локальной машины в качестве домена, производительность запроса во много раз выше, что важно для его цели.

Я безуспешно пробовал некоторые варианты запросов в WBEMTEST. Есть ли у кого-нибудь какие-либо идеи о том, как ввести имя компьютера в запрос WQL WMI? Есть ли константа, которую я мог бы использовать, например, HOSTNAME в командной строке?

Спасибо за помощь!


person Dan    schedule 17.05.2013    source источник


Ответы (1)


На каком языке ты это пишешь? Или, чтобы было ясно, какой язык программирования или сценариев вы используете для выполнения этих запросов WMI?

В PowerShell это можно сделать, выполнив следующий код:

Get-WMIObject -Query "SELECT * FROM Win32_Group WHERE Domain='$env:USERDOMAIN' AND Name='Administrators'"
person ravikanth    schedule 03.06.2013