UE-V 2.x のアプリケーション テンプレート スキーマ リファレンス
適用対象: User Experience Virtualization 1.0, User Experience Virtualization 1.0 SP1, User Experience Virtualization 2.0, User Experience Virtualization 2.1
Microsoft User Experience Virtualization (UE-V) 2.0、2.1、および 2.1 SP1 は、XML 設定場所テンプレートを使用して、UE-V によってキャプチャされ適用されるデスクトップ アプリケーションの設定および Windows の設定を定義します。UE-V には、既定の設定場所テンプレートのセットが含まれています。また、UE-V Generator を使用して、カスタムの設定場所テンプレートを作成することもできます。
上級ユーザーは、設定場所テンプレートの XML ファイルをカスタマイズできます。このトピックでは、UE-V 2.1 (SP1) および 2.0 の設定場所テンプレートの XML 構造について詳しく説明し、これらのファイルの編集に関するガイダンスを示します。
UE-V 2.1 および 2.1 SP1 のアプリケーション テンプレート スキーマ リファレンス
このセクションでは、UE-V 2.1 および 2.1 SP1 の設定場所テンプレートの XML 構造について詳しく説明し、このファイルの編集に関するガイダンスを示します。
このセクションの内容
XML 宣言とエンコード属性
名前空間とルート要素
データ型
Name 要素
ID 要素
Version 要素
Author 要素
Processes 要素と Process 要素
Application 要素
Common 要素
SettingsLocationTemplate 要素
付録:SettingsLocationTemplate.xsd
XML 宣言とエンコード属性
必須:True
型:文字列
XML 宣言は、XML バージョン 1.0 属性 (<?xml version="1.0">) を指定する必要があります。エンコードは明示的には指定されていませんが、UE-V Generator によって作成された設定場所テンプレートは UTF-8 エンコードで保存されます。ベスト プラクティスとして、この要素に encoding="UTF-8" 属性を含めることをお勧めします。同様に、製品に含まれているすべてのテンプレートがこのタグを指定します (%ProgramFiles%\Microsoft User Experience Virtualization\Templates のドキュメントを参照)。例:
<?xml version="1.0" encoding="UTF-8"?>
名前空間とルート要素
必須:True
型:文字列
UE-V は、すべてのアプリケーションに対して https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate 名前空間を使用します。SettingsLocationTemplate はルート要素であり、その他のすべての要素を含んでいます。次のタグを使用して、すべてのテンプレートで SettingsLocationTemplate を参照します。
<SettingsLocationTemplate xmlns='https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate'>
データ型
次に、UE-V アプリケーション テンプレート スキーマのデータ型を示します。
- GUID
GUID は、"\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}" の形式の標準的なグローバル一意識別子の正規表現を表します。一般的なフォルダーのフォーマットを確認するために Filesetting\Root\KnownFolder 要素で使用されます。
- FilenameString
FilenameString は、監視対象のプロセスのファイル名を参照します。その値は、regex [^\\\?\*\|<>/:]+ によって制限されます (つまり、バックスラッシュ文字、アスタリスクや疑問符のワイルドカード文字、パイプ文字、大なり記号や小なり記号、スラッシュ文字、またはコロン文字を含めることはできません)。
- IDString
IDString は、Application 要素、SettingsLocationTemplate、および Common 要素 (共通設定を共有するアプリケーション スイートを表すために使用) の ID 値を参照します。これは、FilenameString と同じ regex ([^\\\?\*\|<>/:]+) によって制限されます。
- TemplateVersion
TemplateVersion は、設定場所テンプレートのリビジョンを表すために使用される整数値です。その値の範囲は 0 ~ 2147483647 です。
- Empty
Empty は null 値を参照します。監視するプロセスがないことを示すために Process\ShellProcess で使用されます。この値は、いずれのアプリケーション テンプレートでも使用できません。
- Author
Author データ型は、テンプレートの作成者を識別する複合型です。2 つの子要素: Name と Email がサポートされています。Author データ型内で Name 要素は必須、Email 要素は省略可能です。この型については、SettingsLocationTemplate 要素のトピックで詳しく説明されています。
- Range
Range は、2 つの子要素: Minimum と Maximum で構成される整数クラスを定義します。このデータ型は、ProcessVersion データ型に実装されます。この型を指定する場合は、Minimum 値と Maximum 値の両方を含める必要があります。
- ProcessVersion
ProcessVersion は、4 つの子要素:Major、Minor、Build、および Patch を含む型を定義します。このデータ型は、その ProductVersion 値と FileVersion 値を設定するために Process 要素によって使用されます。この型のデータは Range 値です。Major 子要素は必須、その他は省略可能です。
- アーキテクチャ
Architecture は、2 つの有効な値: Win32 と Win64 を列挙します。これらの値は、プロセス アーキテクチャの指定に使用されます。
Process
Process データ型は、UE-V によって監視されるプロセスを表すために使用されるコンテナーです。6 つの子要素:Filename、Architecture、ProductName、FileDescription、ProductVersion、および FileVersion が含まれています。次の表に、各要素の該当するデータ型の詳細を示します。要素
データ型
必須
Filename
FilenameString
True
アーキテクチャ
アーキテクチャ
False
ProductName
文字列
False
FileDescription
文字列
False
ProductVersion
ProcessVersion
False
FileVersion
ProcessVersion
False
- Processes
Processes データ型は、1 つまたは複数の Process 要素のコレクションのコンテナーを表します。Processes シーケンス型では、2 つの子要素:Process と ShellProcess がサポートされています。Process は型 Process の要素、ShellProcess はデータ型 Empty です。シーケンスでは、少なくとも 1 つの項目を特定する必要があります。
パス
Path は、レジストリ パスとファイル パスを参照するために RegistrySetting および FileSetting によって使用されます。この要素は、省略可能な 2 つの属性:Recursive と DeleteIfNotFound をサポートしています。両方の値が default=”False” に設定されます。Recursive は、ファイル設定にパスおよびすべてのサブフォルダーが含まれること、またはレジストリ設定にすべての子レジストリ キーが含まれることを示します。どちらの場合にも、キャプチャされたデータに現在のレベルのすべての項目が含まれます。FileSettings オブジェクトでは、UE-V によってキャプチャされたデータに、指定されたフォルダー内のすべてのファイルが含まれますが、フォルダーは含まれません。レジストリ パスでは、現在のパスのすべての値がキャプチャされますが、子レジストリ キーはキャプチャされません。どちらの場合にも、大きなデータ セットまたは多数の項目をキャプチャしないように注意する必要があります。
DeleteIfNotFound 属性は、ユーザーの設定の保存パス データから設定を削除します。パッケージからこれらの設定を削除することで、設定の保存パス ファイル サーバー上で大量のディスク領域を節約できる場合に、この動作が望ましいことがあります。
- FileMask
FileMask は、Path で定義されたフォルダーに対して特定のファイルの種類のみを指定します。たとえば、Path がC:\users\username\files
、FileMask が*.txt
の場合、テキスト ファイルのみが含まれます。
- RegistrySetting
RegistrySetting は、UE-V Agent 側でのレジストリ キーと値のコンテナーおよび関連付けられている目的の動作を表します。この型内では、4 つの子要素:Path、Name、Exclude、および値 Path と Name のシーケンスが定義されます。
- FileSetting
FileSetting には、ファイルおよびファイル パスに関連付けられているパラメーターが含まれています。4 つの子要素:Root、Path、FileMask、および Exclude が定義されます。Root は必須、その他は省略可能です。
Settings
Settings は、特定のテンプレートに適用されるすべての設定のコンテナーです。前に説明した Registry、File、SystemParameter、および CustomAction 設定のインスタンスが含まれています。また、説明した動作を持つ次の子要素が含まれていることもあります。要素
説明
Asynchronous
Asynchronous 設定パッケージは、設定の適用中にアプリケーションの起動が続行されるように、アプリケーションの起動をブロックすることなく適用されます。API 経由の
get/set
など、非同期に適用できる設定に有用です (例: SystemParameterSetting)。PreventOverlappingSynchronization
既定で UE-V は、テンプレートを使用するアプリケーションの最後のインスタンスが終了したときにのみ、アプリケーションの設定を保存します。この要素が ‘false’ に設定されていると、UE-V は、アプリケーションのその他のインスタンスが実行されている場合でも設定をエクスポートします。UE-V に付属しているテンプレート スイート (Common 要素セクションを含むテンプレート) は、このフラグを使用して、アプリケーションの終了時に共有設定を常にエクスポートできるようにする一方で、最後のインスタンスが終了するまでアプリケーション固有の設定がエクスポートされないようにします。
AlwaysApplySettings
(2.1 で導入)
このパラメーターは、パッケージとアプリケーションの現在の状態との間に違いがない場合でも、インポートされた設定パッケージを強制的に適用します。設定のインポートが遅くなることがあるため、このパラメーターは特殊な場合にのみ使用してください。
Name 要素
必須:True
型:文字列
Name は、設定場所テンプレートの一意の名前を指定します。WMI、PowerShell、イベント ビューアー、およびデバッグ ログのテンプレートを参照するときに表示目的で使用されます。通常、ProductVersion 要素から拒否される可能性があるため、バージョン情報は参照しないようにします。たとえば、<Name>My Application 1.1</Name>
ではなく <Name>My Application</Name>
を指定します。
注意
UE-V は外部 DTD を参照しないため、設定場所テンプレートで名前付きエンティティを使用することはできません。たとえば、登録商標 ® を参照するために ® を使用しないでください。こうした種類の特殊文字を含めるには、代わりに正規の番号付き参照 (たとえば、® 文字に対して ®) を使用します。この規則は、このドキュメントのすべての文字列値に適用されます。
文字エンティティの完全な一覧については、http://www.w3.org/TR/xhtml1/dtds.html を参照してください。UTF-8 でエンコードされたドキュメントには、Unicode 文字を直接含めることができます。UE-V Generator を使用してテンプレートを保存すると、文字エンティティが Unicode 表記に自動的に変換されます。ID 要素
必須:True
型:文字列
ID は、特定のテンプレートに対して一意の識別子を設定します。このタグは、UE-V Agent が実行時にテンプレートを参照するために使用する主識別子になります (たとえば、Get-UevTemplate コマンドレットや Get-UevTemplateProgram PowerShell コマンドレットの出力を参照)。規則では、スクリプトを単純化するスペースをこのタグに含めることはできません。この要素には、<ID>MicrosoftCalculator6</ID>
や <ID>MicrosoftOffice2010Win64</ID>
など、テンプレートを簡単に識別できるようにアプリケーションのバージョン番号を指定する必要があります。
Version 要素
必須:True
型:整数
最小値:0
最大値:2147483647
Version は、変更を管理追跡するために設定場所テンプレートのバージョンを識別します。UE-V Generator では、テンプレートが保存されるたびにこの数値が自動的にインクリメントされます。このフィールドは整数である必要があり、<Version>2.5</Version>
などの小数値は許可されません。
ヒント: XML コメント タグ <!-- -->
を使用して、バージョン変更に関するメモを保存できます。次に例を示します。
<!--
Version History
Version 1 Jul 05, 2012 Initial template created by Generator - Denise@Contoso.com
Version 2 Jul 31, 2012 Added support for app.exe v2.1.3 - Mark@Contoso.com
Version 3 Jan 01, 2013 Added font settings support - Mark@Contoso.com
Version 4 Jan 31, 2013 Added support for plugin settings - Tony@Contoso.com
-->
<Version>4</Version>
重要
この値をクエリして、次の場合に新しいバージョンのテンプレートを既存のテンプレートに適用すべきかどうかを判断します。
- スケジュールされたテンプレートの自動更新タスクが実行される場合
- Update-UevTemplate PowerShell コマンドレットが実行される場合
- WMI 経由で microsoft\uev:SettingsLocationTemplate Update メソッドが呼び出された場合
Author 要素
必須:False
型:文字列
Author は、設定場所テンプレートの作成者を識別します。2 つの省略可能な子要素:Name と Email がサポートされています。どちらの属性も省略可能ですが、Email 子要素を指定した場合は Name 要素も指定する必要があります。Author は設定場所テンプレートの連絡先のフル ネームを参照し、Email は作成者の電子メール アドレスを参照する必要があります。たとえば UE-V テンプレート ギャラリー 上など、パブリックに公開されたテンプレートにこの情報を含めることをお勧めします。
Processes 要素と Process 要素
必須:True
型:要素
Processes には少なくとも 1 つの <Process>
要素が含まれており、この要素には子要素:Filename、Architecture、ProductName、FileDescription、ProductVersion、および FileVersion が含まれています。Filename 子要素は必須、その他は省略可能です。完全に設定された要素には、次の例のようなタグが含まれています。
<Process>
<Filename>MyApplication.exe</Filename>
<Architecture>Win64</Architecture>
<ProductName> MyApplication </ProductName>
<FileDescription>MyApplication.exe</FileDescription>
<ProductVersion>
<Major Minimum="2" Maximum="2" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="0" Maximum="0" />
<Patch Minimum="5" Maximum="5" />
</ProductVersion>
<FileVersion>
<Major Minimum="2" Maximum="2" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="0" Maximum="0" />
<Patch Minimum="5" Maximum="5" />
</FileVersion>
</Process>
Filename
必須:True
型:文字列
Filename は、ファイル システムに表示される実行可能ファイルの実際のファイル名を参照します。この要素は、テンプレートがプロセスに適用されるかどうかを評価するために UE-V が使用する主条件を指定します。この要素は、設定場所テンプレート XML で指定する必要があります。
有効なファイル名は、正規表現 [^\\\?\*\|<>/:]+ と一致してはなりません。つまり、バックスラッシュ文字、アスタリスクや疑問符のワイルドカード文字、パイプ文字、大なり記号や小なり記号、スラッシュ文字、またはコロン文字 (\ ?* |< > / または :) を含めることはできません。
ヒント: この regex に対して文字列をテストするには、PowerShell コマンド ウィンドウを使用して、YourFileName を実行可能ファイルの名前に置き換えます。
"YourFileName.exe" -match "[\\\?\*\|<>/:]+"
値 True は、文字列に無効な文字が含まれていることを示します。無効な値の例を次に示します。
\\server\share\program.exe
Program*.exe
Pro?ram.exe
Program<1>.exe
注意
UE-V Generator は、大なり文字と小なり文字をそれぞれ > と < としてエンコードします。
まれに、FileName 値に .exe 拡張子が含まれない場合がありますが、値の一部として指定する必要があります。たとえば、<Filename>MyApplictication</Filename>
ではなく <Filename>MyApplictication.exe</Filename>
を指定する必要があります。前者では、実行可能ファイルの実際の名前が “MyApplication.exe” である場合、テンプレートはプロセスに適用されません。
アーキテクチャ
必須:False
型:Architecture (文字列)
Architecture は、ターゲットの実行可能ファイルがコンパイルされたプロセッサ アーキテクチャを参照します。有効な値は、32 ビット アプリケーションでは Win32、64 ビット アプリケーションでは Win64 です。このタグが存在する場合は、特定のアプリケーション アーキテクチャに対する設定場所テンプレートの適用性が制限されます。この例として、UE-V に付属している %ProgramFiles%\Microsoft User Experience Virtualization\templates\MicrosoftOffice2010Win32.xml ファイルと MicrosoftOffice2010Win64.xml ファイルを比較してください。この要素は、さまざまなバージョンの実行可能ファイル間で相対パスが変化する場合、または異なるプロセッサ アーキテクチャ間を移動するときに設定が追加または削除された場合に有用です。
この要素がない場合、ファイル名およびその他の属性が適用されると、設定場所テンプレートはプロセスのアーキテクチャを無視し、32 ビットと 64 ビットの両方のプロセスに適用されます。
注意
UE-V では、このバージョンの ARM プロセッサはサポートされていません。
ProductName
必須:False
型:文字列
ProductName は、管理目的またはレポート用に製品を識別するために使用される省略可能な要素です。ProductName は、値に正規表現制限がない点で Filename とは異なります。この要素を使用すると、実行可能ファイル名が明快でない場合に、プロセスの説明が理解しやすいものになります。例:
<Process>
<Filename>MyApplication.exe</Filename>
<ProductName>My Application 6.x by Contoso.com</ProductName>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
FileDescription
必須:False
型:文字列
FileDescription は、実行可能ファイルの管理上の説明を可能にする省略可能なタグです。これはフリー テキスト フィールドであり、実行可能ファイルの機能を識別する必要がある場合に、ソフトウェア パッケージ内の複数の実行可能ファイルを区別するのに役立ちます。
たとえば、アプリケーション スイートで、次に示すように 2 つの実行可能ファイル (MyApplication.exe と MyApplicationHelper.exe) の機能に関する覚え書きを提供すると便利です。
<Processes>
<Process>
<Filename>MyApplication.exe</Filename>
<FileDescription>My Application Main Engine</ FileDescription>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
<Process>
<Filename>MyApplicationHelper.exe</Filename>
<FileDescription>My Application Background Process Executable</FileDescription>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
</Processes>
ProductVersion
必須:False
型:文字列
ProductVersion は、ファイルのメジャーおよびマイナー製品バージョン、およびビルドとパッチ レベルを参照します。ProductVersion は省略可能な要素ですが、指定した場合は、少なくとも Major 子要素を含める必要があります。この値は、Minimum="X" Maximum="Y" (X と Y は整数) の形式で範囲を表す必要があります。Minimum 値と Maximum 値は同じにすることができます。
製品要素とファイル バージョン要素は指定しなくてもかまいません。指定しないと、テンプレートは「バージョン非依存」になります。つまり、テンプレートは、指定された実行可能ファイルのすべてのバージョンに適用されます。
例 1:
製品バージョン: 1.0 が UE-V Generator で指定されると、次の XML が生成されます。
<ProductVersion>
<Major Minimum="1" Maximum="1" />
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
例 2:
ファイル バージョン: 5.0.2.1000 が UE-V Generator で指定されると、次の XML が生成されます。
<FileVersion>
<Major Minimum="5" Maximum="5" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="2" Maximum="2" />
<Patch Minimum="1000" Maximum="1000" />
</FileVersion>
正しくない例 1 – 不完全な範囲:
Minimum 属性のみが存在しています。Maximum も範囲に含める必要があります。
<ProductVersion>
<Major Minimum="2" />
</ProductVersion>
正しくない例 2: Major 要素を指定せずに Minor を指定:
Minor 要素のみが存在しています。Major も含める必要があります。
<ProductVersion>
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
FileVersion
必須:False
型:文字列
FileVersion は、公開アプリケーションのリリース バージョンとコンポーネント実行可能ファイルの内部ビルド詳細とを区別します。ほとんどの商用アプリケーションでは、これらの数値は同じです。これらが異なる場合、ファイルの製品バージョンはファイルの汎用バージョン ID を示し、ファイル バージョンはファイルの特定のビルドを示します (修正プログラムや更新プログラムの場合など)。これにより、検出ロジックを損なうことがなくファイルが一意に識別されます。
特定の実行可能ファイルの製品バージョンとファイル バージョンを特定するには、Windows エクスプローラーでファイルを右クリックし、[プロパティ] を選択して、[詳細] タブをクリックします。
アプリケーションに FileVersion 要素を含めると、検出ロジックをより細かく微調整できますが、ほとんどのアプリケーションでは必要ありません。最初に ProductVersion 要素の設定がチェックされ、その後 FileVersion がチェックされます。より厳しく制限された設定が適用されます。
FileVersion の子要素および構文規則は、ProductVersion の場合と同じです。
<Process>
<Filename>MSACCESS.EXE</Filename>
<Architecture>Win32</Architecture>
<ProductVersion>
<Major Minimum="14" Maximum="14" />
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
<FileVersion>
<Major Minimum="14" Maximum="14" />
<Minor Minimum="0" Maximum="0" />
</FileVersion>
</Process>
Application 要素
Application は、特定のアプリケーションに適用される設定のコンテナーです。これは次のフィールド/型のコレクションです。
フィールド/型 |
説明 |
名前 |
設定場所テンプレートの一意の名前を指定します。WMI、PowerShell、イベント ビューアー、およびデバッグ ログのテンプレートを参照するときに表示目的で使用されます。詳細については、「Name 要素」をご覧ください。 |
ID |
特定のテンプレートに対して一意の識別子を設定します。このタグは、UE-V Agent が実行時にテンプレートを参照するために使用する主識別子になります。詳細については、「ID 要素」をご覧ください。 |
説明 |
テンプレートの省略可能な説明です。 |
LocalizedNames |
言語ロケールでローカライズされた、UI に表示される省略可能な名前です。 |
LocalizedDescriptions |
言語ロケールでローカライズされたテンプレートの省略可能な説明です。 |
バージョン |
変更を管理追跡するために設定場所テンプレートのバージョンを識別します。詳細については、「Version 要素」をご覧ください。 |
DeferToMSAccount |
Microsoft アカウントと組み合わせてこのテンプレートを有効にするかどうかを制御します。コンピューター上のユーザーに対して MSA 同期が有効になっている場合、このテンプレートは自動的に無効になります。 |
DeferToOffice365 |
MSA と同様に、Office 365 と組み合わせてこのテンプレートを有効にするかどうかを制御します。設定の同期に Office 365 が使用されている場合、このテンプレートは自動的に無効になります。 |
FixedProfile (2.1 で導入) |
このテンプレートがこの要素内の指定されたプロファイルにのみ関連付けることができ、WMI または PowerShell を経由では変更できないことを指定します。 |
Processes |
1 つまたは複数の Process 要素のコレクションのコンテナーです。詳細については、「Processes 要素と Process 要素」をご覧ください。 |
Settings |
特定のテンプレートに適用されるすべての設定のコンテナーです。Registry、File、SystemParameter、および CustomAction 設定のインスタンスが含まれています。詳細については、「データ型」の「Settings」を参照してください。 |
Common 要素
Common は Application 要素に似ていますが、常に 2 つ以上の Application 要素に関連付けられています。Common セクションは、これらの Application インスタンス間で共有される設定のセットを表します。これは次のフィールド/型のコレクションです。
フィールド/型 |
説明 |
名前 |
設定場所テンプレートの一意の名前を指定します。WMI、PowerShell、イベント ビューアー、およびデバッグ ログのテンプレートを参照するときに表示目的で使用されます。詳細については、「Name 要素」をご覧ください。 |
ID |
特定のテンプレートに対して一意の識別子を設定します。このタグは、UE-V Agent が実行時にテンプレートを参照するために使用する主識別子になります。詳細については、「ID 要素」をご覧ください。 |
説明 |
テンプレートの省略可能な説明です。 |
LocalizedNames |
言語ロケールでローカライズされた、UI に表示される省略可能な名前です。 |
LocalizedDescriptions |
言語ロケールでローカライズされたテンプレートの省略可能な説明です。 |
バージョン |
変更を管理追跡するために設定場所テンプレートのバージョンを識別します。詳細については、「Version 要素」をご覧ください。 |
DeferToMSAccount |
Microsoft アカウントと組み合わせてこのテンプレートを有効にするかどうかを制御します。コンピューター上のユーザーに対して MSA 同期が有効になっている場合、このテンプレートは自動的に無効になります。 |
DeferToOffice365 |
MSA と同様に、Office 365 と組み合わせてこのテンプレートを有効にするかどうかを制御します。設定の同期に Office 365 が使用されている場合、このテンプレートは自動的に無効になります。 |
FixedProfile (2.1 で導入) |
このテンプレートがこの要素内の指定されたプロファイルにのみ関連付けることができ、WMI または PowerShell を経由では変更できないことを指定します。 |
Settings |
特定のテンプレートに適用されるすべての設定のコンテナーです。Registry、File、SystemParameter、および CustomAction 設定のインスタンスが含まれています。詳細については、「データ型」の「Settings」を参照してください。 |
SettingsLocationTemplate 要素
この要素は、単一のアプリケーションまたはアプリケーション スイートの設定を定義します。
フィールド/型 |
説明 |
名前 |
設定場所テンプレートの一意の名前を指定します。WMI、PowerShell、イベント ビューアー、およびデバッグ ログのテンプレートを参照するときに表示目的で使用されます。詳細については、「Name 要素」をご覧ください。 |
ID |
特定のテンプレートに対して一意の識別子を設定します。このタグは、UE-V Agent が実行時にテンプレートを参照するために使用する主識別子になります。詳細については、「ID 要素」をご覧ください。 |
説明 |
テンプレートの省略可能な説明です。 |
LocalizedNames |
言語ロケールでローカライズされた、UI に表示される省略可能な名前です。 |
LocalizedDescriptions |
言語ロケールでローカライズされたテンプレートの省略可能な説明です。 |
付録:SettingsLocationTemplate.xsd
次に、SettingsLocationTemplate.xsd ファイルを示し、その要素、子要素、属性、およびパラメーターを表示します。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UevSettingsLocationTemplate"
targetNamespace="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
elementFormDefault="qualified"
xmlns="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
xmlns:mstns="https://schemas.microsoft.com/UserExperienceVirtualization/2013A/SettingsLocationTemplate"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="Guid">
<xs:restriction base="xs:string">
<xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FilenameString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IDString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:.]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CompositeIDString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:.]+([.][^\\\?\*\|<>/:.]+)?" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TemplateVersion">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="2147483647" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Empty">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="LocalizedString">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Locale" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="LocalizedName">
<xs:sequence>
<xs:element name="Name" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocalizedDescription">
<xs:sequence>
<xs:element name="Description" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReplacedTemplates">
<xs:sequence>
<xs:element name="ID" type="CompositeIDString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Author">
<xs:all>
<xs:element name="Name" type="xs:string" minOccurs="1" />
<xs:element name="Email" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="Range">
<xs:attribute name="Minimum" type="xs:integer" use="required"/>
<xs:attribute name="Maximum" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="ProcessVersion">
<xs:sequence>
<xs:element name="Major" type="Range" minOccurs="1" />
<xs:element name="Minor" type="Range" minOccurs="0" />
<xs:element name="Build" type="Range" minOccurs="0" />
<xs:element name="Patch" type="Range" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Architecture">
<xs:restriction base="xs:string">
<xs:enumeration value="Win32"/>
<xs:enumeration value="Win64"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Process">
<xs:sequence>
<xs:element name="Filename" type="FilenameString" minOccurs="1" />
<xs:element name="Architecture" type="Architecture" minOccurs="0" />
<xs:element name="ProductName" type="xs:string" minOccurs="0" />
<xs:element name="FileDescription" type="xs:string" minOccurs="0" />
<xs:element name="ProductVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="FileVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Processes">
<xs:sequence>
<xs:choice minOccurs="1">
<xs:element name="Process" type="Process" />
<xs:element name="ShellProcess" type="Empty" />
</xs:choice>
<xs:element name="Process" type="Process" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Path">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Recursive" type="xs:boolean" default="false"/>
<xs:attribute name="DeleteIfNotFound" type="xs:boolean" default="false"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="RegistrySetting">
<xs:sequence>
<xs:element name="Path" type="Path" />
<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="Path" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FileSetting">
<xs:sequence>
<xs:element name="Root">
<xs:complexType>
<xs:choice>
<xs:element name="KnownFolder" type="Guid" />
<xs:element name="RegistryEntry" type="xs:string" />
<xs:element name="EnvironmentVariable" type="xs:string" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="Path" minOccurs="0" type="Path" />
<xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="Path" minOccurs="0" />
<xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="CustomActionSetting">
<xs:restriction base="xs:anyURI"/>
</xs:simpleType>
<xs:simpleType name="SystemParameterSetting">
<xs:restriction base="xs:string">
<!-- Accessibility parameters -->
<xs:enumeration value="AccessTimeout"/>
<xs:enumeration value="AudioDescription"/>
<xs:enumeration value="ClientAreaAnimation"/>
<xs:enumeration value="DisableOverlappedContent"/>
<xs:enumeration value="FilterKeys"/>
<xs:enumeration value="FocusBorderHeight"/>
<xs:enumeration value="FocusBorderWidth"/>
<xs:enumeration value="HighContrast"/>
<xs:enumeration value="MessageDuration"/>
<xs:enumeration value="MouseClickLock"/>
<xs:enumeration value="MouseClickLockTime"/>
<xs:enumeration value="MouseKeys"/>
<xs:enumeration value="MouseSonar"/>
<xs:enumeration value="MouseVanish"/>
<xs:enumeration value="ScreenReader"/>
<xs:enumeration value="ShowSounds"/>
<xs:enumeration value="SoundSentry"/>
<xs:enumeration value="StickyKeys"/>
<xs:enumeration value="ToggleKeys"/>
<!-- Input parameters -->
<xs:enumeration value="Beep"/>
<xs:enumeration value="BlockSendInputResets"/>
<xs:enumeration value="DefaultInputLang"/>
<xs:enumeration value="DoubleClickTime"/>
<xs:enumeration value="DoubleClkHeight"/>
<xs:enumeration value="DoubleClkWidth"/>
<xs:enumeration value="KeyboardCues"/>
<xs:enumeration value="KeyboardDelay"/>
<xs:enumeration value="KeyboardPref"/>
<xs:enumeration value="KeyboardSpeed"/>
<xs:enumeration value="Mouse"/>
<xs:enumeration value="MouseButtonSwap"/>
<xs:enumeration value="MouseHoverHeight"/>
<xs:enumeration value="MouseHoverTime"/>
<xs:enumeration value="MouseHoverWidth"/>
<xs:enumeration value="MouseSpeed"/>
<xs:enumeration value="MouseTrails"/>
<xs:enumeration value="SnapToDefButton"/>
<xs:enumeration value="WheelScrollChars"/>
<xs:enumeration value="WheelScrollLines"/>
<!-- Desktop parameters (limited subset) -->
<xs:enumeration value="DeskWallpaper"/>
<xs:enumeration value="DesktopColor"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Settings">
<xs:sequence>
<xs:element name="Asynchronous" type="xs:boolean" minOccurs="0" />
<xs:element name="PreventOverlappingSynchronization" type="xs:boolean" minOccurs="0" />
<xs:element name="AlwaysApplySettings" type="xs:boolean" minOccurs="0" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Registry" type="RegistrySetting" />
<xs:element name="File" type="FileSetting" />
<xs:element name="SystemParameter" type="SystemParameterSetting" />
<xs:element name="CustomAction" type="CustomActionSetting" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Common">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:element name="Version" type="xs:integer" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Application">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:element name="Version" type="xs:integer" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
<xs:element name="Processes" type="Processes" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
</xs:complexType>
<xs:element name="SettingsLocationTemplate">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:choice>
<!-- Single application -->
<xs:sequence>
<xs:element name="ReplacedTemplates" type="ReplacedTemplates" minOccurs="0" />
<xs:element name="Version" type="TemplateVersion" />
<xs:element name="Author" type="Author" minOccurs="0" />
<xs:element name="FixedProfile" type="xs:string" minOccurs="0" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="DeferToOffice365" type="Empty" minOccurs="0" />
<xs:element name="Processes" type="Processes" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
<!-- Suite of applications -->
<xs:sequence>
<xs:element name="ManageSuiteOnly" type="xs:boolean" minOccurs="0" />
<xs:element name="Author" type="Author" minOccurs="0" />
<xs:element name="FixedProfile" type="xs:string" minOccurs="0" />
<xs:element name="Common" type="Common" />
<xs:element name="Application" type="Application" minOccurs="2" maxOccurs="unbounded" />
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- SettingsLocationTemplate -->
</xs:schema>
UE-V 2.0 アプリケーション テンプレート スキーマ リファレンス
このセクションでは、UE-V 2.0 の設定場所テンプレートの XML 構造について詳しく説明し、このファイルの編集に関するガイダンスを示します。
このセクションの内容
XML 宣言とエンコード属性
名前空間とルート要素
データ型
Name 要素
ID 要素
Version 要素
Author 要素
Processes 要素と Process 要素
Application 要素
Common 要素
SettingsLocationTemplate 要素
付録:SettingsLocationTemplate.xsd
XML 宣言とエンコード属性
必須:True
型:文字列
XML 宣言は、XML バージョン 1.0 属性 (<?xml version="1.0">) を指定する必要があります。エンコードは明示的には指定されていませんが、UE-V Generator によって作成された設定場所テンプレートは UTF-8 エンコードで保存されます。ベスト プラクティスとして、この要素に encoding="UTF-8" 属性を含めることをお勧めします。同様に、製品に含まれているすべてのテンプレートがこのタグを指定します (%ProgramFiles%\Microsoft User Experience Virtualization\Templates のドキュメントを参照)。例:
<?xml version="1.0" encoding="UTF-8"?>
名前空間とルート要素
必須:True
型:文字列
UE-V は、すべてのアプリケーションに対して https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate 名前空間を使用します。SettingsLocationTemplate はルート要素であり、その他のすべての要素を含んでいます。次のタグを使用して、すべてのテンプレートで SettingsLocationTemplate を参照します。
<SettingsLocationTemplate xmlns='https://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate'>
データ型
次に、UE-V アプリケーション テンプレート スキーマのデータ型を示します。
- GUID
GUID は、"\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}" の形式の標準的なグローバル一意識別子の正規表現を表します。一般的なフォルダーのフォーマットを確認するために Filesetting\Root\KnownFolder 要素で使用されます。
- FilenameString
FilenameString は、監視対象のプロセスのファイル名を参照します。その値は、regex [^\\\?\*\|<>/:]+ によって制限されます (つまり、バックスラッシュ文字、アスタリスクや疑問符のワイルドカード文字、パイプ文字、大なり記号や小なり記号、スラッシュ文字、またはコロン文字を含めることはできません)。
- IDString
IDString は、Application 要素、SettingsLocationTemplate、および Common 要素 (共通設定を共有するアプリケーション スイートを表すために使用) の ID 値を参照します。これは、FilenameString と同じ regex ([^\\\?\*\|<>/:]+) によって制限されます。
- TemplateVersion
TemplateVersion は、設定場所テンプレートのリビジョンを表すために使用される整数値です。その値の範囲は 0 ~ 2147483647 です。
- Empty
Empty は null 値を参照します。監視するプロセスがないことを示すために Process\ShellProcess で使用されます。この値は、いずれのアプリケーション テンプレートでも使用できません。
- Author
Author データ型は、テンプレートの作成者を識別する複合型です。2 つの子要素: Name と Email がサポートされています。Author データ型内で Name 要素は必須、Email 要素は省略可能です。この型については、SettingsLocationTemplate 要素のトピックで詳しく説明されています。
- Range
Range は、2 つの子要素: Minimum と Maximum で構成される整数クラスを定義します。このデータ型は、ProcessVersion データ型に実装されます。この型を指定する場合は、Minimum 値と Maximum 値の両方を含める必要があります。
- ProcessVersion
ProcessVersion は、4 つの子要素:Major、Minor、Build、および Patch を含む型を定義します。このデータ型は、その ProductVersion 値と FileVersion 値を設定するために Process 要素によって使用されます。この型のデータは Range 値です。Major 子要素は必須、その他は省略可能です。
- アーキテクチャ
Architecture は、2 つの有効な値: Win32 と Win64 を列挙します。これらの値は、プロセス アーキテクチャの指定に使用されます。
Process
Process データ型は、UE-V によって監視されるプロセスを表すために使用されるコンテナーです。6 つの子要素:Filename、Architecture、ProductName、FileDescription、ProductVersion、および FileVersion が含まれています。次の表に、各要素の該当するデータ型の詳細を示します。要素 データ型 必須 Filename
FilenameString
True
アーキテクチャ
アーキテクチャ
False
ProductName
文字列
False
FileDescription
文字列
False
ProductVersion
ProcessVersion
False
FileVersion
ProcessVersion
False
- Processes
Processes データ型は、1 つまたは複数の Process 要素のコレクションのコンテナーを表します。Processes シーケンス型では、2 つの子要素:Process と ShellProcess がサポートされています。Process は型 Process の要素、ShellProcess はデータ型 Empty です。シーケンスでは、少なくとも 1 つの項目を特定する必要があります。
パス
Path は、レジストリ パスとファイル パスを参照するために RegistrySetting および FileSetting によって使用されます。この要素は、省略可能な 2 つの属性:Recursive と DeleteIfNotFound をサポートしています。両方の値が default=”False” に設定されます。Recursive は、ファイル設定にパスおよびすべてのサブフォルダーが含まれること、またはレジストリ設定にすべての子レジストリ キーが含まれることを示します。どちらの場合にも、キャプチャされたデータに現在のレベルのすべての項目が含まれます。FileSettings オブジェクトでは、UE-V によってキャプチャされたデータに、指定されたフォルダー内のすべてのファイルが含まれますが、フォルダーは含まれません。レジストリ パスでは、現在のパスのすべての値がキャプチャされますが、子レジストリ キーはキャプチャされません。どちらの場合にも、大きなデータ セットまたは多数の項目をキャプチャしないように注意する必要があります。
DeleteIfNotFound 属性は、ユーザーの設定の保存パス データから設定を削除します。パッケージからこれらの設定を削除することで、設定の保存パス ファイル サーバー上で大量のディスク領域を節約できる場合に、この動作が望ましいことがあります。
- FileMask
FileMask は、Path で定義されたフォルダーに対して特定のファイルの種類のみを指定します。たとえば、Path がC:\users\username\files
、FileMask が*.txt
の場合、テキスト ファイルのみが含まれます。
- RegistrySetting
RegistrySetting は、UE-V Agent 側でのレジストリ キーと値のコンテナーおよび関連付けられている目的の動作を表します。この型内では、4 つの子要素:Path、Name、Exclude、および値 Path と Name のシーケンスが定義されます。
- FileSetting
FileSetting には、ファイルおよびファイル パスに関連付けられているパラメーターが含まれています。4 つの子要素:Root、Path、FileMask、および Exclude が定義されます。Root は必須、その他は省略可能です。
Settings
Settings は、特定のテンプレートに適用されるすべての設定のコンテナーです。前に説明した Registry、File、SystemParameter、および CustomAction 設定のインスタンスが含まれています。また、説明した動作を持つ次の子要素が含まれていることもあります。要素 説明 Asynchronous
Asynchronous 設定パッケージは、設定の適用中にアプリケーションの起動が続行されるように、アプリケーションの起動をブロックすることなく適用されます。API 経由の
get/set
など、非同期に適用できる設定に有用です (例: SystemParameterSetting)。PreventOverlappingSynchronization
既定で UE-V は、テンプレートを使用するアプリケーションの最後のインスタンスが終了したときにのみ、アプリケーションの設定を保存します。この要素が ‘false’ に設定されていると、UE-V は、アプリケーションのその他のインスタンスが実行されている場合でも設定をエクスポートします。UE-V に付属しているテンプレート スイート (Common 要素セクションを含むテンプレート) は、このフラグを使用して、アプリケーションの終了時に共有設定を常にエクスポートできるようにする一方で、最後のインスタンスが終了するまでアプリケーション固有の設定がエクスポートされないようにします。
Name 要素
必須:True
型:文字列
Name は、設定場所テンプレートの一意の名前を指定します。WMI、PowerShell、イベント ビューアー、およびデバッグ ログのテンプレートを参照するときに表示目的で使用されます。通常、ProductVersion 要素から拒否される可能性があるため、バージョン情報は参照しないようにします。たとえば、<Name>My Application 1.1</Name>
ではなく <Name>My Application</Name>
を指定します。
注意
UE-V は外部 DTD を参照しないため、設定場所テンプレートで名前付きエンティティを使用することはできません。たとえば、登録商標 ® を参照するために ® を使用しないでください。こうした種類の特殊文字を含めるには、代わりに正規の番号付き参照 (たとえば、® 文字に対して ®) を使用します。この規則は、このドキュメントのすべての文字列値に適用されます。
文字エンティティの完全な一覧については、http://www.w3.org/TR/xhtml1/dtds.html を参照してください。UTF-8 でエンコードされたドキュメントには、Unicode 文字を直接含めることができます。UE-V Generator を使用してテンプレートを保存すると、文字エンティティが Unicode 表記に自動的に変換されます。ID 要素
必須:True
型:文字列
ID は、特定のテンプレートに対して一意の識別子を設定します。このタグは、UE-V Agent が実行時にテンプレートを参照するために使用する主識別子になります (たとえば、Get-UevTemplate コマンドレットや Get-UevTemplateProgram PowerShell コマンドレットの出力を参照)。規則では、スクリプトを単純化するスペースをこのタグに含めることはできません。この要素には、<ID>MicrosoftCalculator6</ID>
や <ID>MicrosoftOffice2010Win64</ID>
など、テンプレートを簡単に識別できるようにアプリケーションのバージョン番号を指定する必要があります。
Version 要素
必須:True
型:整数
最小値:0
最大値:2147483647
Version は、変更を管理追跡するために設定場所テンプレートのバージョンを識別します。UE-V Generator では、テンプレートが保存されるたびにこの数値が自動的にインクリメントされます。このフィールドは整数である必要があり、<Version>2.5</Version>
などの小数値は許可されません。
ヒント: XML コメント タグ <!-- -->
を使用して、バージョン変更に関するメモを保存できます。次に例を示します。
<!--
Version History
Version 1 Jul 05, 2012 Initial template created by Generator - Denise@Contoso.com
Version 2 Jul 31, 2012 Added support for app.exe v2.1.3 - Mark@Contoso.com
Version 3 Jan 01, 2013 Added font settings support - Mark@Contoso.com
Version 4 Jan 31, 2013 Added support for plugin settings - Tony@Contoso.com
-->
<Version>4</Version>
重要
この値をクエリして、次の場合に新しいバージョンのテンプレートを既存のテンプレートに適用すべきかどうかを判断します。
- スケジュールされたテンプレートの自動更新タスクが実行される場合
- Update-UevTemplate PowerShell コマンドレットが実行される場合
- WMI 経由で microsoft\uev:SettingsLocationTemplate Update メソッドが呼び出された場合
Author 要素
必須:False
型:文字列
Author は、設定場所テンプレートの作成者を識別します。2 つの省略可能な子要素:Name と Email がサポートされています。どちらの属性も省略可能ですが、Email 子要素を指定した場合は Name 要素も指定する必要があります。Author は設定場所テンプレートの連絡先のフル ネームを参照し、Email は作成者の電子メール アドレスを参照する必要があります。たとえば UE-V テンプレート ギャラリー 上など、パブリックに公開されたテンプレートにこの情報を含めることをお勧めします。
Processes 要素と Process 要素
必須:True
型:要素
Processes には少なくとも 1 つの <Process>
要素が含まれており、この要素には子要素:Filename、Architecture、ProductName、FileDescription、ProductVersion、および FileVersion が含まれています。Filename 子要素は必須、その他は省略可能です。完全に設定された要素には、次の例のようなタグが含まれています。
<Process>
<Filename>MyApplication.exe</Filename>
<Architecture>Win64</Architecture>
<ProductName> MyApplication </ProductName>
<FileDescription>MyApplication.exe</FileDescription>
<ProductVersion>
<Major Minimum="2" Maximum="2" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="0" Maximum="0" />
<Patch Minimum="5" Maximum="5" />
</ProductVersion>
<FileVersion>
<Major Minimum="2" Maximum="2" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="0" Maximum="0" />
<Patch Minimum="5" Maximum="5" />
</FileVersion>
</Process>
Filename
必須:True
型:文字列
Filename は、ファイル システムに表示される実行可能ファイルの実際のファイル名を参照します。この要素は、テンプレートがプロセスに適用されるかどうかを評価するために UE-V が使用する主条件を指定します。この要素は、設定場所テンプレート XML で指定する必要があります。
有効なファイル名は、正規表現 [^\\\?\*\|<>/:]+ と一致してはなりません。つまり、バックスラッシュ文字、アスタリスクや疑問符のワイルドカード文字、パイプ文字、大なり記号や小なり記号、スラッシュ文字、またはコロン文字 (\ ?* |< > / または :) を含めることはできません。
ヒント: この regex に対して文字列をテストするには、PowerShell コマンド ウィンドウを使用して、YourFileName を実行可能ファイルの名前に置き換えます。
"YourFileName.exe" -match "[\\\?\*\|<>/:]+"
値 True は、文字列に無効な文字が含まれていることを示します。無効な値の例を次に示します。
\\server\share\program.exe
Program*.exe
Pro?ram.exe
Program<1>.exe
注意
UE-V Generator は、大なり文字と小なり文字をそれぞれ > と < としてエンコードします。
まれに、FileName 値に .exe 拡張子が含まれない場合がありますが、値の一部として指定する必要があります。たとえば、<Filename>MyApplictication</Filename>
ではなく <Filename>MyApplictication.exe</Filename>
を指定する必要があります。前者では、実行可能ファイルの実際の名前が “MyApplication.exe” である場合、テンプレートはプロセスに適用されません。
アーキテクチャ
必須:False
型:Architecture (文字列)
Architecture は、ターゲットの実行可能ファイルがコンパイルされたプロセッサ アーキテクチャを参照します。有効な値は、32 ビット アプリケーションでは Win32、64 ビット アプリケーションでは Win64 です。このタグが存在する場合は、特定のアプリケーション アーキテクチャに対する設定場所テンプレートの適用性が制限されます。この例として、UE-V に付属している %ProgramFiles%\Microsoft User Experience Virtualization\templates\MicrosoftOffice2010Win32.xml ファイルと MicrosoftOffice2010Win64.xml ファイルを比較してください。この要素は、さまざまなバージョンの実行可能ファイル間で相対パスが変化する場合、または異なるプロセッサ アーキテクチャ間を移動するときに設定が追加または削除された場合に有用です。
この要素がない場合、ファイル名およびその他の属性が適用されると、設定場所テンプレートはプロセスのアーキテクチャを無視し、32 ビットと 64 ビットの両方のプロセスに適用されます。
注意
UE-V では、このバージョンの ARM プロセッサはサポートされていません。
ProductName
必須:False
型:文字列
ProductName は、管理目的またはレポート用に製品を識別するために使用される省略可能な要素です。ProductName は、値に正規表現制限がない点で Filename とは異なります。この要素を使用すると、実行可能ファイル名が明快でない場合に、プロセスの説明が理解しやすいものになります。例:
<Process>
<Filename>MyApplication.exe</Filename>
<ProductName>My Application 6.x by Contoso.com</ProductName>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
FileDescription
必須:False
型:文字列
FileDescription は、実行可能ファイルの管理上の説明を可能にする省略可能なタグです。これはフリー テキスト フィールドであり、実行可能ファイルの機能を識別する必要がある場合に、ソフトウェア パッケージ内の複数の実行可能ファイルを区別するのに役立ちます。
たとえば、アプリケーション スイートで、次に示すように 2 つの実行可能ファイル (MyApplication.exe と MyApplicationHelper.exe) の機能に関する覚え書きを提供すると便利です。
<Processes>
<Process>
<Filename>MyApplication.exe</Filename>
<FileDescription>My Application Main Engine</ FileDescription>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
<Process>
<Filename>MyApplicationHelper.exe</Filename>
<FileDescription>My Application Background Process Executable</FileDescription>
<ProductVersion>
<Major Minimum="6" Maximum="6" />
</ProductVersion>
</Process>
</Processes>
ProductVersion
必須:False
型:文字列
ProductVersion は、ファイルのメジャーおよびマイナー製品バージョン、およびビルドとパッチ レベルを参照します。ProductVersion は省略可能な要素ですが、指定した場合は、少なくとも Major 子要素を含める必要があります。この値は、Minimum="X" Maximum="Y" (X と Y は整数) の形式で範囲を表す必要があります。Minimum 値と Maximum 値は同じにすることができます。
製品要素とファイル バージョン要素は指定しなくてもかまいません。指定しないと、テンプレートは「バージョン非依存」になります。つまり、テンプレートは、指定された実行可能ファイルのすべてのバージョンに適用されます。
例 1:
製品バージョン: 1.0 が UE-V Generator で指定されると、次の XML が生成されます。
<ProductVersion>
<Major Minimum="1" Maximum="1" />
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
例 2:
ファイル バージョン: 5.0.2.1000 が UE-V Generator で指定されると、次の XML が生成されます。
<FileVersion>
<Major Minimum="5" Maximum="5" />
<Minor Minimum="0" Maximum="0" />
<Build Minimum="2" Maximum="2" />
<Patch Minimum="1000" Maximum="1000" />
</FileVersion>
正しくない例 1 – 不完全な範囲:
Minimum 属性のみが存在しています。Maximum も範囲に含める必要があります。
<ProductVersion>
<Major Minimum="2" />
</ProductVersion>
正しくない例 2: Major 要素を指定せずに Minor を指定:
Minor 要素のみが存在しています。Major も含める必要があります。
<ProductVersion>
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
FileVersion
必須:False
型:文字列
FileVersion は、公開アプリケーションのリリース バージョンとコンポーネント実行可能ファイルの内部ビルド詳細とを区別します。ほとんどの商用アプリケーションでは、これらの数値は同じです。これらが異なる場合、ファイルの製品バージョンはファイルの汎用バージョン ID を示し、ファイル バージョンはファイルの特定のビルドを示します (修正プログラムや更新プログラムの場合など)。これにより、検出ロジックを損なうことがなくファイルが一意に識別されます。
特定の実行可能ファイルの製品バージョンとファイル バージョンを特定するには、Windows エクスプローラーでファイルを右クリックし、[プロパティ] を選択して、[詳細] タブをクリックします。
アプリケーションに FileVersion 要素を含めると、検出ロジックをより細かく微調整できますが、ほとんどのアプリケーションでは必要ありません。最初に ProductVersion 要素の設定がチェックされ、その後 FileVersion がチェックされます。より厳しく制限された設定が適用されます。
FileVersion の子要素および構文規則は、ProductVersion の場合と同じです。
<Process>
<Filename>MSACCESS.EXE</Filename>
<Architecture>Win32</Architecture>
<ProductVersion>
<Major Minimum="14" Maximum="14" />
<Minor Minimum="0" Maximum="0" />
</ProductVersion>
<FileVersion>
<Major Minimum="14" Maximum="14" />
<Minor Minimum="0" Maximum="0" />
</FileVersion>
</Process>
Application 要素
Application は、特定のアプリケーションに適用される設定のコンテナーです。これは次のフィールド/型のコレクションです。
フィールド/型 | 説明 |
---|---|
名前 |
設定場所テンプレートの一意の名前を指定します。WMI、PowerShell、イベント ビューアー、およびデバッグ ログのテンプレートを参照するときに表示目的で使用されます。詳細については、「Name 要素」をご覧ください。 |
ID |
特定のテンプレートに対して一意の識別子を設定します。このタグは、UE-V Agent が実行時にテンプレートを参照するために使用する主識別子になります。詳細については、「ID 要素」をご覧ください。 |
説明 |
テンプレートの省略可能な説明です。 |
LocalizedNames |
言語ロケールでローカライズされた、UI に表示される省略可能な名前です。 |
LocalizedDescriptions |
言語ロケールでローカライズされたテンプレートの省略可能な説明です。 |
バージョン |
変更を管理追跡するために設定場所テンプレートのバージョンを識別します。詳細については、「Version 要素」をご覧ください。 |
DeferToMSAccount |
Microsoft アカウントと組み合わせてこのテンプレートを有効にするかどうかを制御します。コンピューター上のユーザーに対して MSA 同期が有効になっている場合、このテンプレートは自動的に無効になります。 |
DeferToOffice365 |
MSA と同様に、Office 365 と組み合わせてこのテンプレートを有効にするかどうかを制御します。設定の同期に Office 365 が使用されている場合、このテンプレートは自動的に無効になります。 |
Processes |
1 つまたは複数の Process 要素のコレクションのコンテナーです。詳細については、「Processes 要素と Process 要素」をご覧ください。 |
Settings |
特定のテンプレートに適用されるすべての設定のコンテナーです。Registry、File、SystemParameter、および CustomAction 設定のインスタンスが含まれています。詳細については、「データ型」の「Settings」を参照してください。 |
Common 要素
Common は Application 要素に似ていますが、常に 2 つ以上の Application 要素に関連付けられています。Common セクションは、これらの Application インスタンス間で共有される設定のセットを表します。これは次のフィールド/型のコレクションです。
フィールド/型 | 説明 |
---|---|
名前 |
設定場所テンプレートの一意の名前を指定します。WMI、PowerShell、イベント ビューアー、およびデバッグ ログのテンプレートを参照するときに表示目的で使用されます。詳細については、「Name 要素」をご覧ください。 |
ID |
特定のテンプレートに対して一意の識別子を設定します。このタグは、UE-V Agent が実行時にテンプレートを参照するために使用する主識別子になります。詳細については、「ID 要素」をご覧ください。 |
説明 |
テンプレートの省略可能な説明です。 |
LocalizedNames |
言語ロケールでローカライズされた、UI に表示される省略可能な名前です。 |
LocalizedDescriptions |
言語ロケールでローカライズされたテンプレートの省略可能な説明です。 |
バージョン |
変更を管理追跡するために設定場所テンプレートのバージョンを識別します。詳細については、「Version 要素」をご覧ください。 |
DeferToMSAccount |
Microsoft アカウントと組み合わせてこのテンプレートを有効にするかどうかを制御します。コンピューター上のユーザーに対して MSA 同期が有効になっている場合、このテンプレートは自動的に無効になります。 |
DeferToOffice365 |
MSA と同様に、Office 365 と組み合わせてこのテンプレートを有効にするかどうかを制御します。設定の同期に Office 365 が使用されている場合、このテンプレートは自動的に無効になります。 |
Settings |
特定のテンプレートに適用されるすべての設定のコンテナーです。Registry、File、SystemParameter、および CustomAction 設定のインスタンスが含まれています。詳細については、「データ型」の「Settings」を参照してください。 |
SettingsLocationTemplate 要素
この要素は、単一のアプリケーションまたはアプリケーション スイートの設定を定義します。
フィールド/型 | 説明 |
---|---|
名前 |
設定場所テンプレートの一意の名前を指定します。WMI、PowerShell、イベント ビューアー、およびデバッグ ログのテンプレートを参照するときに表示目的で使用されます。詳細については、「Name 要素」をご覧ください。 |
ID |
特定のテンプレートに対して一意の識別子を設定します。このタグは、UE-V Agent が実行時にテンプレートを参照するために使用する主識別子になります。詳細については、「ID 要素」をご覧ください。 |
説明 |
テンプレートの省略可能な説明です。 |
LocalizedNames |
言語ロケールでローカライズされた、UI に表示される省略可能な名前です。 |
LocalizedDescriptions |
言語ロケールでローカライズされたテンプレートの省略可能な説明です。 |
付録:SettingsLocationTemplate.xsd
次に、SettingsLocationTemplate.xsd ファイルを示し、その要素、子要素、属性、およびパラメーターを表示します。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UevSettingsLocationTemplate"
targetNamespace="https://schemas.microsoft.com/UserExperienceVirtualization/2013/SettingsLocationTemplate"
elementFormDefault="qualified"
xmlns="https://schemas.microsoft.com/UserExperienceVirtualization/2013/SettingsLocationTemplate"
xmlns:mstns="https://schemas.microsoft.com/UserExperienceVirtualization/2013/SettingsLocationTemplate"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="Guid">
<xs:restriction base="xs:string">
<xs:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FilenameString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IDString">
<xs:restriction base="xs:string">
<xs:pattern value="[^\\\?\*\|<>/:.]+" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TemplateVersion">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="2147483647" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Empty">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="LocalizedString">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Locale" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="LocalizedName">
<xs:sequence>
<xs:element name="Name" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocalizedDescription">
<xs:sequence>
<xs:element name="Description" type="LocalizedString" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Author">
<xs:all>
<xs:element name="Name" type="xs:string" minOccurs="1" />
<xs:element name="Email" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
<xs:complexType name="Range">
<xs:attribute name="Minimum" type="xs:integer" use="required"/>
<xs:attribute name="Maximum" type="xs:integer" use="required"/>
</xs:complexType>
<xs:complexType name="ProcessVersion">
<xs:sequence>
<xs:element name="Major" type="Range" minOccurs="1" />
<xs:element name="Minor" type="Range" minOccurs="0" />
<xs:element name="Build" type="Range" minOccurs="0" />
<xs:element name="Patch" type="Range" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="Architecture">
<xs:restriction base="xs:string">
<xs:enumeration value="Win32"/>
<xs:enumeration value="Win64"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Process">
<xs:sequence>
<xs:element name="Filename" type="FilenameString" minOccurs="1" />
<xs:element name="Architecture" type="Architecture" minOccurs="0" />
<xs:element name="ProductName" type="xs:string" minOccurs="0" />
<xs:element name="FileDescription" type="xs:string" minOccurs="0" />
<xs:element name="ProductVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="FileVersion" type="ProcessVersion" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Processes">
<xs:sequence>
<xs:choice minOccurs="1">
<xs:element name="Process" type="Process" />
<xs:element name="ShellProcess" type="Empty" />
</xs:choice>
<xs:element name="Process" type="Process" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Path">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Recursive" type="xs:boolean" default="false"/>
<xs:attribute name="DeleteIfNotFound" type="xs:boolean" default="false"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="RegistrySetting">
<xs:sequence>
<xs:element name="Path" type="Path" />
<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="Path" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FileSetting">
<xs:sequence>
<xs:element name="Root">
<xs:complexType>
<xs:choice>
<xs:element name="KnownFolder" type="Guid" />
<xs:element name="RegistryEntry" type="xs:string" />
<xs:element name="EnvironmentVariable" type="xs:string" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="Path" minOccurs="0" type="Path" />
<xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Path" type="Path" minOccurs="0" />
<xs:element name="FileMask" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="SystemParameterSetting">
<xs:restriction base="xs:string">
<!-- Accessibility parameters -->
<xs:enumeration value="AccessTimeout"/>
<xs:enumeration value="AudioDescription"/>
<xs:enumeration value="ClientAreaAnimation"/>
<xs:enumeration value="DisableOverlappedContent"/>
<xs:enumeration value="FilterKeys"/>
<xs:enumeration value="FocusBorderHeight"/>
<xs:enumeration value="FocusBorderWidth"/>
<xs:enumeration value="HighContrast"/>
<xs:enumeration value="MessageDuration"/>
<xs:enumeration value="MouseClickLock"/>
<xs:enumeration value="MouseClickLockTime"/>
<xs:enumeration value="MouseKeys"/>
<xs:enumeration value="MouseSonar"/>
<xs:enumeration value="MouseVanish"/>
<xs:enumeration value="ScreenReader"/>
<xs:enumeration value="ShowSounds"/>
<xs:enumeration value="SoundSentry"/>
<xs:enumeration value="StickyKeys"/>
<xs:enumeration value="ToggleKeys"/>
<!-- Input parameters -->
<xs:enumeration value="Beep"/>
<xs:enumeration value="BlockSendInputResets"/>
<xs:enumeration value="DefaultInputLang"/>
<xs:enumeration value="DoubleClickTime"/>
<xs:enumeration value="DoubleClkHeight"/>
<xs:enumeration value="DoubleClkWidth"/>
<xs:enumeration value="KeyboardCues"/>
<xs:enumeration value="KeyboardDelay"/>
<xs:enumeration value="KeyboardPref"/>
<xs:enumeration value="KeyboardSpeed"/>
<xs:enumeration value="Mouse"/>
<xs:enumeration value="MouseButtonSwap"/>
<xs:enumeration value="MouseHoverHeight"/>
<xs:enumeration value="MouseHoverTime"/>
<xs:enumeration value="MouseHoverWidth"/>
<xs:enumeration value="MouseSpeed"/>
<xs:enumeration value="MouseTrails"/>
<xs:enumeration value="SnapToDefButton"/>
<xs:enumeration value="WheelScrollChars"/>
<xs:enumeration value="WheelScrollLines"/>
<!-- Desktop parameters (limited subset) -->
<xs:enumeration value="DeskWallpaper"/>
<xs:enumeration value="DesktopColor"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Settings">
<xs:sequence>
<xs:element name="Asynchronous" type="xs:boolean" minOccurs="0" />
<xs:element name="PreventOverlappingSynchronization" type="xs:boolean" minOccurs="0" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Registry" type="RegistrySetting" />
<xs:element name="File" type="FileSetting" />
<xs:element name="SystemParameter" type="SystemParameterSetting" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Common">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:element name="Version" type="xs:integer" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Application">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:element name="Version" type="xs:integer" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="Processes" type="Processes" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
</xs:complexType>
<xs:element name="SettingsLocationTemplate">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="ID" type="IDString" />
<xs:element name="Description" type="xs:string" minOccurs="0" />
<xs:element name="LocalizedNames" type="LocalizedName" minOccurs="0" />
<xs:element name="LocalizedDescriptions" type="LocalizedDescription" minOccurs="0" />
<xs:choice>
<!-- Single application -->
<xs:sequence>
<xs:element name="Version" type="TemplateVersion" />
<xs:element name="Author" type="Author" minOccurs="0" />
<xs:element name="DeferToMSAccount" type="Empty" minOccurs="0" />
<xs:element name="Processes" type="Processes" />
<xs:element name="Settings" type="Settings" />
</xs:sequence>
<!-- Suite of applications -->
<xs:sequence>
<xs:element name="ManageSuiteOnly" type="xs:boolean" minOccurs="0" />
<xs:element name="Author" type="Author" minOccurs="0" />
<xs:element name="Common" type="Common" />
<xs:element name="Application" type="Application" minOccurs="2" maxOccurs="unbounded" />
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- SettingsLocationTemplate -->
</xs:schema>
UE-V への提案はございますか。
こちらから提案を追加するか、提案に投票してください。UE-V の問題については、「UE-V に関する TechNet フォーラム」を利用してください。
関連項目
概念
カスタム UE-V 2.x テンプレートと UE-V 2.x Generator の操作