New-CMQuery

创建Configuration Manager查询。

语法

New-CMQuery
   [-Comment <String>]
   -Expression <String>
   [-LimitToCollectionId <String>]
   -Name <String>
   [-TargetClassName <String>]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

使用此 cmdlet 在 Configuration Manager 中创建查询。

Configuration Manager查询定义 WMI 查询语言 (WQL) 表达式,以便根据提供的条件从站点数据库获取信息。 WQL 类似于 SQL,但仍通过 SMS 提供程序而不是直接访问数据库。 因此,WQL 仍遵循基于角色的访问配置。

查询可以返回大多数类型的Configuration Manager对象,其中包括计算机、站点、集合、应用程序和清单数据。 有关详细信息,请参阅 Configuration Manager 中的查询简介

默认情况下,Configuration Manager包含多个查询。 可以使用 Get-CMQuery cmdlet 查看默认查询。 有关 WQL 表达式的更多示例,请参阅 示例 WQL 查询

注意

从Configuration Manager站点驱动器运行Configuration Manager cmdlet,例如 PS XYZ:\>。 有关详细信息,请参阅 入门

示例

示例 1:为特定版本的服务器创建新查询

此示例创建一个名为 Server 2016 的新查询,该查询搜索以 Microsoft Windows Server 2012 开头的操作系统标题的客户端。 它返回以下三个属性: 名称上次登录用户名OS 标题

New-CMQuery -Name "Server 2016" -Expression 'select SMS_R_System.Name, SMS_R_System.LastLogonUserName, SMS_G_System_OPERATING_SYSTEM.Caption from SMS_R_System inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Caption like "Microsoft Windows Server 2012%"' -TargetClassName "SMS_R_System" -LimitToCollectionId "SMS00001"

示例 2:为桌面设备创建查询

此示例创建名为“桌面设备”的新查询,该查询搜索具有 System Enclosure 类的“机箱类型”属性的特定值的设备。 它返回多个属性,并受特定集合的限制。

New-CMQuery -Name "Desktop devices" -Expression 'select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_SYSTEM_ENCLOSURE on SMS_G_System_SYSTEM_ENCLOSURE.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes in ( "3", "4", "5","6", "7", "15","16")' -TargetClassName "SMS_R_System" -LimitToCollectionId "XYZ000049"

参数

-Comment

指定可选注释以进一步标识网站中的查询。

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

-Confirm

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

Type:SwitchParameter
Aliases:cf
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

-Expression

指定要在结果中显示的属性和限制结果的条件的 WQL 语句。

WQL 语句通常包含双引号 (") ,因此请将此参数的值设置为用单引号括起来的字符串 (') 。

有关更多示例,请参阅 示例 WQL 查询

Type:String
Position:Named
Default value:None
Required:True
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

-LimitToCollectionId

指定如何为此查询配置集合限制:

  • 不受集合限制:将此参数的值设置为空白字符串 ("") 。 不要使用 $null 内置变量。
  • 对集合的限制:指定集合的 ID。 例如, "SMSDM003" 对于 “所有桌面和服务器客户端” 集合。
  • 提示收集:将此参数的值设置为 "<Prompt>"
Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

指定查询的名称。

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

-TargetClassName

指定希望查询返回的对象类的名称。 有许多可用的对象类型。 下表列出了多个常见类名,以及Configuration Manager控制台中的说明:

类名 说明
SMS_R_System 系统资源
SMS_Program 程序
SMS_R_UserGroup 用户组资源
SMS_R_User User 资源
SMS_SiteAndSubsites 网站和子网站
SMS_R_UnknownSystem 未知计算机
Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

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

输入

None

输出

IResultObject