DeclaredConfiguration CSP
重要
此 CSP 包含一些正在開發且僅適用于 Windows Insider Preview 組建 的設定。 這些設定可能會變更,而且可能相依于預覽中的其他功能或服務。
主要 MDM 模型是 MDM 伺服器在設定案例中完全負責協調和持續維護裝置狀態的模型。 由於以 OMA-DM Syncml 標準為基礎的同步組態模型,此行為會導致密集的網路流量和高網路等待時間。 也很容易出錯,因為伺服器需要對用戶端有深入的瞭解。
Windows 宣告的設定 (WinDC) 裝置管理模型需要伺服器針對案例設定將所有設定值傳遞給裝置。 伺服器會透過DeclaredConfiguration CSP以異步方式以批次方式傳送它們。
在用戶端起始的 OMA-DM 工作階段期間,WinDC 伺服器會透過 DeclaredConfiguration CSP URI 將設定或清查 WinDC 檔傳送至用戶端。 如果裝置驗證文件的語法正確,用戶端堆疊會將要求推送至其協調器,以異步方式處理要求。 用戶端堆疊接著會結束,並將控制權傳回 WinDC 服務。 此行為可讓裝置以異步方式處理要求。
在用戶端上,如果有任何處理中或已完成的要求,它會將一 般警示 傳送至伺服器。 此警示會摘要說明每個檔的狀態、狀態和進度。 對 WinDC OMA-DM 伺服器的每個用戶端 HTTPS 要求都包含此摘要。
WinDC 伺服器會使用一般警示來判斷哪些要求已順利完成或發生錯誤。 伺服器接著可以透過 DeclaredConfiguration CSP URI以同步方式擷取 WinDC 檔處理結果。
下列清單顯示 DeclaredConfiguration 設定服務提供者節點:
- ./Device/Vendor/MSFT/DeclaredConfiguration
Host
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host
主機內部節點指出設定要求或清查要求的目標是主機 OS。 如果記憶體保護區曾經以設定為目標,則此節點適用於範圍。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
主機/完成
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete
此內部節點表示組態具有離散設定值,且具有獨立的完整設定和值組,其中不包含稍後需要使用其他數據解析的佔位元。 要求已準備好以現成的方式處理。
完成要求的伺服器對用戶端流程與清查要求相同。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
主機/完成/檔
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents
[檔] 節點指出組態是檔的形式,這是一組設定集合,用來設定宣告組態堆棧的案例。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
Host/Complete/Documents/{DocID}
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/{DocID}
唯一識別組態檔。 沒有其他檔可以有此標識碼。標識碼應該是 GUID。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
動態節點命名 | ServerGeneratedUniqueIdentifier |
允許的值 | 正規表示式: [0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12} |
Host/Complete/Documents/{DocID}/Document
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/{DocID}/Document
[檔案] 節點的值是以 XML 為基礎的檔,其中包含用來設定指定案例的設定和值集合。 宣告的組態堆疊會驗證文件的語法,堆疊會標示要由用戶端以異步方式處理的檔。 堆疊接著會將控制權傳回 OMA-DM 服務。 堆疊接著會以異步方式處理要求。 以下是使用宣告組態 URI 的指定所需狀態設定範例。/Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/27FEA311-68。 B9-4320-9。 FC4-296。 F6FDFAFE2/檔。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 |
chr (字串) |
存取類型 | 新增、刪除、取得、取代 |
Host/Complete/Documents/{DocID}/Properties
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/{DocID}/Properties
[屬性] 節點會封裝套用至 [DocID] 所參考之指定檔的屬性清單。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
Host/Complete/Documents/{DocID}/Properties/Abandoned
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/{DocID}/Properties/Abandoned
[已放棄] 節點可讓 OMA-DM 伺服器指出檔已不再受管理。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | int |
存取類型 | 新增、刪除、取得、取代 |
預設值 | 0 |
允許的值:
值 | 描述 |
---|---|
0 (預設值) | 檔已不再受管理。 |
1 | 檔是受控的。 |
主機/完成/結果
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Results
[結果] 節點指出這是 URI 路徑的一部分,會傳回包含組態要求結果的 XML 檔。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | [取得] |
Host/Complete/Results/{DocID}
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Results/{DocID}
唯一識別將傳回設定要求結果的組態檔。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | [取得] |
動態節點命名 | ClientInventory |
主機/完成/結果/{DocID}/檔
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Results/{DocID}/Document
[檔] 節點的值是 XML 型檔,其中包含 [DocId] 所指定之組態要求的設定結果集合。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 |
chr (字串) |
存取類型 | [取得] |
主機/清查
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Inventory
清查內部節點表示這是清查要求。 要擷取的設定值是透過檔分葉節點在 XML 檔中指定。
清查要求的伺服器對用戶端流程與完成要求相同。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
主機/清查/檔
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Inventory/Documents
[檔] 節點指出清查要求是檔的形式,這是用來擷取其值的設定集合。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
Host/Inventory/Documents/{DocID}
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Inventory/Documents/{DocID}
唯一識別清查檔。 沒有其他檔可以有此標識碼。標識碼應該是 GUID。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | 新增、刪除、取得 |
動態節點命名 | ServerGeneratedUniqueIdentifier |
允許的值 | 正規表示式: [0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12} |
主機/清查/文件/{DocID}/檔
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Inventory/Documents/{DocID}/Document
[檔案] 節點的值是以 XML 為基礎的檔,其中包含將用來擷取其值的設定集合。 宣告的組態堆疊會驗證文件的語法,堆疊會標示要由用戶端以異步方式處理的檔。 堆疊接著會將控制權傳回 OMA-DM 服務。 堆疊接著會以異步方式處理要求。 以下是使用宣告組態 URI 的指定所需狀態設定範例。/Device/Vendor/MSFT/DeclaredConfiguration/Host/Inventory/Documents/27FEA311-68。 B9-4320-9。 FC4-296。 F6FDFAFE2/檔。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 |
chr (字串) |
存取類型 | 新增、刪除、取得、取代 |
主機/清查/結果
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Inventory/Results
[結果] 節點指出這是 URI 路徑的一部分,該路徑會傳回包含清查要求結果的 XML 檔。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | [取得] |
主機/清查/結果/{DocID}
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Inventory/Results/{DocID}
唯一識別清查檔。 沒有其他檔可以有此標識碼。標識碼應該是 GUID。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | [取得] |
動態節點命名 | ClientInventory |
主機/清查/結果/{DocID}/檔
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/Host/Inventory/Results/{DocID}/Document
[檔] 節點的值是 XML 型檔,其中包含 [DocId] 所指定清查要求的設定結果集合。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 |
chr (字串) |
存取類型 | [取得] |
ManagementServiceConfiguration
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/ManagementServiceConfiguration
用來控制特定 Windows 宣告組態行為的 ManagementServiceConfiguration 節點。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | node |
存取類型 | [取得] |
ManagementServiceConfiguration/ConflictResolution
領域 | 版本 | 適用的作業系統 |
---|---|---|
✅ 裝置 ❌ 使用者 |
✅ 專業版 ✅ 企業版 ✅ 教育版 ✅ Windows SE ✅ IoT 企業版 / IoT 企業版 LTSC |
✅Windows Insider Preview |
./Device/Vendor/MSFT/DeclaredConfiguration/ManagementServiceConfiguration/ConflictResolution
此節點會控制開啟和關閉衝突解決。
描述架構屬性:
屬性名稱 | 屬性值 |
---|---|
格式 | int |
存取類型 | 新增、刪除、取得、取代 |
允許的值:
值 | 說明 |
---|---|
0 | 衝突解決是 OFF。 |
1 | 衝突解決是 ON。 |
DeclaredConfiguration OMA URI
使用類似 ./Device/Vendor/MSFT/DeclaredConfiguration/Host/[Complete|Inventory]/Documents/{DocID}/Document
的 OMA-URI 傳送 WinDC 要求。
- URI 前面會加上目標範圍 (
User
或Device
) 。 -
{DocID}
是組態案例所需狀態的唯一標識符。 每個文件都必須有標識碼,必須是 GUID。 - 要求可以是 清查或 完成 要求。
下列 URI 是 完整 要求的範例: ./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/27FEA311-68B9-4320-9FC4-296F6FDFAFE2/Document
WinDC 檔
<DeclaredConfiguration
schema="1.0"
context="Device"
id="27FEA311-68B9-4320-9FC4-296F6FDFAFE2"
checksum="99925209110918B67FE962460137AA3440AFF4DB6ABBE15C8F499682457B9999"
osdefinedscenario="MSFTExtensibilityMIProviderConfig">
... {Configuration Data} ...
</DeclaredConfiguration>
<DeclaredConfiguration>
XML 標記會指定要處理之 WinDC 檔案的詳細數據。 檔可以是組態要求或清查要求的一部分。 DeclaredConfiguration CSP 有 兩個 URI ,可允許設定或 清查 要求的規格。
此標籤具有下列屬性:
屬性 | 描述 |
---|---|
schema |
xml 的架構版本。 目前 1.0 為 。 |
context |
指出檔是以裝置或用戶為目標。 |
id |
伺服器所設定之檔的唯一標識碼。 此值應該是 GUID。 |
checksum |
此值是伺服器提供的檔案版本。 |
osdefinedscenario |
客戶端應該使用指定的組態數據設定的具名案例。 |
DeclaredConfiguration CSP 會同步驗證 專案所 <DeclaredConfiguration>
描述的設定批次,此專案代表 WinDC 檔。 它會根據 WinDC XML 架構檢查正確的語法。 如果有語法錯誤,CSP 會在目前的 OMA-DM 工作階段中立即將錯誤傳回伺服器。 如果語法檢查通過,則會將要求傳遞至 Windows 服務。 Windows 服務會以異步方式嘗試指定案例的預期狀態設定。 此程式會釋出伺服器來執行其他工作,因而降低 WinDC 通訊協定的延遲。 Windows 用戶端服務協調器負責根據伺服器所提供的需求狀態來驅動裝置的設定。 服務也會在其存留期內維持此狀態,直到伺服器移除或修改它為止。
要求的實際處理會圍繞 osdefinedscenario
標籤和文件內指定的組態數據進行樞紐處理。 如需詳細資訊,請參閱:
WinDC 一般警示
在每次客戶端回應伺服器的要求時,用戶端都會建構 WinDC 警示。 此警示摘要說明 Windows 服務已處理之每個文件的狀態。 下列 XML 是警示範例:
<Alert>
<CmdID>1</CmdID>
<Data>1224</Data>
<Item>
<Meta>
<Type xmlns="syncml:metinf">com.microsoft.mdm.declaredconfigurationdocuments</Type>
</Meta>
<Data>
<DeclaredConfigurations schema="1.0">
<DeclaredConfiguration context="Device"
id="27FEA311-68B9-4320-9FC4-296F6FDFAFE2"
checksum="99925209110918B67FE962460137AA3440AFF4DB6ABBE15C8F499682457B9999"
result_checksum="EE4F1636201B0D39F71654427E420E625B9459EED17ACCEEE1AC9B358F4283FD"
state="60" />
</DeclaredConfigurations>
</Data>
</Item>
</Alert>
在此範例中,警示摘要中列出一份 WinDC 檔。 警示摘要會列出用戶端堆疊正在處理的每個檔,包括組態或清查要求。 它會描述檔的內容,指定如何套用檔的範圍。
內容值應該是 Device
。
state 屬性的值為 60
,表示已成功處理檔。
WinDC 狀態
下列類別會定義狀態值:
enum class DCCSPURIState :unsigned long
{
NotDefined = 0, // transient
ConfigRequest = 1, // transient
ConfigInprogress = 2, // transient
ConfigInProgressAsyncPending = 3, // transient: Async operation is performed but pending results
DeleteRequest = 10, // transient
DeleteInprogress = 11, // transient
GetRequest = 20, // transient
GetInprogress = 21, // transient
ConstructURIStorageSuccess = 40, // transient
ConfigCompletedSuccess = 60, // permanent
ConfigCompletedError = 61, // permanent
ConfigInfraError = 62, // permanent
ConfigCompletedSuccessNoRefresh = 63, // permanent
DeleteCompletedSuccess = 70, // permanent
DeleteCompletedError = 71, // permanent
DeleteInfraError = 72, // permanent
GetCompletedSuccess = 80, // permanent
GetCompletedError = 81, // permanent
GetInfraError = 82 // permanent
};
SyncML 範例
放棄 WinDC 檔
當某些資源不再以使用者或群組為目標時,就會放棄資源。 伺服器可以選擇放棄 WinDC 檔,而不是刪除裝置上的資源。 已放棄的資源會保留在裝置上,但會停止重新整理處理漂移控件的 WinDC 檔。 此外, 資源擁有權 會轉移至 MDM,這表示相同的資源可以透過舊版 MDM 通道再次修改。
此範例示範如何藉由將 [已放棄 ] 屬性設定 為 1,放棄 WinDC 檔。
<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/Host/Complete/Documents/27FEA311-68B9-4320-9FC4-296F6FDFAFE2/Properties/Abandoned</LocURI>
</Target>
<Data>1</Data>
</Item>
</Replace>
<Final/>
</SyncBody>
</SyncML>
WinDC 檔的 Unabandon
未帶入檔會導致立即套用檔、將 資源擁有權 轉移回 WinDC 管理,並封鎖舊版 MDM 通道再次管理通道。
此範例示範如何將 Abandoned 屬性設定 為 0,以不帶入 WinDC 檔。
<?xml version="1.0" encoding="utf-8"?>
<SyncML xmlns="SYNCML:SYNCML1.1">
<SyncBody>
<Replace>
<CmdID>10</CmdID>
<Item>
<Target>
<LocURI>./Device/Vendor/MSFT/DeclaredConfiguration/Host/Complete/Documents/DCA000B5-397D-40A1-AABF-40B25078A7F9/Properties/Abandoned</LocURI>
</Target>
<Meta>
<Format xmlns="syncml:metinf">int</Format>
</Meta>
<Data>0</Data>
</Item>
</Replace>
<Final />
</SyncBody>
</SyncML>
刪除 WinDC 檔
檔的 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/Host/Complete/Documents/27FEA311-68B9-4320-9FC4-296F6FDFAFE2/Document</LocURI>
</Target>
</Item>
</Delete>
<Final/>
</SyncBody>
</SyncML>