如何在 Configuration Manager 中使用管理服务

适用于: Configuration Manager(current branch)

Configuration Manager在多种本机方案中使用管理服务 REST API。 还可以将管理服务用于自己的自定义方案。

注意

本文中的示例都使用托管 SMS 提供程序角色的服务器 FQDN。 如果通过 CMG 远程访问管理服务,请使用 CMG 终结点而不是 SMS 提供程序 FQDN。 有关详细信息,请参阅 启用 Internet 访问

直接查询

可通过多种方式直接查询管理服务:

  • Web 浏览器
  • PowerShell
  • 用于向 Web 服务发送 HTTPS GET 或 PUT 请求的第三方工具

后续部分介绍前两种方法。

重要

管理服务类名称区分大小写。 请确保使用正确的大写。 例如,SMS_Site

Web 浏览器

可以使用 Web 浏览器轻松查询管理服务。 将查询 URI 指定为浏览器的 URL 时,管理服务将处理 GET 请求,并返回 JSON 格式的结果。 某些 Web 浏览器可能无法以易于阅读的格式显示结果。

PowerShell

使用 Windows PowerShell cmdlet Invoke-RestMethod 直接调用此服务。

例如:

Invoke-RestMethod -Method 'Get' -Uri "https://SMSProviderFQDN/AdminService/wmi/SMS_Site" -UseDefaultCredentials

此命令返回以下输出:

@odata.context                                                value
--------------                                                -----
https://SMSProviderFQDN/AdminService/wmi/$metadata#SMS_Site   {@{@odata.etag=FC1; __LAZYPROPERTIES=System.Objec...

以下示例向下钻取到更具体的值:

((Invoke-RestMethod -Method 'Get' -Uri "https://SMSProviderFQDN/AdminService/wmi/SMS_Site" -UseDefaultCredentials).value).Version

此命令的输出是站点的特定版本: 5.00.8968.1000

从任务序列调用 PowerShell

可以在运行 PowerShell 脚本任务序列步骤中的 PowerShell 脚本中使用 Invoke-RestMethod cmdlet。 通过此操作,可以在任务序列期间查询管理服务。

有关详细信息,请参阅 任务序列步骤 - 运行 PowerShell 脚本

Power BI Desktop

可以使用Power BI Desktop通过管理服务查询Configuration Manager中的数据。 有关详细信息,请参阅什么是Power BI Desktop?

  1. 在“Power BI Desktop”功能区中,选择“获取数据”,然后选择“OData 源”。

  2. 对于 URL,请指定管理服务路由。 例如,https://smsprovider.contoso.com/AdminService/wmi/

  3. 选择 “Windows 身份验证”。

  4. “导航器 ”窗口中,选择要在 Power BI 仪表板或报表中使用的项。

Power BI Desktop中导航器窗口的屏幕截图

示例查询

获取有关特定设备的更多详细信息

https://<ProviderFQDN>/AdminService/wmi/SMS_R_System(<ResourceID>)

例如:https://smsprovider.contoso.com/AdminService/wmi/SMS_R_System(16777219)

v1 设备类示例

  • 获取所有设备: https://<ProviderFQDN>/AdminService/v1.0/Device

  • 获取单个设备: https://<ProviderFQDN>/AdminService/v1.0/Device(<ResourceID>)

  • 在设备上运行 CMPivot:

    Verb: POST
    URI: https://<ProviderFQDN>/AdminService/v1.0/Device(<ResourceID>)/AdminService.RunCMPivot
    Body: {"InputQuery":"<CMPivot query to run>"}
    
  • 请参阅 CMPivot 作业结果:

    Verb: GET
    URI: https://<ProviderFQDN>/AdminService/v1.0/Device(<ResourceID>)/AdminService.CMPivotResult(OperationId=<Operation ID of the CM Pivot job>)
    
  • 查看设备属于哪些集合: https://<ProviderFQDN>/AdminService/v1.0/Device(16777219)/ResourceCollectionMembership?$expand=Collection&$select=Collection

使用 startswith 筛选结果

此示例 URI 仅显示其名称以 开头的 All集合。

https://<ProviderFQDN>/AdminService/wmi/SMS_Collection?$filter=startswith(Name,'All') eq true

运行静态 WMI 方法

此示例在采用名为 Type的参数的 SMS_AdminClass上调用 GetAdminExtendedData 方法,其参数值为 1

Verb: Post
URI: https://<ProviderFQDN>/AdminService/wmi/SMS_Admin.GetAdminExtendedData
Body: {"Type":1}

后续步骤

自定义设备属性