アプリケーション定義ファイルの構造
ここでは、Profile Managementのアプリケーション定義ファイルのXML構造について説明します。この構造は、アプリケーションプロファイラとクロスプラットフォーム設定の両方に適用されます。
アーキテクチャ図
-
XML宣言とエンコーディング属性
XML宣言では、属性<?xmlversion=”1.0”>を指定する必要があります。
Encoding=”UTF-8”は、推奨属性です。
-
GroupDefinitions
グループのコレクションのコンテナ。これは、XML文書のルート要素として機能します。属性には、バージョンとGUIDが含まれます。これらは必須の属性です。
-
グループ
サブアプリケーションの設定を定義します。属性は、名前とGUIDです。これらは必須の属性です。
-
オブジェクト
サブアプリケーションの設定の1つを定義します。属性は、名前とGUIDです。これらは必須の属性です。
-
プラットフォーム
プラットフォームは、異なるオペレーティングシステムで異なる定義を提供します。オプション属性OSVersionNumberを使用して、オペレーティングシステムを指定することができます。属性がない場合は、すべてのプラットフォームが設定の内部定義を受け入れます。プラットフォームには、RegKey、RegValue、File、Folder、Wallpaperのいずれかの要素を含める必要があります。
-
RegKey
設定をレジストリのキーとして定義します。Key要素を含む必要があります。これには、2つのオプションのサブ要素、RecurseとMergeが含まれています。RecurseとMergeは、Profile Managementがキーをローミングする時のパフォーマンスを定義します。もう1つのオプションのサブ要素はExcludeValuesです。ExcludeValuesは、除外できるレジストリ値を定義します。
-
RegValue
設定をレジストリの値として定義します。親キーのパスを指定するには、Keyを含める必要があります。
-
フォルダー
設定をフォルダーとして定義します。フォルダーのパスを指定するには、Pathを含める必要があります。これには、オプションのサブ要素
Recurse
とMerge
があります。RecurseとMergeは、Profile Managementがフォルダーをローミングする時のパフォーマンスを定義します。もう1つのオプションのサブ要素は、除外できるファイルを定義するExcludeFiles
です。 -
ファイル
設定をファイルとして定義します。親フォルダーのパスを指定するにはPathを、ファイル名を指定するには
FileName
を含める必要があります。 -
壁紙
すべての壁紙設定を定義します。属性またはサブ要素は必要ありません。Profile Managementはこれらの設定を自動的にローミングします。
-
キー
レジストリキーのパスまたは親レジストリキーのパスを指定します。KeyはRegKeyとRegValueのサブ要素です。
-
ValueName
レジストリ値の名前を指定します。RegValueのサブ要素です。
-
Path
フォルダーのパスまたは親フォルダーのパスを指定します。これは、FolderとFileのサブ要素です。Profile Management変数を採用できます。
-
FileName
ファイルの名前を指定します。これは、Fileのサブ要素です。
-
Recurse
RegKeyとFolderのオプションのサブ要素です。この要素が存在する場合、Profile Managementはキーとフォルダーを再帰的にローミングします。
-
マージ
RegKeyとFolderのオプションのサブ要素です。この要素が存在する場合、Profile Managementはキーとフォルダーをマージしますが、置換はしません。
-
ExcludeValues
RegKeyのオプションのサブ要素です。キーをローミングする時に除外できる値を指定します。
-
ExcludeFiles
Folderのオプションのサブ要素です。フォルダーをローミングする時に除外できるファイルを指定します。
-
除外
ExcludeValuesとExcludeFilesのサブ要素です。ファイルまたはレジストリ値の除外項目を指定します。
注
ドキュメントに正しい構文形式が含まれていることを確認してください。Profile Managementは、これらのファイルが読み込まれた時にCPSValidationSchema.xsd検証ファイルを使用してこれらのファイルをチェックします。検証ファイルは、Profile Managementのインストールパス下にあります。Profile Managementは間違ったファイルを無視し、エラーメッセージをログに記録します。
サンプル
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2011 Citrix Systems, Inc. All Rights Reserved. -->
<GroupDefinitions GUID="748E63D3-426E-4796-9C32-420B25DB2D9F" Version="4.0.0.0">
<!-- Application Settings -->
<Group GUID="0FCCCF29-0A0E-482d-A77E-3F39A8A854A6" Name="Application Settings">
<!-- Registry Key Setting Example -->
<Object GUID="637EC13C-2D47-4142-A8EB-3CEA6D53522A" Name="Software\Application\certain key">
<Platform>
<RegKey>
<Key>Software\Microsoft\Office\certain key</Key>
<Merge/>
<Recurse/>
<ExcludeValues>
<Exclude>excluded value 1</Exclude>
<Exclude>excluded value 2</Exclude>
<Exclude>excluded value 3</Exclude>
</ExcludeValues>
</RegKey>
</Platform>
</Object>
<!-- Registry Value Setting Example -->
<Object GUID="3C896310-10C4-4e5f-90C7-A79F4E653F81" Name="Software\Application\certain value">
<!-- Folder Setting Example -->
<Object GUID="7F8615D0-5E63-4bd0-982D-B7740559C6F9" Name="!CTX_ROAMINGAPPDATA!\Application\setting folder">
<Platform>
<Folder>
<!-- We can use Citrix variable if necessary -->
<Path>!CTX_ROAMINGAPPDATA!\Application\setting folder</Path>
<Merge/>
<Recurse/>
<ExcludeFiles>
<Exclude>excluded file 1</Exclude>
<Exclude>excluded file 2</Exclude>
<Exclude>excluded file 3</Exclude>
</ExcludeFiles>
</Folder>
</Platform>
</Object>
<!-- File Setting Example -->
<Object GUID="7F8615D0-5E63-4bd0-982D-B7740559C6F9" Name="!CTX_ROAMINGAPPDATA!\Application\file.txt">
<Platform>
<File>
<!-- We can use Citrix variable if necessary -->
<Path>!CTX_ROAMINGAPPDATA!\Application</Path>
<FileName>file.txt</FileName>
</File>
</Platform>
</Object>
<!-- Setting based on different OS -->
<Object GUID="1B43DE3F-EC9C-463c-AC19-CD01D00219B6" Name="!CTX_ROAMINGAPPDATA!\Application\%osname%\folder">
<!-- Assuming that the folder locates differently when in different platforms -->
<Platform OSVersionNumber="6.1">
<!-- Win7 -->
<Folder>
<Path>!CTX_ROAMINGAPPDATA!\Application\Win7\folder</Path>
<Recurse/>
</Folder>
</Platform>
<Platform OSVersionNumber="10.0">
<!-- Win10 -->
<Folder>
<Path>!CTX_ROAMINGAPPDATA!\Application\Win10\folder</Path>
<Recurse/>
</Folder>
</Platform>
</Object>
</Group>
</GroupDefinitions>