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
指定可选注释以进一步标识网站中的查询。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Confirm
提示你在运行 cmdlet 之前进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DisableWildcardHandling
此参数将通配符视为文本字符值。 不能将其与 ForceWildcardHandling 组合使用。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Expression
指定要在结果中显示的属性和限制结果的条件的 WQL 语句。
WQL 语句通常包含双引号 ("
) ,因此请将此参数的值设置为用单引号括起来的字符串 ('
) 。
有关更多示例,请参阅 示例 WQL 查询。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-ForceWildcardHandling
此参数处理通配符,并可能导致意外行为, (不建议) 。 不能将其与 DisableWildcardHandling 组合使用。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-LimitToCollectionId
指定如何为此查询配置集合限制:
-
不受集合限制:将此参数的值设置为空白字符串 (
""
) 。 不要使用$null
内置变量。 -
对集合的限制:指定集合的 ID。 例如,
"SMSDM003"
对于 “所有桌面和服务器客户端” 集合。 -
提示收集:将此参数的值设置为
"<Prompt>"
。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Name
指定查询的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-TargetClassName
指定希望查询返回的对象类的名称。 有许多可用的对象类型。 下表列出了多个常见类名以及 Configuration Manager 控制台中的说明:
类名 | 说明 |
---|---|
SMS_R_System |
系统资源 |
SMS_Program |
程序 |
SMS_R_UserGroup |
用户组资源 |
SMS_R_User |
User 资源 |
SMS_SiteAndSubsites |
网站和子网站 |
SMS_R_UnknownSystem |
未知计算机 |
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示在 cmdlet 运行时发生的情况。 cmdlet 不会运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
None
输出
IResultObject