使用商務用 Windows Update 部署服務部署功能更新
商務用 Windows Update 部署服務可用來核准和排程軟體更新。 部署服務會透過 Microsoft 圖形 API 公開其功能。 您可以透過 Graph SDK 直接呼叫 API,或將其與管理工具整合,例如 Microsoft Intune。
本文使用 Graph 總管 逐步解說將功能更新部署至客戶端的整個程式。 在本文中,您將:
在本文中,您將:
必要條件
必須符合商務用 Windows Update 部署服務的所有必要條件。
權限
本文所列的查詢需要下列許可權:
- 適用於商務用 Windows Update 部署服務作業的WindowsUpdates.ReadWrite.All。
- 至少 要有 Device.Read.All 許可權可顯示 裝置 資訊。
某些角色,例如 Windows Update 部署系統管理員,已經擁有這些許可權。
開啟圖形總管
在本文中,您將使用 Graph 總管向 Microsoft Graph API 提出要求,以擷取、新增、刪除和更新數據。 Graph 總管是開發人員工具,可讓您瞭解 Microsoft Graph API。 如需使用 Graph 總管的詳細資訊,請 參閱開始使用 Graph 總管。
警告
從瀏覽器,移至 [圖形總管],然後使用 Microsoft Entra 用戶帳戶登入。
您可能需要啟
WindowsUpdates.ReadWrite.All
用許可權,才能使用本文中的查詢。 若要啟用權限:若要提出要求:
- 從 HTTP 方法的下拉式清單中選取 GET、POST、PUT、PATCH 或 DELETE。
- 在 [URL] 欄位中輸入要求。 版本會根據 URL 自動填入。
- 如果您需要修改要求本文,請編輯 [ 要求本文] 索引標籤。
- 選取 [ 執行查詢] 按鈕。 結果會出現在 [ 回應 ] 視窗中。
提示
檢閱 Microsoft Graph 檔時,您可能會注意到範例要求通常會列出
content-type: application/json
。content-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 目錄對象的進階查詢功能。
在 [圖形總管] 中,選取 [ 要求標頭] 索引卷 標。
針對 中的索引
ConsistencyLevel
鍵類型,以及 Value 的 索引鍵類型,輸入eventual
。選取 [ 新增] 按鈕。 當您完成時,請選取垃圾桶圖示來移除要求標頭。
顯示具有 作為 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
:
deviceid
是 Microsoft 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
) 。 您可以註冊裝置以接收來自多個更新分類的更新。
- 若要註冊裝置,請使用 enrollAssets POST 到 updatableAssets。 下列範例會註冊三個裝置來接收驅動程式更新:
在 [圖形總管] 中,從 HTTP 動詞命令的下拉式清單中選取 [ POST ]。
在 [URL] 欄位中輸入下列要求:
https://graph.microsoft.com/beta/admin/windows/updates/updatableAssets/enrollAssets
在 [ 要求本文] 索引標籤中,輸入下列 JSON,並提供下列資訊:
- Microsoft Entra 裝置標識碼為
id
- 或
feature
driver
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" } ] }
- Microsoft Entra 裝置標識碼為
選取 [ 執行查詢] 按鈕。 結果會出現在 [ 回應 ] 視窗中。 在此情況下,為的
202 Accepted
HTTP 狀態代碼。
列出功能更新的目錄專案
每個功能更新都會與唯一 的目錄項目相關聯。 傳 id
回的 是 目錄標識碼 ,用來建立部署。 功能更新可部署,直到達到其支援淘汰日期為止。 如需詳細資訊,請參閱 Windows 10 和 Windows 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
暫停部署
若要暫停部署,請將部署修補為 requestedValue
deploymentState 的 paused
。 若要繼續部署,請使用 值 none
,如果部署尚未到達開始日期,則狀態會更新為 offering
或 scheduled
。
下列範例會以 的部署標識碼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
取消註冊裝置
當裝置不再需要管理時,請從部署服務取消註冊。 就像 註冊裝置一樣,請指定 driver
或 feature
做為 的 updateCategory
值。 裝置將不再從指定更新類別的部署服務接收更新。 視裝置的設定而定,它可能會開始接收來自 Windows Update 的更新。 例如,如果裝置仍在註冊功能更新,但已從驅動程式取消註冊:
- 來自服務的現有驅動程式部署將不會提供給裝置
- 裝置會繼續從部署服務接收功能更新
- 根據裝置的組態,驅動程式可能會從 Windows Update 開始安裝
若要取消註冊裝置,請使用 unenrollAssets 將 POST 取消註冊至 updatableAssets。 在要求本文中,指定:
- Microsoft Entra 裝置標識碼作為
id
裝置 - 或
feature
driver
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"
}
]
}
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應