Общие сведения о протоколе объявленной конфигурации 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 предлагает следующие необходимые функции управления состоянием:
- Доступ к ресурсам. Предоставляет доступ к необходимым ресурсам для настройки.
- Расширяемость. Позволяет расширить возможности конфигурации по мере необходимости.
После регистрации устройства сервер 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)