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 类。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Context

将 WMI 上下文指定为哈希表。 它是传递给 WMI 提供程序的名称/值对列表,该提供程序支持自定义操作的上下文信息。

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableWildcardHandling

此参数将通配符视为文本字符值。 不能将其与 ForceWildcardHandling 组合使用。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ForceWildcardHandling

此参数处理通配符,并可能导致意外行为, (不建议) 。 不能将其与 DisableWildcardHandling 组合使用。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Option

最常见的选项是 Fast

指定查询选项:

  • None:默认
  • Lazy:默认情况下,cmdlet 加载延迟属性。
  • Fast:使用此选项不加载延迟属性。 对于某些类,此选项可以更快地返回结果。
  • ExpectResultsExpectResultsThrowException&:如果查询未返回任何结果,则引发异常。 此异常通常会结束脚本。
  • FastExpectResultsLazyExpectResults&:这些选项与 ExpectResults结合使用FastLazy
  • ExpectResultsSoftFail:如果查询未返回任何结果,则输出错误,但不结束脚本。

有关延迟属性的详细信息,请参阅Configuration Manager延迟属性

以下值仅供内部使用:

  • Clone
  • NoMask
  • NoRefresh
  • IgnoreNoResults
Type:QueryOptions
Aliases:Options
Accepted values:None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

指定 WMI 查询语言 (WQL) 语句。

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

指定 SMSProviderSearch 对象。

Type:SmsProviderSearch
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

None

输出

IResultObject[]

IResultObject