Общие сведения о протоколе объявленной конфигурации Windows

Протокол объявленной конфигурации Windows (WinDC) — это модель конфигурации устройства с состоянием, предназначенная для эффективного и надежного управления устройствами Windows. Он использует протокол OMA-DM SyncML для предоставления всех необходимых параметров в одном пакете через выделенный сервер OMA-DM. Клиентский стек WinDC на устройстве обрабатывает эти параметры для достижения требуемого состояния наиболее эффективным и надежным способом.

Протокол WinDC требует, чтобы у устройства была отдельная регистрация OMA-DM, которая зависит от устройства, зарегистрированного на основном сервере OMA-DM. Модель требуемого состояния отличается от текущей модели, где сервер отвечает за состояние желания устройства. Эта двойная регистрация разрешена только в том случае, если устройство уже зарегистрировано на основном сервере управления мобильными устройствами (MDM). Эта другая регистрация отделяет требуемые функции управления состоянием от основной функции.

Регистрация WinDC включает два этапа:

  • Объявленное обнаружение конфигурации. Начальный этап обнаружения протокола WinDC использует выделенную схему JSON для запроса сведений о регистрации из конечной точки службы обнаружения (DS). Этот этап включает отправку HTTP-запросов с определенными заголовками и текстом JSON, содержащим такие сведения, как домен пользователя, идентификатор клиента и версия ОС. Ds отвечает необходимыми URL-адресами службы регистрации и политиками проверки подлинности в зависимости от типа регистрации (Microsoft Entra присоединенных или зарегистрированных устройств).
  • Объявленная регистрация конфигурации. На этапе регистрации используется протокол MS-MDE2 и новые политики DMClient CSP для двойной регистрации. Этот этап включает настройку LinkedEnrollment/DiscoveryEndpoint и активацию LinkedEnrollment/Enroll с помощью команд SyncML. Затем устройство может управлять состоянием конфигурации, взаимодействуя с сервером OMA-DM с помощью этих политик.

Регистрация WinDC предлагает следующие необходимые функции управления состоянием:

  • Доступ к ресурсам. Предоставляет доступ к необходимым ресурсам для настройки.
  • Расширяемость. Позволяет расширить возможности конфигурации по мере необходимости.

Схема, иллюстрирующая модель WinDC.

После регистрации устройства сервер OMA-DM может отправить полную коллекцию имен параметров и значений для указанного сценария с помощью поставщика CSP DeclaredConfiguration. Стек WinDC на устройстве отвечает за обработку запроса конфигурации и поддержание его состояния, включая обновления сценария.

Преимущество модели требуемого состояния WinDC заключается в том, что она эффективна и точна, тем более что за настройку устройства отвечает клиентский стек WinDC. Эффективность WinDC заключается в том, что клиент может асинхронно обрабатывать пакеты параметров сценария, что освобождает ресурсы сервера для выполнения другой работы. Таким образом, протокол WinDC имеет низкую задержку. Что касается качества и точности конфигурации, стек клиента WinDC имеет подробные знания о контактной области конфигурации устройства. Это поведение включает правильную обработку непрерывных обновлений устройств, влияющих на сценарий конфигурации.

Поддерживаемые платформы

Регистрация WinDC для устройств, присоединенных к Microsoft Entra, поддерживается во всех версиях Windows 10/11.

Регистрация WinDC для Microsoft Entra зарегистрированных устройств поддерживается для Windows 10/11 со следующими обновлениями:

  • Windows 11, версия 24H2 с KB5040529 (сборка ОС 26100.1301)
  • Windows 11, версия 23H2 с KB5040527 (сборка ОС 22631.3958)
  • Windows 11, версия 22H2 с KB5040527 (сборка ОС 22621.3958)
  • Windows 10 версии 22H2 с KB5040525 (сборка ОС 19045.4717)

Интервал обновления

Расписание обновления WinDC создается каждый раз, когда на устройстве присутствует документ WinDC и в настоящее время нет задачи расписания для обновления. Задача выполняется каждые 4 часа по умолчанию и может быть настроена. Каждый раз, когда выполняется задача обновления WinDC, она проверяет наличие всех отклонений от требуемого состояния путем сравнения текущей конфигурации системы с намерением сервера в документах WinDC. Если есть какие-либо отклонения, обработчик WinDC пытается повторно применить документы WinDC, чтобы исправить это. Если документ WinDC не может быть повторно применяться из-за отсутствия данных экземпляра, документ WinDC помечается в дрейфовом состоянии и запускается новый сеанс синхронизации для уведомления о смещении.

Чтобы определить, изменить или удалить расписание обновления, используйте универсальный код ресурса (URI) RefreshInterval :

  • Определение текущего расписания:

    <?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.)

  • Если идентификатор документа не совпадает между документом <LocURI> и внутри документа DeclaredConfiguration, Администратор журнале событий отображается сообщение об ошибке, примерно следующее:

    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 приводит к сбою. В этом примере вместо указывается TrafficFilterLists, TrafficFilterList а Администратор журнал событий отображает сообщение об ошибке, похожее на:

    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)