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结合使用FastLazy
  • 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

指定 SMSProviderSearch 对象。

类型:SmsProviderSearch
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-WhatIf

显示在 cmdlet 运行时发生的情况。 cmdlet 不会运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

输入

None

输出

IResultObject[]

IResultObject