在 Configuration Manager 中创建查询
适用于: Configuration Manager(current branch)
本文介绍如何在 Configuration Manager 中创建和导入查询。
创建查询
使用此过程在 Configuration Manager 中创建查询。
在 Configuration Manager 控制台中,选择“监视”。
在 “监视 ”工作区中,选择“ 查询”。 在“ 主页 ”选项卡上的“ 创建 ”组中,选择“ 创建查询”。
在“创建查询向导”的“常规”选项卡上,为查询指定唯一的名称和注释(可选)。
如果要导入现有查询以用作新查询的基础,请选择“ 导入查询语句”。 在“ 浏览查询 ”对话框中,选择要导入的查询,然后选择“ 确定”。
在 “对象类型” 列表中,选择希望查询返回的对象类型。 下表描述了可搜索的对象类型的一些示例:
对象类型 说明 系统资源 用于搜索典型的系统属性,例如设备的 NetBIOS 名称、客户端版本、客户端 IP 地址和Active Directory 域服务信息。 用户资源 用于搜索典型的用户信息,例如用户名、用户组名称和安全组名称。 部署 使用 搜索部署的典型属性,例如部署名称、计划和部署集合。 选择 “编辑查询语句 ”,打开 <“查询名称>语句属性 ”对话框。
在“查询名称>语句属性”对话框的<“常规”选项卡上,指定查询返回的属性及其显示方式。 选择“ 新建 ”图标以添加新属性。 还可以选择“ 显示查询语言” ,直接在 WMI 查询语言 (WQL) 中输入或编辑查询。 有关 WMI 查询的示例,请参阅本文中的 WQL 查询示例 部分。
- 可以使用以下参考文档来帮助构建自己的 WQL 查询:
- 从 Configuration Manager 2010 开始,可以在创建或编辑集合成员身份查询时预览结果。 在 “查询语句属性”中,选择绿色三角形以显示 “查询结果预览 ”窗口。 如果要停止长时间运行的查询,请选择“ 停止 ”。
在“查询名称>语句属性”对话框的<“条件”选项卡上,指定用于优化查询结果的条件。 例如,只能返回站点代码为 XYZ 的资源。 可以为查询配置多个条件。
重要
如果创建不包含条件的查询,该查询将返回 All Systems 集合中的所有设备。
在“查询名称>语句属性”对话框的<“联接”选项卡上,可以将两个不同属性的数据合并到查询结果中。 虽然在为查询结果选择不同的属性时,Configuration Manager会自动创建查询联接,但“联接”选项卡提供了更多高级选项。 Configuration Manager支持以下属性类:
联接类型 说明 内 仅显示匹配的结果。 始终由自动创建的联接使用。 Left 显示基属性的所有结果,仅显示联接属性的匹配结果。 Right 显示联接属性的所有结果,仅显示基属性的匹配结果。 完整 显示基属性和联接属性的所有结果。 有关如何使用联接操作的详细信息,请参阅 SQL Server 文档。
选择 “确定” 以关闭“ <查询名称>语句属性 ”对话框。
在“创建查询向导”的“常规”选项卡上,指定查询结果不限于集合的成员,它们仅限于指定集合的成员,或者每次运行查询时都会显示集合的提示。
完成向导以创建查询。 新查询将显示在“监视”工作区的“查询”节点中。
导入查询
使用此过程将查询导入Configuration Manager。 有关如何导出查询的信息,请参阅 如何管理查询。
在 Configuration Manager 控制台中,选择“监视”。
在 “监视 ”工作区中,选择“ 查询”。 在“ 开始 ”选项卡上的“ 创建 ”组中,选择“ 导入对象”。
在“导入对象向导”的“MOF 文件名”页上,选择“浏览”以选择“托管对象格式” (包含要导入的查询的 MOF) 文件。
查看有关要导入的查询的信息,然后完成向导。 新查询将显示在“监视”工作区的“查询”节点上。
示例 WQL 查询
本部分包含示例 WQL 查询,可在层次结构中使用或出于其他目的进行修改。 若要使用这些查询,请在“查询语句属性”对话框中选择“显示查询语言”。 然后将查询复制并粘贴到 “查询语句 ”字段中。
提示
使用通配符 %
表示任何字符串。 例如, %Visio%
返回 office Visio 2010 Microsoft。
运行Windows 10的计算机
使用以下查询返回运行Windows 10的所有计算机的 NetBIOS 名称和操作系统版本。
select SMS_R_System.NetbiosName,
SMS_R_System.OperatingSystemNameandVersion from
SMS_R_System where
SMS_R_System.OperatingSystemNameandVersion like "%Workstation 10%"
安装了特定软件包的计算机
使用以下查询可返回安装了特定软件包的所有计算机的 NetBIOS 名称和软件包名称。 此示例返回安装了 Microsoft Visio 版本的所有计算机。 将 替换为 Microsoft%Visio%
要查询的软件包。
提示
此查询使用 Windows 控制面板 的程序列表中显示的名称搜索软件包。
select SMS_R_System.NetbiosName,
SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName from
SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on
SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceId =
SMS_R_System.ResourceId where
SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "Microsoft%Visio%"
特定Active Directory 域服务组织单位中的计算机
使用以下查询返回指定 OU 中所有计算机的 NetBIOS 名称和组织单位 (OU) 名称。 将文本 OU Name
替换为要查询的 OU 的名称。
select SMS_R_System.NetbiosName,
SMS_R_System.SystemOUName from
SMS_R_System where
SMS_R_System.SystemOUName = "OU Name"
具有特定 NetBIOS 名称的计算机
使用以下查询可返回以特定字符串字符开头的所有计算机的 NetBIOS 名称。 在此示例中,查询返回以 开头 ABC
的 NetBIOS 名称的所有计算机。
select SMS_R_System.NetbiosName from
SMS_R_System where SMS_R_System.NetbiosName like "ABC%"
特定类型的设备
设备类型存储在资源类sms_r_system和属性名称 AgentEdition 下的 Configuration Manager 数据库中。 使用此查询仅检索与指定的设备类型的代理版本匹配的设备:
Select SMS_R_System.ClientEdition from SMS_R_System where SMS_R_System.ClientEdition = <Device ID>
将以下值之一用于 <设备 ID>:
设备类型 | AgentEdition 的值 |
---|---|
Windows 台式机或便携式计算机 | 0 |
基于 Windows ARM 的设备 (运行Windows RT) | 1 |
Windows Mobile 6.5 | 2 |
Nokia Symbian | 3 |
Windows Phone | 4 |
Mac 计算机 | 5 |
Windows Embedded | 7 |
芯片上的 Intel 系统 | 12 |
Microsoft HoloLens (MDM) | 15 |
Microsoft Surface Hub (MDM) | 16 |
注意
此表中未列出的值与不再受支持的设备相关联。
例如,如果只想返回 Mac 计算机,请使用以下查询:
Select SMS_R_System.ClientEdition from SMS_R_System where SMS_R_System.ClientEdition = 5
共同管理的设备
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_Client_ComanagementState on SMS_Client_ComanagementState.ResourceId = SMS_R_System.ResourceId
where SMS_Client_ComanagementState.ComgmtPolicyPresent = 1 AND SMS_Client_ComanagementState.MDMEnrolled = 1 AND MDMProvisioned = 1