共用方式為


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 註冊提供下列所需的狀態管理功能:

  • 資源存取:提供設定所需資源的存取權。
  • 擴充性:允許視需要擴充組態功能。

說明 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).