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

适用于: Configuration Manager(current branch)

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

注意

本文中的示例都使用托管 SMS 提供程序角色的服务器的 FQDN。 如果通过 CMG 远程访问管理服务,请使用 CMG 终结点而不是短信提供程序 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 方法

此示例对名为 Type1的参数的SMS_AdminClass调用 GetAdminExtendedData 方法 值.

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

后续步骤

自定义设备属性