使用商務用 Windows Update 部署服務部署功能更新

商務用 Windows Update 部署服務可用來核准和排程軟體更新。 部署服務會透過 Microsoft 圖形 API 公開其功能。 您可以透過 Graph SDK 直接呼叫 API,或將其與管理工具整合,例如 Microsoft Intune

本文使用 Graph 總管 逐步解說將功能更新部署至客戶端的整個程式。 在本文中,您將:

在本文中,您將:

必要條件

必須符合商務用 Windows Update 部署服務的所有必要條件

權限

本文所列的查詢需要下列許可權:

某些角色,例如 Windows Update 部署系統管理員,已經擁有這些許可權。

開啟圖形總管

在本文中,您將使用 Graph 總管向 Microsoft Graph API 提出要求,以擷取、新增、刪除和更新數據。 Graph 總管是開發人員工具,可讓您瞭解 Microsoft Graph API。 如需使用 Graph 總管的詳細資訊,請 參閱開始使用 Graph 總管

警告

  • 本文中列出的要求需要使用 Microsoft 365 帳戶登入。 如有需要,Microsoft 365 商務進階版 可免費試用一個月。
  • 強烈建議使用測試租用戶來學習並確認部署程式。 Graph 總管是一種學習工具。 繼續之前,請確定您已瞭解 與 Graph Explorer 的 同意類型
  1. 從瀏覽器,移至 [圖形總管],然後使用 Microsoft Entra 用戶帳戶登入。

  2. 您可能需要啟WindowsUpdates.ReadWrite.All用許可權,才能使用本文中的查詢。 若要啟用權限:

    1. 選取 [圖形總管] 中的 [ 修改許可權 ] 索引標籤。

    2. 在 [許可權] 對話框中,選取 [WindowsUpdates.ReadWrite.All] 許可權,然後選取 [ 同意]。 您可能需要再次登入以授與同意。

      Graph 總管中 [修改許可權] 索引標籤的螢幕快照

  3. 若要提出要求:

    1. 從 HTTP 方法的下拉式清單中選取 GET、POST、PUT、PATCH 或 DELETE。
    2. 在 [URL] 欄位中輸入要求。 版本會根據 URL 自動填入。
    3. 如果您需要修改要求本文,請編輯 [ 要求本文] 索引標籤。
    4. 選取 [ 執行查詢] 按鈕。 結果會出現在 [ 回應 ] 視窗中。

    提示

    檢閱 Microsoft Graph 檔時,您可能會注意到範例要求通常會列出 content-type: application/jsoncontent-type Graph 總管通常不需要指定 ,但您可以選取 [標] 索引標籤,並將 新content-type增至 [要求標頭] 字段做為 [索引鍵] 和 application/json [值],將它新增至要求。

執行查詢以識別裝置

使用 裝置 資源類型來尋找要註冊到部署服務的用戶端。 變更查詢參數以符合您的特定需求。 如需詳細資訊,請 參閱使用查詢參數

  • 顯示 所有裝置的 AzureAD 裝置識別碼名稱

    GET https://graph.microsoft.com/v1.0/devices?$select=deviceid,displayName
    
  • 顯示名稱開頭Test為 之裝置的 AzureAD 裝置識別碼和名稱:

    GET https://graph.microsoft.com/v1.0/devices?$filter=startswith(displayName,'Test')&$select=deviceid,displayName
    

新增進階查詢的要求標頭

針對下一個要求,將 ConsistencyLevel 標頭設定為 eventual。 如需進階查詢參數的詳細資訊,請參閱 Microsoft Entra 目錄對象的進階查詢功能

  1. 在 [圖形總管] 中,選取 [ 要求標頭] 索引卷 標。

  2. 針對 中的索引ConsistencyLevel鍵類型,以及 Value 的 索引鍵類型,輸入 eventual

  3. 選取 [ 新增] 按鈕。 當您完成時,請選取垃圾桶圖示來移除要求標頭。

    Graph 總管中要求標頭索引標籤的螢幕快照

  • 顯示具有 作為 AzureAD 裝置識別碼之裝置01234567-89ab-cdef-0123-456789abcdef名稱作業系統版本

    GET https://graph.microsoft.com/v1.0/devices?$search="deviceid:01234567-89ab-cdef-0123-456789abcdef"&$select=displayName,operatingSystemVersion
    
  • 若要尋找可能不是虛擬機的裝置,請篩選未將虛擬機列為模型但已列出製造商的裝置。 顯示每個 裝置的 AzureAD 裝置識別碼名稱作業系統版本

    GET https://graph.microsoft.com/v1.0/devices?$filter=model ne 'virtual machine' and NOT(manufacturer eq null)&$count=true&$select=deviceid,displayName,operatingSystemVersion
    

提示

使用 裝置 資源類型的要求通常同時 id 具有 和 deviceid

  • deviceidMicrosoft Entra 裝置識別碼,將在本文中使用。
    • 在本文稍後, deviceid 當您提出某些要求,例如將裝置新增至部署物件時,這會作為 id
  • 來自id裝置資源類型的 通常是 Microsoft Entra 物件標識符,本文不會使用此標識符。

註冊裝置

當您將裝置註冊到功能更新管理時,部署服務會成為來自 Windows Update 功能更新的授權單位。 只要裝置仍透過部署服務註冊功能更新管理,除非使用部署服務明確部署,否則裝置不會收到來自 Windows Update 的任何其他功能更新。 如果裝置尚未收到更新,則會提供指定的功能更新。 例如,如果您將 Windows 11 功能更新版本 22H2 部署到已註冊到功能更新管理的裝置,且目前使用舊版的 Windows 11,則裝置會更新為 22H2 版。 如果裝置已在執行 22H2 版或更新版本,則會保持其目前的版本。

提示

Windows Update 商務用報表有一個活頁簿,可顯示裝置的目前操作系統版本。 在活頁簿中,移至 [ 功能更新] 索引標籤 ,然後在 [ 服務中功能更新 ] 圖格中,選 取 [檢視詳細數據 ] 連結以開啟詳細數據飛出視窗。 您可以輕鬆地將裝置的OS版本和 Microsoft Entra ID 匯出至 .csv 檔案,或在 Azure 監視器記錄中開啟,以在建立部署物件時提供協助。

您可以根據您想要接收的更新類型來註冊裝置。 目前,您可以註冊裝置來接收功能更新, () feature 或驅動程式 (driver) 。 您可以註冊裝置以接收來自多個更新分類的更新。

  1. 若要註冊裝置,請使用 enrollAssets POST 到 updatableAssets。 下列範例會註冊三個裝置來接收驅動程式更新:
    1. 在 [圖形總管] 中,從 HTTP 動詞命令的下拉式清單中選取 [ POST ]。

    2. 在 [URL] 欄位中輸入下列要求:
      https://graph.microsoft.com/beta/admin/windows/updates/updatableAssets/enrollAssets

    3. 在 [ 要求本文] 索引標籤中,輸入下列 JSON,並提供下列資訊:

      • Microsoft Entra 裝置標識碼id
      • featuredriver updateCategory
      {
        "updateCategory": "driver",
        "assets": [
          {
            "@odata.type": "#microsoft.graph.windowsUpdates.azureADDevice",
            "id": "01234567-89ab-cdef-0123-456789abcdef"
          },
          {
            "@odata.type": "#microsoft.graph.windowsUpdates.azureADDevice",
            "id": "01234567-89ab-cdef-0123-456789abcde0"
          },
          {
            "@odata.type": "#microsoft.graph.windowsUpdates.azureADDevice",
            "id": "01234567-89ab-cdef-0123-456789abcde1"
          }
        ]
      }
      
    4. 選取 [ 執行查詢] 按鈕。 結果會出現在 [ 回應 ] 視窗中。 在此情況下,為的 202 AcceptedHTTP 狀態代碼。

      透過 Graph 總管成功註冊資產的螢幕快照。

列出功能更新的目錄專案

每個功能更新都會與唯一 的目錄項目相關聯。 傳 id 回的 是 目錄標識碼 ,用來建立部署。 功能更新可部署,直到達到其支援淘汰日期為止。 如需詳細資訊,請參閱 Windows 10Windows 11 Enterprise and Education 版本的支援生命週期日期。 下列查詢會列出所有可部署的功能更新類別目錄專案:

GET https://graph.microsoft.com/beta/admin/windows/updates/catalog/entries?$filter=isof('microsoft.graph.windowsUpdates.featureUpdateCatalogEntry')

下列截斷的回應會顯示 Windows 11 版本 22H2 功能更新的目錄d9049ddb-0ca8-4bc1-bd3c-41a456ef300f識別碼:

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#admin/windows/updates/catalog/entries",
    "value": [
        {
            "@odata.type": "#microsoft.graph.windowsUpdates.featureUpdateCatalogEntry",
            "id": "d9049ddb-0ca8-4bc1-bd3c-41a456ef300f",
            "displayName": "Windows 11, version 22H2",
            "deployableUntilDateTime": "2025-10-14T00:00:00Z",
            "releaseDateTime": "2022-09-20T00:00:00Z",
            "version": "Windows 11, version 22H2",
            "buildNumber": "22621"
        }
    ]
}

建立部署

建立功能更新的部署時,有多個選項可用來定義部署的運作方式。 部署和監視設定是選擇性的。 下列部署設定定義於部署 Windows 11 22H2 版功能更新的範例要求本文中, () 的d9049ddb-0ca8-4bc1-bd3c-41a456ef300f目錄識別碼:

  • 2023 年 2 月 14 日上午 5 點 UTC 的部署開始日期
  • 以每三天 100 部裝置的速率逐步推出
  • 監視規則 ,如果五部裝置復原功能更新,將會暫停部署
  • 將所有適用保護措施套用至部署中裝置的默認 保護保留 行為
    • 未明確定義保護保留時,會自動套用默認保護保留行為
POST https://graph.microsoft.com/beta/admin/windows/updates/deployments
content-type: application/json

{
    "content": {
        "@odata.type": "#microsoft.graph.windowsUpdates.catalogContent",
        "catalogEntry": {
            "@odata.type": "#microsoft.graph.windowsUpdates.featureUpdateCatalogEntry",
            "id": "d9049ddb-0ca8-4bc1-bd3c-41a456ef300f"
        }
    },
    "settings": {
        "@odata.type": "microsoft.graph.windowsUpdates.deploymentSettings",
        "schedule": {
            "startDateTime": "2023-02-14T05:00:00Z",
            "gradualRollout": {
                "@odata.type": "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
                "durationBetweenOffers": "P3D",
                "devicesPerOffer": "100"
            }
        },
        "monitoring": {
            "monitoringRules": [
                {
                    "signal": "rollback",
                    "threshold": 5,
                    "action": "pauseDeployment"
                }
            ]
        }
    }
}

回應本文將包含:

  • 範例中的新部署標識de910e12-3456-7890-abcd-ef1234567890

  • 範例中的新物件標識d39ad1ce-0123-4567-89ab-cdef01234567

  • 部署要求本文中定義的任何設定

    {
         "@odata.context": "https://graph.microsoft.com/beta/$metadata#admin/windows/updates/deployments/$entity",
         "id": "de910e12-3456-7890-abcd-ef1234567890",
         "createdDateTime": "2023-02-07T19:21:15.425905Z",
         "lastModifiedDateTime": "2023-02-07T19:21:15Z",
         "state": {
             "effectiveValue": "scheduled",
             "requestedValue": "none",
             "reasons": []
         },
         "content": {
             "@odata.type": "#microsoft.graph.windowsUpdates.catalogContent",
             "catalogEntry@odata.context": "https://graph.microsoft.com/beta/$metadata#admin/windows/updates/deployments('de910e12-3456-7890-abcd-ef1234567890')/content/microsoft.graph.windowsUpdates.catalogContent/catalogEntry/$entity",
             "catalogEntry": {
                 "@odata.type": "#microsoft.graph.windowsUpdates.featureUpdateCatalogEntry",
                 "id": "d9049ddb-0ca8-4bc1-bd3c-41a456ef300f",
                 "displayName": "Windows 11, version 22H2",
                 "deployableUntilDateTime": "2025-10-14T00:00:00Z",
                 "releaseDateTime": "0001-01-01T00:00:00Z",
                 "version": "Windows 11, version 22H2"
             }
         },
         "settings": {
             "contentApplicability": null,
             "userExperience": null,
             "expedite": null,
             "schedule": {
                 "startDateTime": "2023-02-14T05:00:00Z",
                 "gradualRollout": {
                     "@odata.type": "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
                     "durationBetweenOffers": "P3D",
                     "devicesPerOffer": 100
                 }
             },
             "monitoring": {
                 "monitoringRules": [
                     {
                         "signal": "rollback",
                         "threshold": 5,
                         "action": "pauseDeployment"
                     }
                 ]
             }
         },
         "audience@odata.context": "https://graph.microsoft.com/beta/$metadata#admin/windows/updates/deployments('de910e12-3456-7890-abcd-ef1234567890')/audience/$entity",
         "audience": {
             "id": "d39ad1ce-0123-4567-89ab-cdef01234567",
             "applicableContent": []
         }
    }
    

編輯部署

要更新部署,請依部署 標識碼 修補部署資源,並在要求本文中提供更新的設定。 下列範例會保留建立部署時所定義的現有漸進式推出設定,但將部署開始日期變更為 2023 年 2 月 28 日上午 5 點 UTC:

PATCH https://graph.microsoft.com/beta/admin/windows/updates/deployments/de910e12-3456-7890-abcd-ef1234567890
content-type: application/json

{
    "settings": {
        "@odata.type": "microsoft.graph.windowsUpdates.deploymentSettings",
        "schedule": {
            "startDateTime": "2023-02-28T05:00:00Z",
            "gradualRollout": {
                "@odata.type": "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
                "durationBetweenOffers": "P3D",
                "devicesPerOffer": "100"
            }
        }
    }
}

確認部署的部署設定,其部署識別碼de910e12-3456-7890-abcd-ef1234567890為 :

GET https://graph.microsoft.com/beta/admin/windows/updates/deployments/de910e12-3456-7890-abcd-ef1234567890

將成員新增至部署物件

對象識別碼d39ad1ce-0123-4567-89ab-cdef01234567 是在建立部署時建立的。 物件 標識碼 是用來將成員新增至部署物件。 更新部署對象之後,Windows Update 會根據部署設定開始為裝置提供更新。 只要部署存在且裝置位於物件中,就會提供更新。

下列範例會使用每個裝置的 Microsoft Entra ID,將三個裝置新增至部署物件:

POST https://graph.microsoft.com/beta/admin/windows/updates/deploymentAudiences/d39ad1ce-0123-4567-89ab-cdef01234567/updateAudience
content-type: application/json

{
  "addMembers": [
    {
      "@odata.type": "#microsoft.graph.windowsUpdates.azureADDevice",
      "id": "01234567-89ab-cdef-0123-456789abcdef"
    },
    {
      "@odata.type": "#microsoft.graph.windowsUpdates.azureADDevice",
      "id": "01234567-89ab-cdef-0123-456789abcde0"
    },
    {
      "@odata.type": "#microsoft.graph.windowsUpdates.azureADDevice",
     "id": "01234567-89ab-cdef-0123-456789abcde1"
    }
  ]
}

若要確認裝置已新增至物件,請使用 的d39ad1ce-0123-4567-89ab-cdef01234567物件識別碼執行下列查詢:

GET https://graph.microsoft.com/beta/admin/windows/updates/deploymentAudiences/d39ad1ce-0123-4567-89ab-cdef01234567/members

暫停部署

若要暫停部署,請將部署修補為 requestedValuedeploymentStatepaused 。 若要繼續部署,請使用 值 none ,如果部署尚未到達開始日期,則狀態會更新為 offeringscheduled

下列範例會以 的部署標識碼de910e12-3456-7890-abcd-ef1234567890暫停部署:


PATCH https://graph.microsoft.com/beta/admin/windows/updates/deployments/de910e12-3456-7890-abcd-ef1234567890
content-type: application/json

{
  "@odata.type": "#microsoft.graph.windowsUpdates.deployment",
  "state": {
    "@odata.type": "microsoft.graph.windowsUpdates.deploymentState",
    "requestedValue": "paused"
  }
}

刪除部署

若要完全移除部署,請刪除部署。 如果裝置尚未收到內容,刪除部署將會防止將內容提供給裝置。 若要繼續提供內容,必須建立新的核准。

下列範例會刪除 部署標識碼 為 的 de910e12-3456-7890-abcd-ef1234567890部署:

DELETE https://graph.microsoft.com/beta/admin/windows/updates/deployments/de910e12-3456-7890-abcd-ef1234567890

取消註冊裝置

當裝置不再需要管理時,請從部署服務取消註冊。 就像 註冊裝置一樣,請指定 driverfeature 做為 的 updateCategory值。 裝置將不再從指定更新類別的部署服務接收更新。 視裝置的設定而定,它可能會開始接收來自 Windows Update 的更新。 例如,如果裝置仍在註冊功能更新,但已從驅動程式取消註冊:

  • 來自服務的現有驅動程式部署將不會提供給裝置
  • 裝置會繼續從部署服務接收功能更新
  • 根據裝置的組態,驅動程式可能會從 Windows Update 開始安裝

若要取消註冊裝置,請使用 unenrollAssets 將 POST 取消註冊至 updatableAssets。 在要求本文中,指定:

  • Microsoft Entra 裝置標識碼作為id裝置
  • featuredriver updateCategory

下列範例會移除兩個 driver 裝置的註冊, 01234567-89ab-cdef-0123-456789abcdef 以及 01234567-89ab-cdef-0123-456789abcde0

POST https://graph.microsoft.com/beta/admin/windows/updates/updatableAssets/unenrollAssets
content-type: application/json

{
  "updateCategory": "driver",
  "assets": [
    {
      "@odata.type": "#microsoft.graph.windowsUpdates.azureADDevice",
      "id": "01234567-89ab-cdef-0123-456789abcdef"
    },
    {
      "@odata.type": "#microsoft.graph.windowsUpdates.azureADDevice",
      "id": "01234567-89ab-cdef-0123-456789abcde0"
    }
  ]
}