다음을 통해 공유


Windows 선언된 구성 프로토콜 개요

WinDC(Windows 선언 구성) 프로토콜은 Windows 디바이스의 효율적이고 안정적인 관리를 위해 설계된 원하는 상태 디바이스 구성 모델입니다. OMA-DM SyncML 프로토콜을 사용하여 전용 OMA-DM 서버를 통해 단일 일괄 처리로 필요한 모든 설정을 제공합니다. 디바이스의 WinDC 클라이언트 스택은 이러한 설정을 처리하여 가장 효율적이고 신뢰할 수 있는 방식으로 원하는 상태를 달성합니다.

WinDC 프로토콜을 사용하려면 디바이스에 기본 OMA-DM 서버에 등록되는 디바이스에 종속된 별도의 OMA-DM 등록이 있어야 합니다. 원하는 상태 모델은 서버가 디바이스의 원하는 상태를 담당하는 현재 모델과는 다른 모델입니다. 이 이중 등록은 디바이스가 이미 기본 MDM(모바일 디바이스 관리) 서버에 등록된 경우에만 허용됩니다. 이 다른 등록은 원하는 상태 관리 기능을 기본 기능과 분리합니다.

WinDC 등록에는 다음 두 단계가 포함됩니다.

  • 선언된 구성 검색: WinDC 프로토콜의 초기 검색 단계에서는 전용 JSON 스키마를 사용하여 DS(검색 서비스 엔드포인트)의 등록 세부 정보를 쿼리합니다. 이 단계에서는 특정 헤더와 사용자 도메인, 테넌트 ID 및 OS 버전과 같은 세부 정보가 포함된 JSON 본문을 사용하여 HTTP 요청을 보내는 작업이 포함됩니다. DS는 등록 유형(Microsoft Entra 가입 또는 등록된 디바이스)에 따라 필요한 등록 서비스 URL 및 인증 정책으로 응답합니다.
  • 선언된 구성 등록: 등록 단계에서는 이중 등록을 위해 MS-MDE2 프로토콜 및 새 DMClient CSP 정책을 사용합니다. 이 단계에서는 를 설정하고 LinkedEnrollment/DiscoveryEndpoint SyncML 명령을 사용하여 를 트리거 LinkedEnrollment/Enroll 합니다. 그런 다음, 디바이스는 이러한 정책을 통해 OMA-DM 서버와 상호 작용하여 구성 상태를 관리할 수 있습니다.

WinDC 등록은 다음과 같은 원하는 상태 관리 기능을 제공합니다.

  • 리소스 액세스: 구성에 필요한 리소스에 대한 액세스를 제공합니다.
  • 확장성: 필요에 따라 구성 기능을 확장할 수 있습니다.

WinDC 모델을 보여 주는 다이어그램

디바이스를 등록한 후 OMA-DM 서버는 DeclaredConfiguration CSP를 사용하여 지정된 시나리오에 대한 설정 이름 및 값의 전체 컬렉션을 보낼 수 있습니다. 디바이스의 WinDC 스택은 구성 요청을 처리하고 시나리오 업데이트를 포함하여 상태를 유지 관리합니다.

WinDC 원하는 상태 모델의 이점은 특히 디바이스를 구성하는 WinDC 클라이언트 스택의 책임이기 때문에 효율적이고 정확하다는 것입니다. WinDC의 효율성은 클라이언트가 시나리오 설정의 일괄 처리를 비동기적으로 처리하여 서버 리소스가 다른 작업을 수행할 수 있도록 하기 때문입니다. 따라서 WinDC 프로토콜의 대기 시간이 짧습니다. 구성 품질 및 정확도에 관해서는 WinDC 클라이언트 스택에는 디바이스의 구성 노출 영역에 대한 자세한 지식이 있습니다. 이 동작에는 구성 시나리오에 영향을 주는 지속적인 디바이스 업데이트의 적절한 처리가 포함됩니다.

지원되는 플랫폼

Microsoft Entra 조인 디바이스에 대한 WinDC 등록은 모든 버전의 Windows 10/11에서 지원됩니다.

Microsoft Entra 등록된 디바이스에 대한 WinDC 등록은 다음 업데이트와 함께 Windows 10/11에서 지원됩니다.

  • KB5040529 Windows 11 버전 24H2(OS 빌드 26100.1301)
  • Windows 11 버전 23H2와 KB5040527(OS 빌드 22631.3958)
  • KB5040527 Windows 11 버전 22H2(OS 빌드 22621.3958)
  • KB5040525 Windows 10 버전 22H2(OS 빌드 19045.4717)

새로 고침 간격

WinDC 새로 고침 일정은 디바이스에 WinDC 문서가 있고 현재 새로 고침 일정 작업이 없을 때마다 만들어집니다. 작업은 기본적으로 4시간마다 실행되며 구성할 수 있습니다. WinDC 새로 고침 작업이 실행 될 때마다 현재 시스템 구성과 WinDC 문서의 서버 의도를 비교하여 원하는 상태에서 모든 드리프트를 확인합니다. 드리프트가 있는 경우 WinDC 엔진은 WinDC 문서를 다시 적용하여 수정하려고 합니다. instance 데이터 누락으로 인해 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>Device scope 사용하는 경우 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.)

  • 문서 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-3436249567-4017981746-3373817415-1001), 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)