Как описано в файле справки about_WQL
, вы можете использовать один из следующих 2 командлета: Get-WmiObject
или Get-CimInstance
, либо можно использовать ускоритель типа [wmisearcher]
:
$queryNameVersion = "Select Name, Version from Win32_Bios"
Get-WmiObject -Query $queryNameVersion
$queryNameVersion = "Select Name, Version from Win32_Bios"
Get-CimInstance -Query $queryNameVersion
$searcher = [wmisearcher]"Select Name, Version from Win32_Bios"
$searcher.Get()
Get-WmiObject
предназначен для работы с WMI (собственная реализация сервера Microsoft CIMv2), тогда как Get-CimInstance
должен работать с любым сервером, совместимым с CIMv2 (хотя, насколько мне известно, WQL специфичен для WMI).
В вашем примере вы можете поместить запрос в здесь-строку, чтобы сохранить читабельность:
$SCCMQuery = @'
Select UAR.User, UAR.Application, UAR.CurrentState from sms_fullcollectionmembership as FCM
INNER JOIN SMS_UserApplicationRequest as UAR ON UAR.User=FCM.SMSID
where FCM.CollectionID="100104"
'@
$Results = Get-WmiObject -Namespace "root\SMS\Site_Name" -Query $SCCMQuery
person
Mathias R. Jessen
schedule
09.07.2015