NodeCache 配置服务提供程序用于管理客户端缓存。 此配置服务提供程序仅供企业管理服务器使用。 它提供一个抽象级别,将节点列表的管理与特定后备存储区分离。 它将客户端缓存与服务器端缓存同步。 它还提供用于监视设备端缓存更改的 API。
NodeCache 支持比较哈希值,而不是实际节点值:
application/x-nodemon-sha256
NodeCache 将对值进行哈希处理,并与服务器向下发送的哈希值进行比较。 此过程支持递归检查父节点及其子节点。
以下列表显示了 NodeCache 配置服务提供程序节点:
./Device/Vendor/MSFT/NodeCache
{ProviderID}
CacheVersion
ChangedNodes
ChangedNodesData
节点
{NodeID}
AutoSetExpectedValue
ExpectedValue
NodeURI
./User/Vendor/MSFT/NodeCache
{ProviderID}
CacheVersion
ChangedNodes
ChangedNodesData
节点
{NodeID}
AutoSetExpectedValue
ExpectedValue
NodeURI
Device/{ProviderID}
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1511 [10.0.10586] 及更高版本
./Device/Vendor/MSFT/NodeCache/{ProviderID}
每个 DM 服务器的组设置。 每组设置都由服务器的提供程序 ID 进行区分。 它应该是注册过程中通过 w7 APPLICATION 配置服务提供程序 XML 提供的相同 DM 服务器 PROVIDER-ID 值。 在 Windows Phone 8 中,仅支持一个企业管理服务器。 也就是说,NodeCache 下应只有一个 ProviderID 节点。
描述框架属性:
属性名
属性值
格式
node
访问类型
添加、删除、获取
动态节点命名
UniqueName:它应该是注册过程中通过 w7 APPLICATION 配置服务提供程序 XML 提供的同一 DM 服务器 PROVIDER-ID 值。
Device/{ProviderID}/CacheVersion
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1511 [10.0.10586] 及更高版本
./Device/Vendor/MSFT/NodeCache/{ProviderID}/CacheVersion
表示服务器设置的缓存版本的字符串。
描述框架属性:
属性名
属性值
格式
chr (字符串)
访问类型
添加、获取、替换
Device/{ProviderID}/ChangedNodes
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1511 [10.0.10586] 及更高版本
./Device/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodes
其值与 /NodeID/ExpectedValue 中指定的预期值不匹配的节点列表。
描述框架属性:
属性名
属性值
格式
chr (字符串)
访问类型
“获取”
Device/{ProviderID}/ChangedNodesData
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./Device/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodesData
包含值与 /NodeID/ExpectedValue 中指定的预期值不匹配的节点的 XML。
描述框架属性:
属性名
属性值
格式
xml
访问类型
“获取”
Device/{ProviderID}/Nodes
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1511 [10.0.10586] 及更高版本
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes
缓存节点的根节点。
描述框架属性:
属性名
属性值
格式
node
访问类型
“获取”
Device/{ProviderID}/Nodes/{NodeID}
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1511 [10.0.10586] 及更高版本
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}
有关每个缓存节点的信息存储在服务器指定的 NodeID 下。 此值不得包含逗号。
描述框架属性:
属性名
属性值
格式
node
访问类型
添加、删除、获取
动态节点命名
ServerGeneratedUniqueIdentifier
Device/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue
这会自动将设备上的值设置为与节点的实际值匹配。 节点在 NodeURI 中指定。
描述框架属性:
属性名
属性值
格式
null
访问类型
添加、删除、获取
Device/{ProviderID}/Nodes/{NodeID}/ExpectedValue
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1511 [10.0.10586] 及更高版本
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/ExpectedValue
这是服务器预期位于设备上的值。 当配置服务提供程序启动会话时,它会根据节点的实际值检查预期值。
支持的值为 string 和 x-nodemon-不存在。
描述框架属性:
属性名
属性值
格式
chr (字符串)
访问类型
添加、删除、获取
示例:
下面是将 ExpectedValue 设置为不存在的示例。
Device/{ProviderID}/Nodes/{NodeID}/NodeURI
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1511 [10.0.10586] 及更高版本
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/NodeURI
此节点的值是完整的 OMA DM 节点 URI。 它可以在设备管理树中指定内部节点或叶节点。
描述框架属性:
属性名
属性值
格式
chr (字符串)
访问类型
添加、删除、获取
User/{ProviderID}
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./User/Vendor/MSFT/NodeCache/{ProviderID}
每个 DM 服务器的组设置。 每组设置都由服务器的提供程序 ID 进行区分。 它应该是注册过程中通过 w7 APPLICATION 配置服务提供程序 XML 提供的相同 DM 服务器 PROVIDER-ID 值。 在 Windows Phone 8 中,仅支持一个企业管理服务器。 也就是说,NodeCache 下应只有一个 ProviderID 节点。
描述框架属性:
属性名
属性值
格式
node
访问类型
添加、删除、获取
动态节点命名
UniqueName:它应该是注册过程中通过 w7 APPLICATION 配置服务提供程序 XML 提供的同一 DM 服务器 PROVIDER-ID 值。
User/{ProviderID}/CacheVersion
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./User/Vendor/MSFT/NodeCache/{ProviderID}/CacheVersion
表示服务器设置的缓存版本的字符串。
描述框架属性:
属性名
属性值
格式
chr (字符串)
访问类型
添加、获取、替换
User/{ProviderID}/ChangedNodes
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./User/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodes
其值与 /NodeID/ExpectedValue 中指定的预期值不匹配的节点列表。
描述框架属性:
属性名
属性值
格式
chr (字符串)
访问类型
“获取”
User/{ProviderID}/ChangedNodesData
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./User/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodesData
包含值与 /NodeID/ExpectedValue 中指定的预期值不匹配的节点的 XML。
描述框架属性:
属性名
属性值
格式
xml
访问类型
“获取”
User/{ProviderID}/Nodes
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes
缓存节点的根节点。
描述框架属性:
属性名
属性值
格式
node
访问类型
“获取”
User/{ProviderID}/Nodes/{NodeID}
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}
有关每个缓存节点的信息存储在服务器指定的 NodeID 下。 此值不得包含逗号。
描述框架属性:
属性名
属性值
格式
node
访问类型
添加、删除、获取
动态节点命名
ServerGeneratedUniqueIdentifier
User/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue
这会自动将设备上的值设置为与节点的实际值匹配。 节点在 NodeURI 中指定。
描述框架属性:
属性名
属性值
格式
null
访问类型
添加、删除、获取
User/{ProviderID}/Nodes/{NodeID}/ExpectedValue
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/ExpectedValue
这是服务器预期位于设备上的值。 当配置服务提供程序启动会话时,它会根据节点的实际值检查预期值。
支持的值为 string 和 x-nodemon-不存在。
描述框架属性:
属性名
属性值
格式
chr (字符串)
访问类型
添加、删除、获取
示例:
下面是将 ExpectedValue 设置为不存在的示例。
User/{ProviderID}/Nodes/{NodeID}/NodeURI
范围
版本
适用的操作系统
✅ 设备
✅ 用户
✅ 专业版
✅ 企业版
✅ 教育版
✅ IoT 企业版/IoT 企业版 LTSC
✅Windows 10版本 1703 [10.0.15063] 及更高版本
./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/NodeURI
此节点的值是完整的 OMA DM 节点 URI。 它可以在设备管理树中指定内部节点或叶节点。
描述框架属性:
属性名
属性值
格式
chr (字符串)
访问类型
添加、删除、获取
使用 NodeCache 配置服务提供程序的典型 DM 会话
设备连接到 DM 服务器。
服务器通过为 ./Vendor/MSFT/ NodeCache /ProviderID/CacheVersion LocURI 发出 Get作来查询 NodeCache 版本
如果设备 CacheVersion 和服务器端缓存因设备崩溃或服务器崩溃) 而 (不同,则服务器可以清除服务器端缓存并转到步骤 5。
服务器更新服务器端缓存:
发送 ./Vendor/MSFT/NodeCache/ProviderID/ChangedNodes LocURI 的 Get作
响应是已更改节点 ID 的列表。 列表中的每个 ID 对应于 ./Vendor/MSFT/NodeCache/ProviderID/Nodes 根目录下的节点
对于无效节点列表中的每个节点,服务器会发送一个 GET 命令来检索节点的实际值。 例如, GET
使用从设备接收的实际值更新服务器端缓存中的节点。
对于每个更新的节点,都会向设备发送一个 REPLACE 命令来更新设备端缓存: REPLACE ./Vendor/MSFT/NodeCache/ProviderID/Nodes/NodeID/ExpectedValue => ActualValue
将创建一个新的缓存版本并将其发送到设备:
REPLACE ./Vendor/MSFT/NodeCache/ProviderID/CacheVersion => new_version 值 new_version 由服务器存储。
管理服务器从服务器端缓存中检索相应的值:
如果服务器端缓存中已存在某个值,请从服务器端缓存中检索该值,而不是转到设备。
如果服务器端缓存中不存在值,请执行以下任务:
在服务器端缓存中创建具有唯一 NodeID 的新条目。
查询设备以检索 URI 的实际值。
使用 NodeID 值在 ./Vendor/MSFT/NodeCache/ ProviderID /Nodes 下创建一个新节点。
为 ./Vendor/MSFT/NodeCache/ProviderID/Nodes/NodeID 节点设置 NodeURI 和 ExpectedValue。
更新 CachedNodes 版本。
OMA DM 示例
创建节点缓存设置:
./Vendor/MSFT/DeviceLock/Provider/MDMSRV1/DevicePasswordEnabled
0
./Vendor/MSFT/DeviceLock/Provider/MDMSRV1/AlphanumericDevicePasswordRequired
0
获取提供程序 ID 下的节点MDMSRV1、缓存版本、更改的节点、节点、预期值:
替换缓存版本、节点 URI 和预期值:
SCCM0001@!Replace
./Vendor/MSFT/DeviceLock/DeviceValue/AllowSimpleDevicePassword
2
对于 AutoSetExpectedValue,使用空数据的替换作将查询 ./DevDetail/Ext/Microsoft/DeviceName。
./DevDetail/Ext/Microsoft/DeviceName
上的 ./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/ExpectedValue Get作返回调用自动集时的设备名称。
对 ChangedNodesData 执行 Get作将返回编码的 XML。 下面是一个示例:
它表示此示例:
ID 是 MDM 服务器添加的节点 ID,Uri 是节点跟踪的路径。
如果未设置 URI,则节点将始终报告为已更改,如节点 ID 10 中所示。
节点标记内的值是 Uri 返回的实际值,这意味着对于 Node ID 20,DeviceName 与之前的预期不匹配,并且设备名称现在U09NRU5FV1ZBTFVF而不是以前的名称。
相关文章
配置服务提供程序参考