培训
模块
MD-102 2-Implement dynamic deployment methods - Training
Use dynamic provisioning methods such as Subscription Activation, Provisioning packages, and Microsoft Entra join to reconfigure an existing operating system.
OMA DM 命令在消息中的服务器和客户端设备之间传输。 消息可以包含一个或多个命令。 有关支持的命令列表,请参阅 OMA DM 协议支持中的表。
DM 消息是 XML 文档。 文档的结构和内容在 OMA 网站提供的 OMA DM 表示协议 (OMA-SyncML-DevInfo-DTD-V1_1_2-20030505-D.dtd) 中定义。
每条消息由 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> |
以下示例显示服务器使用 OMA DM 版本 1.2.1 发送的 XML 文档的常规结构,仅用于演示目的。 在客户端和服务器之间交换的初始 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 包括以下信息:
文档类型定义 (DTD) 和协议版本号
会话和消息标识符。 同一 DM 会话中的每个消息必须具有不同的 MsgID。
消息源和目标统一资源标识符 (URI)
用于身份验证的凭据
客户端设备使用此信息来正确管理 DM 会话。
代码示例
以下示例显示了 DM 消息的标头组件。 在这种情况下,OMA DM 版本 1.2 仅用作示例。
备注
<LocURI>
设备生成的 DM 包的 SyncHdr 中 元素的节点值<Source>
应与 ./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 包含一个或多个 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 for OMA DM 预配时,SyncBody 中的 LocURI 只能将“.”作为第一个段中的有效段名称。 但是,“.”不是其他段的有效段名称。 例如,以下 LocURI 无效,因为第七段的段名称是“.”。
<LocURI>./Vendor/MSFT/Registry/HKLM/Security/./Test</LocURI>
Replace 命令用于更新设备设置。
以下示例演示如何使用 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>
培训
模块
MD-102 2-Implement dynamic deployment methods - Training
Use dynamic provisioning methods such as Subscription Activation, Provisioning packages, and Microsoft Entra join to reconfigure an existing operating system.