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

適用於:Configuration Manager (目前的分支)

Configuration Manager 在數個原生案例中使用系統管理服務 REST API。 您也可以針對自己的自訂案例使用管理服務。

注意事項

本文中的範例都使用主控簡訊提供者角色之伺服器的 FQDN。 如果您透過 CMG 遠端存取系統管理服務,請使用 CMG 端點,而非 SMS 提供者 FQDN。 如需詳細資訊,請參閱 啟用網際網路存取

直接查詢

有幾種方法可以直接查詢管理服務:

  • 網頁瀏覽器
  • PowerShell
  • 將 HTTPS GET 或 PUT 要求傳送到 Web 服務的協力廠商工具

接下來的章節將涵蓋前兩種方法。

重要事項

管理服務類別名稱會區分大小寫。 請務必使用正確的大小寫。 例如,SMS_Site

網頁瀏覽器

您可以使用網頁瀏覽器輕鬆查詢管理服務。 當您將查詢 URI 指定為瀏覽器的 URL 時,系統管理服務會處理 GET 要求,並以 JSON 格式傳回結果。 某些網頁瀏覽器可能不會以易於閱讀的格式顯示結果。

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 方法

此範例會在SMS_AdminClass上叫用 GetAdminExtendedData 方法,該方法採用名為 Type 的參數與值1

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

後續步驟

裝置的自訂屬性