我想知道如何使用powershell运行WQL查询。下面是WQL查询
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"发布于 2015-07-09 07:37:33
如about_WQL帮助文件中所述,您可以使用以下两个cmdlet中的一个: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使用[[wmisearcher]](https://msdn.microsoft.com/en-us/library/system.management.managementobjectsearcher(v=vs.110%29.aspx) )
$searcher = [wmisearcher]"Select Name, Version from Win32_Bios"
$searcher.Get()Get-WmiObject被设计为与WMI (Microsofts自己的CIMv2服务器实现)一起工作,而Get-CimInstance则应该与任何符合CIMv2的服务器一起工作(尽管,Get-CimInstance是特定于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发布于 2015-07-09 07:37:12
简单到:
Get-WmiObject -query $wqlQuery标准别名是gwmi。
如果在默认的WMI之外,则提供-namespace参数。
(也有Get-CimInstance -query …,但我对此并不熟悉。)
https://stackoverflow.com/questions/31310838
复制相似问题