运行 通过 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"
简单如:
Get-WmiObject -query $wqlQuery
标准别名是 gwmi
。
如果在默认 WMI 命名空间之外,请提供 -namespace
参数。
(还有Get-CimInstance -query …
,但我不熟悉。)
如 about_WQL
帮助文件中所述,您可以使用以下 2 个 cmdlet 之一:Get-WmiObject
或 Get-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(微软自己的 CIMv2 服务器实现)一起使用,而 Get-CimInstance
应该与任何 CIMv2 兼容的服务器一起工作(尽管据我所知,WQL 是特定于 WMI 的) .
在您的示例中,您可以将查询放入 here-string 以保持可读性:
$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
我想知道如何使用 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"
简单如:
Get-WmiObject -query $wqlQuery
标准别名是 gwmi
。
如果在默认 WMI 命名空间之外,请提供 -namespace
参数。
(还有Get-CimInstance -query …
,但我不熟悉。)
如 about_WQL
帮助文件中所述,您可以使用以下 2 个 cmdlet 之一:Get-WmiObject
或 Get-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(微软自己的 CIMv2 服务器实现)一起使用,而 Get-CimInstance
应该与任何 CIMv2 兼容的服务器一起工作(尽管据我所知,WQL 是特定于 WMI 的) .
在您的示例中,您可以将查询放入 here-string 以保持可读性:
$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