簡體   English   中英

通過Powershell運行WQL查詢

[英]Run WQL query by powershell

我想知道如何使用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"

about_WQL幫助文件中所述,您可以使用以下兩個cmdlet中的一個: Get-WmiObjectGet-CimInstance ,也可以使用[wmisearcher]類型的加速器:

使用Get-WmiObject

 $queryNameVersion = "Select Name, Version from Win32_Bios"
 Get-WmiObject -Query $queryNameVersion

使用Get-CimInstance

 $queryNameVersion = "Select Name, Version from Win32_Bios"
 Get-CimInstance -Query $queryNameVersion

使用[wmisearcher]

 $searcher = [wmisearcher]"Select Name, Version from Win32_Bios"
 $searcher.Get()

Get-WmiObject設計為與WMI(Microsoft自己的CIMv2服務器實現)一起使用,而Get-CimInstance應該與任何符合CIMv2的服務器一起使用(盡管AFAIK,WQL特定於WMI)。


在您的示例中,您可以將查詢放入here字符串中以保持可讀性:

$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

簡單如:

Get-WmiObject -query $wqlQuery

標准別名是gwmi

如果在默認的WMI命名空間之外,請提供-namespace參數。

(也有Get-CimInstance -query …但我不熟悉。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM