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

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

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

注意事項

本文中的範例全都使用裝載 SMS 提供者角色之伺服器的 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 方法

此範例會在採用名為Type且值 1 為 之參數的SMS_AdminClass上叫用GetAdminExtendedData方法。

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

後續步驟

裝置的自訂屬性