Invoke-CMWmiQuery
运行 WMI 查询。
语法
Invoke-CMWmiQuery
[-Context <Hashtable>]
[-Option <QueryOptions>]
[-Query] <String>
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CMWmiQuery
-ClassName <String>
[-Context <Hashtable>]
[-Option <QueryOptions>]
-Search <SmsProviderSearch>
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
Invoke-CMWmiQuery cmdlet 运行 Windows Management Instrumentation (WMI) 查询。 与其他查询 cmdlet 或工具不同,使用此 cmdlet,已为你设置了连接和命名空间。
还可以使用此 cmdlet 创建具有 WMI 查询语言 (WQL) 的查询。 Configuration Manager 对集合中的查询使用 WQL。 WQL 类似于 SQL,但仍使用 SMS 提供程序,因此遵守基于角色的访问控制。
注意
从 Configuration Manager 站点驱动器运行 Configuration Manager cmdlet,例如 PS XYZ:\>
。 有关详细信息,请参阅 入门。
示例
示例 1:运行 WQL 查询
第一个命令创建 WQL 查询并将其存储在 $WQL 变量中。 第二个命令运行存储在 变量中的查询。
$WQL = @"
SELECT app.* FROM SMS_ApplicationLatest AS app
INNER JOIN SMS_CIContentPackage AS con ON app.CI_ID=con.CI_ID
INNER JOIN SMS_DistributionPoint AS srv ON con.PackageID=srv.PackageID
WHERE app.IsHidden = 0
"@
Invoke-CMWmiQuery -Query $WQL -Option Lazy
示例 2:为设备集合运行 WMI 查询
第一个命令创建搜索对象并将对象存储在 $Search 变量中。
第二个命令指定搜索顺序按 CollectionID 升序。
第三个命令将搜索参数添加到 $Search 对象。 在这种情况下,查询将搜索设备集合。
最后一个命令运行存储在 $Search 中的查询。 它将 SMS_Collection 指定为包含 CollectionID 属性的类。
$Search = [Microsoft.ConfigurationManagement.PowerShell.Provider.SmsProviderSearch]::new()
$Search.AddOrder("CollectionID", [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOrderBy]::Asc)
$Search.Add("Name","DeviceCol*", $True)
Invoke-CMWmiQuery -Search $Search -ClassName "SMS_Collection" -Option Lazy
示例 3:按状态运行站点的 WMI 查询
第一个命令从任何现有搜索对象中清除搜索参数。
第二个命令将搜索参数添加到 $Search 对象。 在这种情况下,查询将搜索网站。
最后一个命令运行存储在 $Search 中的查询。 它将 SMS_Site 指定为包含站点 Status 属性的类。
$Search.Clear()
$Search.Add("Status", $True)
Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search
示例 4:按名称运行站点的 WMI 查询
第一个命令从任何现有搜索对象中清除搜索参数。
第二个命令将搜索参数添加到 $Search 对象。 在这种情况下,查询将搜索网站。
最后一个命令运行存储在 $Search 中的查询。 它将 SMS_Site 指定为包含 SiteName 属性的类。
$Search.Clear()
$Search.Add("SiteName", $null, [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOperator]::NotEquals)
Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search
示例 5:为应用程序运行 WMI 查询
第一个命令从任何现有搜索对象中清除搜索参数。
第二个命令将搜索参数添加到 $Search 对象。 在这种情况下,查询将搜索应用程序。
最后一个命令运行存储在 $Search 中的查询。 它将 SMS_Application 指定为包含站点 CI_ID属性的 类。
$Search.Clear()
$Search.AddAdhoc("CI_ID > 0")
Invoke-CMWmiQuery -ClassName "SMS_Application" -Search $Search -Option Lazy
参数
-ClassName
指定要查询的 Configuration Manager WMI 类。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Context
将 WMI 上下文指定为哈希表。 它是传递给 WMI 提供程序的名称/值对列表,该提供程序支持自定义操作的上下文信息。
类型: | Hashtable |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DisableWildcardHandling
此参数将通配符视为文本字符值。 不能将其与 ForceWildcardHandling 组合使用。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ForceWildcardHandling
此参数处理通配符,并可能导致意外行为, (不建议) 。 不能将其与 DisableWildcardHandling 组合使用。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Option
最常见的选项是 Fast
。
指定查询选项:
-
None
:违约 -
Lazy
:默认情况下,cmdlet 加载延迟属性。 -
Fast
:使用此选项不加载延迟属性。 对于某些类,此选项可以更快地返回结果。 -
ExpectResults
ExpectResultsThrowException
&:如果查询未返回任何结果,则引发异常。 此异常通常会结束脚本。 -
FastExpectResults
LazyExpectResults
&:这些选项与ExpectResults
结合使用Fast
。Lazy
-
ExpectResultsSoftFail
:如果查询未返回任何结果,则输出错误,但不结束脚本。
有关延迟属性的详细信息,请参阅 Configuration Manager 延迟属性。
以下值仅供内部使用:
- Clone
- NoMask
- NoRefresh
- IgnoreNoResults
类型: | QueryOptions |
别名: | Options |
接受的值: | None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Query
指定 WMI 查询语言 (WQL) 语句。
类型: | String |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-Search
指定 SMSProviderSearch 对象。
类型: | SmsProviderSearch |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示在 cmdlet 运行时发生的情况。 cmdlet 不会运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
None
输出
IResultObject[]
IResultObject