Windows 宣告的設定通訊協定概觀
WinDC) 通訊協定 (Windows 宣告的組態,是專為有效且可靠的 Windows 裝置管理而設計的所需狀態裝置組態模型。 它會使用 OMA-DM SyncML 通訊協定,透過專用的 OMA-DM 伺服器,在單一批次中提供所有必要的設定。 裝置上的 WinDC 用戶端堆疊會處理這些設定,以最有效率且可靠的方式達到所需的狀態。
WinDC 通訊協定要求裝置具有個別 的 OMA-DM 註冊,這取決於向主要 OMA-DM 伺服器註冊的裝置。 所需的狀態模型與伺服器負責裝置所需狀態的目前模型不同。 只有當裝置已註冊到主要行動裝置管理 (MDM) 伺服器時,才允許此雙重註冊。 此其他註冊會將所需的狀態管理功能與主要功能分開。
WinDC 註冊包含兩個階段:
- 宣告的組態探索:WinDC 通訊協定的初始探索階段會使用專用的 JSON 架構,從 探索服務端點查詢註冊詳細數據, (DS) 。 此階段牽涉到傳送具有特定標頭的 HTTP 要求,以及包含詳細數據的 JSON 主體,例如使用者網域、租使用者標識碼和操作系統版本。 DS 會根據已加入或已註冊裝置) (Microsoft Entra 註冊類型,回應必要的註冊服務 URL 和驗證原則。
-
宣告的組態註冊:註冊階段會使用 MS-MDE2 通訊協定 和新的 DMClient CSP 原則進行雙重註冊。 此階段牽涉到使用 SyncML 命令來設定
LinkedEnrollment/DiscoveryEndpoint
和觸發LinkedEnrollment/Enroll
。 裝置接著可以透過這些原則與 OMA-DM 伺服器互動,以管理其設定狀態。
WinDC 註冊提供下列所需的狀態管理功能:
註冊裝置之後,OMA-DM 伺服器可以使用 DeclaredConfiguration CSP 傳送指定案例的完整設定名稱和值集合。 裝置上的 WinDC 堆疊會負責處理設定要求,並維護其狀態,包括案例的更新。
WinDC 所需狀態模型的優點是其有效且精確,特別是因為 WinDC 用戶端堆疊負責設定裝置。 WinDC 的效率是因為用戶端可以異步處理案例設定的批次,這會釋出伺服器資源來執行其他工作。 因此,WinDC 通訊協定的延遲很低。 至於設定品質和精確度,WinDC 用戶端堆疊具有裝置設定介面區的詳細知識。 此行為包括適當地處理會影響組態案例的持續裝置更新。
支援的平台
所有版本的 Windows 10/11 都支援已加入 Microsoft Entra 裝置的 WinDC 註冊。
Windows 10/11 支援 Microsoft Entra 註冊裝置的 WinDC 註冊,並提供下列更新:
- Windows 11 版本 24H2 與 KB5040529 (OS 組建 26100.1301)
- Windows 11 版本 23H2 與 KB5040527 ( OS 組建 22631.3958)
- Windows 11 版本 22H2 與 KB5040527 (OS 組建 22621.3958)
- Windows 10 版本 22H2 與 KB5040525 (OS 組建 19045.4717)
重新整理間隔
每當裝置上有 WinDC 檔存在,而且目前沒有排程工作可重新整理時,就會建立 WinDC 重新整理排程。 工作預設為每 4 小時執行一次,而且可以設定。 每次執行 WinDC 重新整理工作時,它會比較目前的系統設定與 WinDC 檔中的伺服器意圖,以檢查所有偏離預期狀態的漂移。 如果有任何漂移,WinDC 引擎會嘗試重新套用 WinDC 檔來修正它。 如果 WinDC 檔因為實例資料遺失而無法重新套用,WinDC 檔會標示為漂移狀態,並觸發新的同步會話來通知是否有漂移。
若要識別、調整或移除重新整理排程,請使用 RefreshInterval URI:
識別目前的排程:
<?xml version="1.0" encoding="utf-8"?> <SyncML xmlns="SYNCML:SYNCML1.1"> <SyncBody> <Get> <CmdID>2</CmdID> <Item> <Target> <LocURI>./Device/Vendor/MSFT/DeclaredConfiguration/ManagementServiceConfiguration/RefreshInterval</LocURI> </Target> </Item> </Get> <Final /> </SyncBody> </SyncML>
調整目前的排程:
<?xml version="1.0" encoding="utf-8"?> <SyncML xmlns="SYNCML:SYNCML1.1"> <SyncBody> <Replace> <CmdID>2</CmdID> <Item> <Meta> <Format>int</Format> <Type>text/plain</Type> </Meta> <Target> <LocURI>./Device/Vendor/MSFT/DeclaredConfiguration/ManagementServiceConfiguration/RefreshInterval</LocURI> </Target> <Data>30</Data> </Item> </Replace> <Final /> </SyncBody> </SyncML>
刪除目前的排程並使用系統預設值:
<?xml version="1.0" encoding="utf-8"?> <SyncML xmlns="SYNCML:SYNCML1.1"> <SyncBody> <Delete> <CmdID>2</CmdID> <Item> <Target> <LocURI>./Device/Vendor/MSFT/DeclaredConfiguration/ManagementServiceConfiguration/RefreshInterval</LocURI> </Target> </Item> </Delete> <Final /> </SyncBody> </SyncML>
疑難排解
如果宣告的組態檔處理失敗,錯誤會記錄到 Windows 事件記錄檔:
- 管理員 事件:
Application and Service Logs\Microsoft\Windows\DeviceManagement-Enterprise-Diagnostics-Provider\Admin
。 - 作業事件:
Application and Service Logs\Microsoft\Windows\DeviceManagement-Enterprise-Diagnostics-Provider\Operational
。
常見錯誤
<LocURI>
如果 使用裝置範圍,而 DeclaredConfiguration 檔指定使用者內容,管理員 事件記錄檔會顯示類似下列的錯誤訊息:MDM ConfigurationManager: Command failure status. Configuration Source ID: (DAD70CC2-365B-450D-A8AB-2EB23F4300CC), Enrollment Name: (MicrosoftManagementPlatformCloud), Provider Name: (DeclaredConfiguration), Command Type: (SetValue: from Replace), CSP URI: (./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/DCA000B5-397D-40A1-AABF-40B25078A7F9/Document), Result: (The system cannot find the file specified.)
如果 Document ID 與 DeclaredConfiguration 檔內的 和 不相符
<LocURI>
,管理員 事件記錄檔會顯示類似下列的錯誤訊息:MDM Declared Configuration: End document parsing from CSP: Document Id: (DCA000B5-397D-40A1-AABF-40B25078A7F91), Scenario: (MSFTVPN), Version: (A0), Enrollment Id: (DAD70CC2-365B-450D-A8AB-2EB23F4300CC), Current User: (S-1-5-21-1004336348-1177238915-682003330-1234), Schema: (1.0), Download URL: (), Scope: (0x1), Enroll Type: (0x1A), File size: (0xDE2), CSP Count: (0x1), URI Count: (0xF), Action Requested: (0x0), Model: (0x1), Result:(0x8000FFFF) Catastrophic failure.
OMA-URI 中的任何錯字都會導致失敗。 在這裡範例中,
TrafficFilterList
是指定而非TrafficFilterLists
,管理員 事件記錄檔會顯示類似下列的錯誤訊息:MDM ConfigurationManager: Command failure status. Configuraton Source ID: (DAD70CC2-365B-450D-A8AB-2EB23F4300CC), Enrollment Type: (MicrosoftManagementPlatformCloud), CSP Name: (vpnv2), Command Type: (Add: from Replace or Add), CSP URI: (./user/vendor/msft/vpnv2/Test_SonicWall/TrafficFilterLists), Result: (Unknown Win32 Error code: 0x86000002).
操作通道中還有另一個警告訊息:
MDM Declared Configuration: Function (DeclaredConfigurationExtension_PolicyCSPConfigureGivenCurrentDoc) operation (ErrorAtDocLevel: one or more CSPs failed) failed with (Unknown Win32 Error code: 0x82d00007).