Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Команды OMA DM передаются между сервером и клиентским устройством в сообщениях. Сообщение может содержать одну или несколько команд. Список поддерживаемых команд см. в таблице поддержки протокола OMA DM.
Сообщение DM — это XML-документ. Структура и содержимое документа определены в протоколе представления OMA DM (OMA-SyncML-DevInfo-DTD-V1_1_2-20030505-D.dtd), доступном на веб-сайте OMA.
Каждое сообщение состоит из заголовка, заданного элементом SyncHdr, и текста сообщения, заданного элементом SyncBody.
В следующей таблице показаны поддерживаемые версии OMA DM.
Версия | Формат |
---|---|
OMA DM версии 1.1.2 | <SyncML xmlns='SYNCML:SYNCML1.1'></SyncML> |
OMA DM версии 1.2 | <SyncML xmlns='SYNCML:SYNCML1.2'></SyncML> |
Формат файла
В следующем примере показана общая структура XML-документа, отправляемого сервером с использованием OMA DM версии 1.2.1 только для демонстрационных целей. Исходные XML-пакеты, обмениваются между клиентом и сервером, могут содержать больше XML-тегов. Подробное описание и примеры для этих пакетов см. в спецификации протокола OMA Управление устройствами 1.2.1.
<SyncML xmlns='SYNCML:SYNCML1.2'>
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>DM/1.2</VerProto>
<SessionID>1</SessionID>
<MsgID>1</MsgID>
<Target>
<LocURI>{unique device ID}</LocURI>
</Target>
<Source>
<LocURI>https://www.contoso.com/mgmt-server</LocURI>
</Source>
</SyncHdr>
<SyncBody>
<!-- query a device OS system version -->
<Get>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/SwV</LocURI>
</Target>
</Item>
</Get>
<!-- Update device policy -->
<Final />
</SyncBody>
</SyncML>
Элемент SyncHdr
SyncHdr содержит следующие сведения:
Определение типа документа (DTD) и номера версий протокола
Идентификаторы сеансов и сообщений. Каждое сообщение в одном сеансе dm должно иметь разные идентификаторы MsgID.
Универсальные идентификаторы ресурсов (URI) источника и назначения сообщений
Учетные данные для проверки подлинности
Эти сведения используются клиентским устройством для правильного управления сеансом dm.
Пример кода
В следующем примере показан компонент заголовка сообщения dm. В этом случае в качестве примера используется только OMA DM версии 1.2.
Примечание.
Значение <LocURI>
узла элемента <Source>
в SyncHdr пакета DM, созданного устройством, должно совпадать со значением ./DevInfo/DevID. Дополнительные сведения о DevID см. в разделе Поставщик службы конфигурации DevInfo.
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>DM/1.2</VerProto>
<SessionID>1</SessionID>
<MsgID>1</MsgID>
<Target>
<LocURI>{unique device ID}</LocURI>
</Target>
<Source>
<LocURI>https://www.contoso.com/mgmt-server</LocURI>
</Source>
</SyncHdr>
Элемент SyncBody
SyncBody содержит одну или несколько команд DM. SyncBody может содержать несколько команд dm; Каждая команда должна иметь другое значение CmdID.
Пример кода
В следующем примере показан основной компонент сообщения dm. В этом примере SyncBody содержит только одну команду Get. Эта команда обозначается тегом <Final />
, который возникает сразу после завершающего тега для команды Get.
<SyncBody>
<!-- query device OS software version -->
<Get>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./DevDetail/SwV</LocURI>
</Target>
</Item>
</Get>
<Final />
</SyncBody>
При использовании SyncML для подготовки OMA DM LocURI в SyncBody может иметь "." в качестве допустимого имени сегмента только в первом сегменте. Однако "." не является допустимым именем сегмента для других сегментов. Например, следующий LocURI недопустим, так как имя сегмента седьмого сегмента — ".".
<LocURI>./Vendor/MSFT/Registry/HKLM/Security/./Test</LocURI>
Пример обновления параметров устройства
Команда Заменить используется для обновления параметра устройства.
В следующем примере показано, как обновить параметр устройства с помощью команды Replace.
<SyncHdr>
<VerDTD>1.2</VerDTD>
<VerProto>DM/1.2</VerProto>
<SessionID>1</SessionID>
<MsgID>1</MsgID>
<Target>
<LocURI>{unique device ID}</LocURI>
</Target>
<Source>
<LocURI>https://www.contoso.com/mgmt-server</LocURI>
</Source>
</SyncHdr>
<SyncBody>
<!-- update device setting -->
<Replace>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/PolicyManager/My/DeviceLock/MinDevicePasswordLength</LocURI>
</Target>
<Meta>
<Type xmlns="syncml:metinf">text/plain</Type>
<Format xmlns="syncml:metinf">int</Format>
</Meta>
<Data>6</Data>
</Item>
</Replace>
<Final />
</SyncBody>