NodeCache CSP
NodeCache 設定服務提供者可用來管理用戶端快取。 此設定服務提供者僅供企業管理伺服器使用。 它提供抽象層級,將節點清單的管理與特定備份儲存區分離。 它會同步處理用戶端快取與伺服器端快取。 它也提供用來監視裝置端快取變更的 API。
NodeCache 支援哈希值的比較,而不是實際的節點值:
<Type xmlns="syncml:metinf">
application/x-nodemon-sha256
</type>
NodeCache 會哈希值,並與伺服器傳送的哈希值進行比較。 此程式支援以遞歸方式檢查父節點及其子系。
下列清單顯示 NodeCache 設定服務提供者節點:
- ./Device/Vendor/MSFT/NodeCache
- ./User/Vendor/MSFT/NodeCache
Device/{ProviderID}
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1511 [10.0.10586] 和更新版本 |
./Device/Vendor/MSFT/NodeCache/{ProviderID}
每個 DM 伺服器的群組設定。 每個設定群組都會以伺服器的提供者標識碼來辨別。 它應該是註冊程式期間透過 w7 APPLICATION 設定服務提供者 XML 提供的相同 DM 伺服器 PROVIDER-ID 值。 在 Windows Phone 8 中,僅支援一部企業管理伺服器。 也就是說,NodeCache 下應該只有一個 ProviderID 節點。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
動態節點命名 | UniqueName:它應該是註冊程式期間透過 w7 APPLICATION 設定服務提供者 XML 提供的相同 DM 伺服器 PROVIDER-ID 值。 |
Device/{ProviderID}/CacheVersion
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1511 [10.0.10586] 和更新版本 |
./Device/Vendor/MSFT/NodeCache/{ProviderID}/CacheVersion
字元字串,表示伺服器所設定的快取版本。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | chr (字串) |
存取類型 | 新增、取得、取代 |
Device/{ProviderID}/ChangedNodes
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1511 [10.0.10586] 和更新版本 |
./Device/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodes
值不符合其預期值的節點清單,如 /NodeID/ExpectedValue 中所指定。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | chr (字串) |
存取類型 | [取得] |
Device/{ProviderID}/ChangedNodesData
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./Device/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodesData
XML 包含值不符合其預期值的節點,如 /NodeID/ExpectedValue 中所指定。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | xml |
存取類型 | [取得] |
Device/{ProviderID}/Nodes
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1511 [10.0.10586] 和更新版本 |
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes
快取節點的根節點。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | [取得] |
Device/{ProviderID}/Nodes/{NodeID}
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1511 [10.0.10586] 和更新版本 |
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}
每個快取節點的相關信息會儲存在伺服器所指定的 NodeID 下。 此值不得包含逗號。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
動態節點命名 | ServerGeneratedUniqueIdentifier |
Device/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue
這會自動設定裝置上的值,以符合節點的實際值。 節點是在 NodeURI 中指定。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | null |
存取類型 | 新增、刪除、取得 |
Device/{ProviderID}/Nodes/{NodeID}/ExpectedValue
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1511 [10.0.10586] 和更新版本 |
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/ExpectedValue
這是伺服器預期在裝置上的值。 當設定服務提供者起始會話時,它會根據節點的實際值檢查預期的值。
支援的值為字串和 x-nodemon 不存在。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | chr (字串) |
存取類型 | 新增、刪除、取得 |
範例:
以下是將ExpectedValue設定為不存在的範例。
<Add>
<CmdID>10</CmdID>
<Item>
<Target>
<LocURI>./Device/Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0002/ExpectedValue</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">chr</Format>
<Type xmlns="syncml:metinf">application/x-nodemon-nonexistent</Type>
</Meta>
</Item>
</Add>
Device/{ProviderID}/Nodes/{NodeID}/NodeURI
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10 版本 1511 [10.0.10586] 和更新版本 |
./Device/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/NodeURI
此節點的值是完整的 OMA DM 節點 URI。 它可以在裝置管理樹狀結構中指定內部或分葉節點。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | chr (字串) |
存取類型 | 新增、刪除、取得 |
User/{ProviderID}
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./User/Vendor/MSFT/NodeCache/{ProviderID}
每個 DM 伺服器的群組設定。 每個設定群組都會以伺服器的提供者標識碼來辨別。 它應該是註冊程式期間透過 w7 APPLICATION 設定服務提供者 XML 提供的相同 DM 伺服器 PROVIDER-ID 值。 在 Windows Phone 8 中,僅支援一部企業管理伺服器。 也就是說,NodeCache 下應該只有一個 ProviderID 節點。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
動態節點命名 | UniqueName:它應該是註冊程式期間透過 w7 APPLICATION 設定服務提供者 XML 提供的相同 DM 伺服器 PROVIDER-ID 值。 |
User/{ProviderID}/CacheVersion
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./User/Vendor/MSFT/NodeCache/{ProviderID}/CacheVersion
字元字串,表示伺服器所設定的快取版本。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | chr (字串) |
存取類型 | 新增、取得、取代 |
User/{ProviderID}/ChangedNodes
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./User/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodes
值不符合其預期值的節點清單,如 /NodeID/ExpectedValue 中所指定。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | chr (字串) |
存取類型 | [取得] |
User/{ProviderID}/ChangedNodesData
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./User/Vendor/MSFT/NodeCache/{ProviderID}/ChangedNodesData
XML 包含值不符合其預期值的節點,如 /NodeID/ExpectedValue 中所指定。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | xml |
存取類型 | [取得] |
User/{ProviderID}/Nodes
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes
快取節點的根節點。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | [取得] |
User/{ProviderID}/Nodes/{NodeID}
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}
每個快取節點的相關信息會儲存在伺服器所指定的 NodeID 下。 此值不得包含逗號。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
動態節點命名 | ServerGeneratedUniqueIdentifier |
User/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/AutoSetExpectedValue
這會自動設定裝置上的值,以符合節點的實際值。 節點是在 NodeURI 中指定。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | null |
存取類型 | 新增、刪除、取得 |
User/{ProviderID}/Nodes/{NodeID}/ExpectedValue
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows 10,版本 1703 [10.0.15063] 和更新版本 |
./User/Vendor/MSFT/NodeCache/{ProviderID}/Nodes/{NodeID}/ExpectedValue
這是伺服器預期在裝置上的值。 當設定服務提供者起始會話時,它會根據節點的實際值檢查預期的值。
支援的值為字串和 x-nodemon 不存在。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | chr (字串) |
存取類型 | 新增、刪除、取得 |
範例:
以下是將ExpectedValue設定為不存在的範例。
<Add>
<CmdID>10</CmdID>
<Item>
<Target>
<LocURI>./User/Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0002/ExpectedValue</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">chr</Format>
<Type xmlns="syncml:metinf">application/x-nodemon-nonexistent</Type>
</Meta>
</Item>
</Add>
User/{ProviderID}/Nodes/{NodeID}/NodeURI
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ✅ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ 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 作業
- 回應是已變更節點標識碼的清單。 清單中的每個標識碼都會對應至 ./Vendor/MSFT/NodeCache/ProviderID/Nodes 根目錄下的節點
- 對於無效節點清單中的每個節點,伺服器會傳送
GET
命令來擷取節點的實際值。 例如,GET <NodeURI>
,其中NodeURI
是對應至無效快取節點的完整裝置 LocURI。 - 伺服器端快取中的節點會以從裝置收到的實際值進行更新。
- 針對每個更新的節點,
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 範例
建立節點快取的設定:
<Add>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">node</Format>
</Meta>
</Item>
</Add>
<Add>
<CmdID>4</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0001</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">node</Format>
</Meta>
</Item>
</Add>
<Add>
<CmdID>5</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0001/NodeURI</LocURI>
</Target>
<Data>./Vendor/MSFT/DeviceLock/Provider/MDMSRV1/DevicePasswordEnabled</Data>
</Item>
</Add>
<Add>
<CmdID>6</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0001/ExpectedValue</LocURI>
</Target>
<Data>0</Data>
</Item>
</Add>
<Add>
<CmdID>8</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0002</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">node</Format>
</Meta>
</Item>
</Add>
<Add>
<CmdID>9</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0002/NodeURI</LocURI>
</Target>
<Data>
./Vendor/MSFT/DeviceLock/Provider/MDMSRV1/AlphanumericDevicePasswordRequired
</Data>
</Item>
</Add>
<Add>
<CmdID>10</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0002/ExpectedValue</LocURI>
</Target>
<Data>0</Data>
</Item>
</Add>
在 [提供者標識符] 下取得節點MDMSRV1、快取版本、已變更的節點、節點、預期值:
<Get>
<CmdID>18</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>19</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/CacheVersion</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>20</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/ChangedNodes</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>21</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0001</LocURI>
</Target>
</Item>
</Get>
<Get>
<CmdID>22</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0001/ExpectedValue</LocURI>
</Target>
</Item>
</Get>
取代快取版本、節點 URI 和預期值:
<Replace>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/CacheVersion</LocURI>
</Target>
<Data>SCCM0001@!Replace</Data>
</Item>
</Replace>
<Replace>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0001/NodeURI</LocURI>
</Target>
<Data>./Vendor/MSFT/DeviceLock/DeviceValue/AllowSimpleDevicePassword</Data>
</Item>
</Replace>
<Replace>
<CmdID>2</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDMSRV1/Nodes/Node_0001/ExpectedValue</LocURI>
</Target>
<Data>2</Data>
</Item>
</Replace>
針對 AutoSetExpectedValue,以空白數據取代作業會查詢 ./DevDetail/Ext/Microsoft/DeviceName。
<Add>
<CmdID>2001</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">node</Format>
</Meta>
</Item>
</Add>
<Add>
<CmdID>2002</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/NodeURI</LocURI>
</Target>
<Data>./DevDetail/Ext/Microsoft/DeviceName</Data>
</Item>
</Add>
<Replace>
<CmdID>2003</CmdID>
<Item>
<Target>
<LocURI>./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/AutoSetExpectedValue</LocURI>
</Target>
<Data></Data>
</Item>
</Replace>
上的 Get 作業會 ./Vendor/MSFT/NodeCache/MDM%20SyncML%20Server/Nodes/20/ExpectedValue
傳回呼叫 AutoSet 時的裝置名稱。
ChangedNodesData 上的 Get 作業會傳回編碼的 XML。 以下是範例:
<Nodes><Node Id="10" Uri=""></Node><Node Id="20" Uri="./DevDetail/Ext/Microsoft/DeviceName">U09NRU5FV1ZBTFVF</Node></Nodes>
它代表此範例:
<Nodes>
<Node Id="10" Uri=""></Node>
<Node Id="20" Uri="./DevDetail/Ext/Microsoft/DeviceName">U09NRU5FV1ZBTFVF</Node>
</Nodes>
標識元是 MDM 伺服器所新增的節點識別碼,而 Uri 是節點所追蹤的路徑。 如果未設定 Uri,一律會將節點回報為已變更,如節點標識碼 10 所示。
節點標籤的值是 Uri 傳回的實際值,這表示對於節點標識碼 20,DeviceName 不符合先前預期的值,且裝置名稱現在U09NRU5FV1ZBTFVF,而不是先前的名稱。
相關文章
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應