適用対象:
- Windows 10
- Windows 11
動的構成を使用して、ユーザー用の App-V パッケージをカスタマイズできます。 この記事では、既存の動的構成ファイルを作成または編集する方法について説明します。
動的構成ファイルを編集すると、ユーザーまたはグループに対する App-V パッケージの実行方法がカスタマイズされます。 したがって、パッケージのカスタマイズは、目的の設定を使用してパッケージをシーケンス変更する必要がなくなり、パッケージ コンテンツとカスタム設定を独立させる方法が提供されるため、より便利になります。
詳細設定: 動的構成
仮想アプリケーション パッケージには、パッケージのすべてのコア情報を提供するマニフェストが含まれています。 この情報には、パッケージ設定の既定値が含まれ、最も基本的な形式で設定が決定されます (それ以上のカスタマイズはありません)。 特定のユーザーまたはグループに対してこれらの既定の設定を調整する場合は、次のファイルを作成および編集できます。
- ユーザー構成ファイル
- 展開構成ファイル
これらの .xml ファイルはパッケージ設定を指定するため、パッケージに直接影響を与えることなくパッケージをカスタマイズできます。 パッケージが作成されると、シーケンサーはパッケージ マニフェスト データを使用して、既定の展開ファイルとユーザー構成 .xml ファイルを自動的に生成します。 これらの自動的に生成される構成ファイルは、シーケンス処理中に構成されたパッケージの既定の設定を反映しています。 これらの構成ファイルをシーケンサーによって生成されたフォームのパッケージに適用すると、パッケージにはマニフェストから取得したものと同じ既定の設定が適用されます。 この結果では、既定値を変更する必要がある場合に開始するためのパッケージ固有のテンプレートが提供されます。
注
次の情報は、シーケンサーによって生成された構成ファイルを変更し、特定のユーザーまたはグループの要件を満たすようにパッケージをカスタマイズするためにのみ使用できます。
動的構成ファイルの内容
構成ファイル内のすべての追加、削除、および更新は、パッケージのマニフェスト情報で指定された既定値に関連付けて行う必要があります。 次の一覧は、これらのファイルの読み取り方法におけるファイル間の関係を、優先度が高い順に示したものです。
- ユーザー構成 .xml ファイル
- 展開構成 .xml ファイル
- パッケージ マニフェスト
最初の項目は、最後に読み取られる内容を表します。 したがって、その内容が優先されます。 すべてのパッケージには、本質的にパッケージ マニフェストの既定の設定が含まれており、提供されますが、優先度も最も低くなります。 カスタマイズした設定で展開構成 .xml ファイルを適用すると、パッケージ マニフェストの既定値が上書きされます。 パッケージ マニフェストの既定値をオーバーライドする前に、カスタマイズした設定でユーザー構成 .xml ファイルを適用すると、配置構成とパッケージ マニフェストの既定値の両方がオーバーライドされます。
構成ファイルには、次の 2 種類があります。
- ユーザー構成ファイル (UserConfig): パッケージのカスタム設定を指定または修正できます。 これらの設定は、App-V クライアントを実行しているコンピューターにパッケージが展開されるときに、特定のユーザーに適用されます。
- 配置構成ファイル (DeploymentConfig): パッケージのデフォルト設定を指定または変更できます。 これらの設定は、App-V クライアントを実行しているコンピューターにパッケージが展開されるときに、すべてのユーザーに適用されます。
UserConfig ファイルを使用すると、コンピューター上の特定のユーザー セットのパッケージの設定をカスタマイズしたり、HKCU などのローカル ユーザーの場所に適用される変更を加えたりすることができます。 DeploymentConfig ファイルを使用すると、コンピューター上のすべてのユーザーのパッケージの既定の設定を変更したり、[HKEY_LOCAL_MACHINE] や [すべてのユーザー] フォルダーなどのグローバルな場所に適用される変更を加えることができます。
UserConfig ファイルは、クライアントの他のユーザーに影響を与えることなく 1 人のユーザーに適用できる構成設定を提供します。
- ユーザーごとにネイティブ システムに統合される拡張機能: ショートカット、File-Type 関連付け、URL プロトコル、AppPath、ソフトウェア クライアント、COM。
- 仮想サブシステム: アプリケーション オブジェクト、環境変数、レジストリの変更、サービス、フォント。
- スクリプト (ユーザー コンテキストのみ)。
DeploymentConfig ファイルは、2 つのセクションに構成設定を提供します。1 つはコンピューター コンテキストを基準にし、もう 1 つはユーザー コンテキストを基準にして、前述の UserConfig リストに記載されているのと同じ機能を提供します。
- このトピックの前のセクションのすべての UserConfig 設定
- すべてのユーザーに対してグローバルにのみ適用できる拡張機能
- レジストリなど、グローバル コンピューターの場所用に構成できる仮想サブシステム
- 商品のソース URL
- スクリプト (コンピューター コンテキストのみ)
- 子プロセスを終了するコントロール
ファイル構造
次のセクションでは、App-V 動的構成ファイルの構造について説明します。
動的ユーザー構成ファイル
ヘッダー
動的ユーザー構成ファイルのヘッダーの例は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
PackageId は、マニフェスト ファイルに存在する値と同じです。
動的ユーザー構成ファイル本体
動的ユーザー構成ファイルの本文には、マニフェスト ファイルで定義されているすべてのアプリ拡張ポイントと、仮想アプリケーションを構成するための情報を含めることができます。 本文には次の 4 つのサブセクションを使用できます。
アプリケーション: パッケージ内のマニフェスト ファイルに含まれるすべてのアプリ拡張機能には、アプリケーション ID が割り当てられます。この ID はマニフェスト ファイルでも定義されています。 これにより、パッケージ内の特定のアプリケーションのすべての拡張機能を有効または無効にすることができます。 アプリケーション ID はマニフェスト ファイルに存在している必要があります。そうでない場合は無視されます。
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
<Applications>
<!-- No new application can be defined in policy. AppV Client will ignore any application ID that is not also in the Manifest file -->
<Application Id="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">
</Application>
</Applications>
…
</UserConfiguration>
サブシステム: AppExtensions およびその他のサブシステムは、次の例に示すように、 <Subsystems> の下にサブノードとして配置されます。
<UserConfiguration **PackageId**="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
<Subsystems>
..
</Subsystems>
..
</UserConfiguration>
各サブシステムは、 Enabled 属性を使用して有効/無効にすることができます。 以下のセクションでは、さまざまなサブシステムと使用例について説明します。
動的ユーザー構成ファイル拡張子
拡張機能サブシステムは拡張機能を制御します。 これらのサブシステムは、ショートカット、File-Type の関連付け、URL プロトコル、AppPath、ソフトウェア クライアント、および COM です。
拡張サブシステムは、コンテンツとは無関係に有効または無効にすることができます。 したがって、ショートカットが有効になっている場合、クライアントは既定でマニフェストに含まれているショートカットを使用します。 各拡張サブシステムには、 <Extensions> ノードを含めることができます。 この子要素が存在する場合、クライアントはそのサブシステムのマニフェスト ファイルの内容を無視し、構成ファイル内の内容のみを使用します。
ショートカット サブシステムの例
例 1
ユーザーが動的または配置構成ファイルで次の構文を定義した場合、コンテンツは無視されます。
<Shortcuts Enabled="true">
<Extensions
...
</Extensions>
</Shortcuts>
例 2
ユーザーが次の構文のみを定義した場合、マニフェスト内のコンテンツは公開時に統合されます。
`<Shortcuts Enabled="true"/>`
例 3
ユーザーが次の構文を定義すると、マニフェスト内のすべてのショートカットは無視され、ショートカットは統合されません。
<Shortcuts Enabled="true">
<Extensions/>
</Shortcuts>
サポートされている拡張機能サブシステム
ショートカット: このサブシステムは、ローカル システムに統合されるショートカットを制御します。 次の例には 2 つのショートカットがあります。
<Subsystems>
<Shortcuts Enabled="true">
<Extensions>
<Extension Category="AppV.Shortcut">
<Shortcut>
<File>\[{Common Programs}\]\\Microsoft Contoso\\Microsoft ContosoApp Filler 2010.lnk</File>
<Target>\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE</Target>
<Icon>\[{Windows}\]\\Installer\\{90140000-0011-0000-0000-0000000FF1CE}\\inficon.exe</Icon>
<Arguments />
<WorkingDirectory />
<AppUserModelId>ContosoApp.Filler.3</AppUserModelId>
<Description>Fill out dynamic forms to gather and reuse information throughout the organization using Microsoft ContosoApp.</Description>
<Hotkey>0</Hotkey>
<ShowCommand>1</ShowCommand>
<ApplicationId>\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE</ApplicationId>
</Shortcut>
</Extension>
<Extension Category="AppV.Shortcut">
<Shortcut>
<File>\[{AppData}\]\\Microsoft\\Contoso\\Recent\\Templates.LNK</File>
<Target>\[{AppData}\]\\Microsoft\\Templates</Target>
<Icon />
<Arguments />
<WorkingDirectory />
<AppUserModelId />
<Description />
<Hotkey>0</Hotkey>
<ShowCommand>1</ShowCommand>
<!-- Note the ApplicationId is optional -->
</Shortcut>
</Extension>
</Extensions>
</Shortcuts>
ファイルの種類の関連付け: 既定で開き、コンテキスト メニューを設定するために、ファイルの種類をプログラムに関連付けます。 (MIME タイプは、このサブシステムを使用して設定することもできます。)FileType 関連付けの例を次に示します。
<FileTypeAssociations Enabled="true">
<Extensions>
<Extension Category="AppV.FileTypeAssociation">
<FileTypeAssociation>
<FileExtension MimeAssociation="true">
<Name>.docm</Name>
<ProgId>contosowordpad.DocumentMacroEnabled.12</ProgId>
<PerceivedType>document</PerceivedType>
<ContentType>application/vnd.ms-contosowordpad.document.macroEnabled.12</ContentType>
<OpenWithList>
<ApplicationName>wincontosowordpad.exe</ApplicationName>
</OpenWithList>
<OpenWithProgIds>
<ProgId>contosowordpad.8</ProgId>
</OpenWithProgIds>
<ShellNew>
<Command />
<DataBinary />
<DataText />
<FileName />
<NullFile>true</NullFile>
<ItemName />
<IconPath />
<MenuText />
<Handler />
</ShellNew>
</FileExtension>
<ProgId>
<Name>contosowordpad.DocumentMacroEnabled.12</Name>
<DefaultIcon>\[{Windows}\]\\Installer\\{90140000-0011-0000-0000-0000000FF1CE}\\contosowordpadicon.exe,15</DefaultIcon>
<Description>Blah Blah Blah</Description>
<FriendlyTypeName>\[{FOLDERID\_ProgramFilesX86}\]\\Microsoft Contoso 14\\res.dll,9182</FriendlyTypeName>
<InfoTip>\[{FOLDERID\_ProgramFilesX86}\]\\Microsoft Contoso 14\\res.dll,1424</InfoTip>
<EditFlags>0</EditFlags>
<ShellCommands>
<DefaultCommand>Open</DefaultCommand>
<ShellCommand>
<ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
<Name>Edit</Name>
<FriendlyName>&Edit</FriendlyName>
<CommandLine>"\[{PackageRoot}\]\\Contoso\\WINcontosowordpad.EXE" /vu "%1"</CommandLine>
</ShellCommand>
</ShellCommand>
<ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
<Name>Open</Name>
<FriendlyName>&Open</FriendlyName>
<CommandLine>"\[{PackageRoot}\]\\Contoso\\WINcontosowordpad.EXE" /n "%1"</CommandLine>
<DropTargetClassId />
<DdeExec>
<Application>mscontosowordpad</Application>
<Topic>ShellSystem</Topic>
<IfExec>\[SHELLNOOP\]</IfExec>
<DdeCommand>\[SetForeground\]\[ShellNewDatabase "%1"\]</DdeCommand>
</DdeExec>
</ShellCommand>
</ShellCommands>
</ProgId>
</FileTypeAssociation>
</Extension>
</Extensions>
</FileTypeAssociations>
URL プロトコル: このサブシステムは、クライアント コンピューターのローカル レジストリに統合された URL プロトコルを制御します。 次の例は、"mailto:" プロトコルを示しています。
<URLProtocols Enabled="true">
<Extensions>
<Extension Category="AppV.URLProtocol">
<URLProtocol>
<Name>mailto</Name>
<ApplicationURLProtocol>
<DefaultIcon>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE,-9403</DefaultIcon>
<EditFlags>2</EditFlags>
<Description />
<AppUserModelId />
<FriendlyTypeName />
<InfoTip />
<SourceFilter />
<ShellFolder />
<WebNavigableCLSID />
<ExplorerFlags>2</ExplorerFlags>
<CLSID />
<ShellCommands>
<DefaultCommand>open</DefaultCommand>
<ShellCommand>
<ApplicationId>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE</ApplicationId>
<Name>open</Name>
<CommandLine>\[{ProgramFilesX86}\\Microsoft Contoso\\Contoso\\contosomail.EXE" -c OEP.Note /m "%1"</CommandLine>
<DropTargetClassId />
<FriendlyName />
<Extended>0</Extended>
<LegacyDisable>0</LegacyDisable>
<SuppressionPolicy>2</SuppressionPolicy>
<DdeExec>
<NoActivateHandler />
<Application>contosomail</Application>
<Topic>ShellSystem</Topic>
<IfExec>\[SHELLNOOP\]</IfExec>
<DdeCommand>\[SetForeground\]\[ShellNewDatabase "%1"\]</DdeCommand>
</DdeExec>
</ShellCommand>
</ShellCommands>
</ApplicationURLProtocol>
</URLProtocol>
</Extension>
</Extension>
</URLProtocols>
ソフトウェア クライアント: アプリをメール クライアント、ニュース リーダー、またはメディア プレーヤーとして登録し、[プログラム アクセスの設定] と [コンピューターの既定値の設定] UI にアプリを表示することを許可します。 ほとんどの場合、有効と無効にするだけで済みます。 また、他のすべてのクライアントをそのままにしておく場合にのみメール クライアントを有効または無効にできるコントロールもあります。
<SoftwareClients Enabled="true">
<ClientConfiguration EmailEnabled="false" />
</SoftwareClients>
AppPaths: contoso.exe などのアプリケーションが "myapp" という apppath 名で登録されている場合、このサブシステムでは、[実行] メニューに "myapp" と入力することでアプリを開くことができます。
<AppPaths Enabled="true">
<Extensions>
<Extension Category="AppV.AppPath">
<AppPath>
<ApplicationId>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE</ApplicationId>
<Name>contosomail.exe</Name>
<ApplicationPath>\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE</ApplicationPath>
<PATHEnvironmentVariablePrefix />
<CanAcceptUrl>false</CanAcceptUrl>
<SaveUrl />
</AppPath>
</Extension>
</Extensions>
</AppPaths>
COM: アプリケーションがローカル COM サーバーを登録できるようにします。 モードは、[統合]、[分離]、または [オフ] です。 場合 Isol.
<COM Mode="Isolated"/>
動的ユーザー構成ファイルのその他の設定
拡張機能に加えて、次のサブシステムを有効/無効にしたり、編集したりできます。
仮想カーネル オブジェクト
<Objects Enabled="false" />
```xml
**Virtual Registry**: use this if you want to set a registry in the Virtual Registry within HKCU.
```xml
<Registry Enabled="true">
<Include>
<Key Path="\\REGISTRY\\USER\\\[{AppVCurrentUserSID}\]\\Software\\ABC">
<Value Type="REG\_SZ" Name="Bar" Data="NewValue" />
</Key>
<Key Path="\\REGISTRY\\USER\\\[{AppVCurrentUserSID}\]\\Software\\EmptyKey" />
</Include>
<Delete>
</Registry>
仮想ファイル システム
<FileSystem Enabled="true" />
仮想フォント
<Fonts Enabled="false" />
仮想環境変数
<EnvironmentVariables Enabled="true">
<Include>
<Variable Name="UserPath" Value="%path%;%UserProfile%" />
<Variable Name="UserLib" Value="%UserProfile%\\ABC" />
</Include>
<Delete>
<Variable Name="lib" />
</Delete>
</EnvironmentVariables>
仮想サービス
<Services Enabled="false" />
UserScripts
スクリプトを使用して、仮想環境をセットアップまたは変更したり、アプリケーションを実行する前にデプロイまたは削除時にスクリプトを実行したり、アプリケーションの終了後に環境をクリーンアップしたりできます。 サンプル スクリプトを確認するには、シーケンサーによって出力されたサンプルのユーザー構成ファイルを参照してください。 スクリプトの設定に使用できるさまざまなトリガーの詳細については、「 スクリプト 」セクションを参照してください。
動的配置構成ファイル
動的展開構成ファイル ヘッダー
配置構成ファイルのヘッダーは、次のようになります。
<?xml version="1.0" encoding="utf-8"?><DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
PackageId は、マニフェスト ファイルに存在する値と同じ値です。
動的配置構成ファイル本体
展開構成ファイルの本文には、次の 2 つのセクションがあります。
- [ユーザー構成] セクションでは、前のセクションで説明したユーザー構成ファイルと同じ内容を使用できます。 パッケージがユーザーに公開されると、ユーザー構成ファイルも指定されていない限り、このセクションの appextensions 構成設定によってパッケージ内のマニフェストの対応する設定がオーバーライドされます。 UserConfig ファイルも指定されている場合は、展開構成ファイルの User 設定の代わりに使用されます。 パッケージがグローバルに公開されている場合、配置構成ファイルの内容のみがマニフェストと組み合わせて使用されます。
- [コンピューターの構成] セクションには、コンピューター上の特定のユーザーではなく、コンピューター全体に対してのみ構成できる情報が含まれています。 たとえば、VFS でレジストリ キー HKEY_LOCAL_MACHINEします。
<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
<UserConfiguration>
..
</UserConfiguration>
<MachineConfiguration>
..
</MachineConfiguration>
..
</MachineConfiguration>
</DeploymentConfiguration>
ユーザー構成: このセクションの詳細は、 動的ユーザー構成を参照してください。
マシンの構成: 展開構成ファイルの [コンピューターの構成] セクションでは、仮想レジストリのHKEY_LOCAL_MACHINEレジストリ キーなど、コンピューター上の特定のユーザーではなく、コンピューター全体に対してのみ設定できる情報を構成します。 この要素には、次の 4 つのサブセクションを含めることができます。
サブシステム
AppExtensions と他のサブシステムは、 <Subsystems> の下にサブノードとして配置されます。
<MachineConfiguration>
<Subsystems>
..
</Subsystems>
..
</MachineConfiguration>
次のセクションでは、さまざまなサブシステムと使用例について説明します。
拡張機能
一部のサブシステム (拡張サブシステム) は、すべてのユーザーにのみ適用できる拡張機能を制御します。 サブシステムはアプリケーション機能です。 このサブシステムはすべてのユーザーにのみ適用できるため、この種類の拡張機能をローカル システムに統合するには、パッケージをグローバルに公開する必要があります。 ユーザー構成拡張機能のコントロールと設定のルールは、マシン構成のコントロールと設定にも適用されます。
アプリケーション機能
Application Capabilities 拡張機能は、Windows OS インターフェイスの既定のプログラムによって使用されます。これによりアプリケーションは、特定のファイル拡張子を開くことができるもの、スタート メニューのインターネット ブラウザー スロットの候補として、および特定の種類の Windows MIME を開くことができるものとして自身を登録できます。 また、この拡張機能によって、仮想アプリケーションが既定プログラムの設定 UI に表示されるようになります。
<ApplicationCapabilities Enabled="true">
<Extensions>
<Extension Category="AppV.ApplicationCapabilities">
<ApplicationCapabilities>
<ApplicationId>\[{PackageRoot}\]\\LitView\\LitViewBrowser.exe</ApplicationId>
<Reference>
<Name>LitView Browser</Name>
<Path>SOFTWARE\\LitView\\Browser\\Capabilities</Path>
</Reference>
<CapabilityGroup>
<Capabilities>
<Name>@\[{ProgramFilesX86}\]\\LitView\\LitViewBrowser.exe,-12345</Name>
<Description>@\[{ProgramFilesX86}\]\\LitView\\LitViewBrowser.exe,-12346</Description>
<Hidden>0</Hidden>
<EMailSoftwareClient>Lit View E-Mail Client</EMailSoftwareClient>
<FileAssociationList>
<FileAssociation Extension=".htm" ProgID="LitViewHTML" />
<FileAssociation Extension=".html" ProgID="LitViewHTML" />
<FileAssociation Extension=".shtml" ProgID="LitViewHTML" />
</FileAssociationList>
<MIMEAssociationList>
<MIMEAssociation Type="audio/mp3" ProgID="LitViewHTML" />
<MIMEAssociation Type="audio/mpeg" ProgID="LitViewHTML" />
</MIMEAssociationList>
<URLAssociationList>
<URLAssociation Scheme="http" ProgID="LitViewHTML.URL.http" />
</URLAssociationList>
</Capabilities>
</CapabilityGroup>
</ApplicationCapabilities>
</Extension>
</Extensions>
</ApplicationCapabilities>
動的配置構成ファイルのその他の設定
拡張機能に加えて、他のサブシステムを編集できます。
- マシン全体の仮想レジストリ: HKEY_Local_Machine内の仮想レジストリにレジストリ キーを設定する場合は、このサブシステムを使用します。
<Registry>
<Include>
<Key Path="\\REGISTRY\\Machine\\Software\\ABC">
<Value Type="REG\_SZ" Name="Bar" Data="Baz" />
</Key>
<Key Path="\\REGISTRY\\Machine\\Software\\EmptyKey" />
</Include>
<Delete>
</Registry>
- マシン全体の仮想カーネル オブジェクト
<Objects>
<NotIsolate>
<Object Name="testObject" />
</NotIsolate>
</Objects>
- ProductSourceURLOptOut: ブランチ オフィスのシナリオをサポートするために、パッケージの URL を PackageSourceRoot を通じてグローバルに変更できるかどうかを示します。 既定では False に設定されています。 値の変更は、次回の起動時に有効になります。
<MachineConfiguration>
..
<ProductSourceURLOptOut Enabled="true" />
..
</MachineConfiguration>
MachineScripts: パッケージは、配置、公開、または削除時にスクリプトを実行するように構成できます。 スクリプトの例を確認するには、シーケンサーによって生成されるサンプルのデプロイメント構成ファイルを参照してください。 次のセクションでは、スクリプトの設定に使用できるさまざまなトリガーについて詳しく説明します。
TerminateChildProcess: このサブシステムを使用して、application.exe プロセスが終了するときに、アプリケーションの実行可能ファイルの子プロセスが終了するように指定できます。
<MachineConfiguration>
..
<TerminateChildProcesses>
<Application Path="\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE" />
<Application Path="\[{PackageRoot}\]\\LitView\\LitViewBrowser.exe" />
<Application Path="\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE" />
</TerminateChildProcesses>
..
</MachineConfiguration>
スクリプト
次の表では、さまざまなスクリプト イベントと、それらを実行できるコンテキストについて説明します。
| スクリプトの実行時間 | デプロイ構成で指定できます | ユーザー構成で指定できます | パッケージの仮想環境で実行可能 | 特定のアプリケーションのコンテキストで実行できます | システム/ユーザー コンテキストで実行: (展開構成、ユーザー構成) |
|---|---|---|---|---|---|
| AddPackage | ○ | (システム、該当なし) | |||
| PublishPackage | ○ | ○ | (システム、ユーザー) | ||
| UnpublishPackage | ○ | ○ | (システム、ユーザー) | ||
| RemovePackage | ○ | (システム、該当なし) | |||
| StartProcess | ○ | ○ | ○ | ○ | (ユーザー、ユーザー) |
| ExitProcess | ○ | ○ | ○ | (ユーザー、ユーザー) | |
| StartVirtualEnvironment | ○ | ○ | ○ | (ユーザー、ユーザー) | |
| TerminateVirtualEnvironment | ○ | ○ | (ユーザー、ユーザー) |
1 つのイベント トリガーで複数のスクリプトを使用する
App-V では、App-V 4.6 から App-V for Windows クライアントに変換するパッケージを含め、App-V パッケージの単一のイベント トリガーで複数のスクリプトを使用できます。 複数のスクリプトの使用を有効にするために、App-V は、App-V クライアントに含まれる ScriptRunner.exe という名前のスクリプト起動ツール アプリケーションを使用します。
1 つのイベント トリガーで複数のスクリプトを使用する方法
実行するスクリプトごとに、そのスクリプトを引数として ScriptRunner.exe アプリケーションに渡します。 アプリケーションは、各スクリプトに対して指定した引数と共に各スクリプトを個別に実行します。 トリガーごとに使用するスクリプト (ScriptRunner.exe) は 1 つだけです。
注
配置構成ファイルに追加する前に、まずコマンド プロンプトからマルチスクリプト行を実行して、すべての引数が正しく構築されていることを確認することをお勧めします。
スクリプトとパラメーターの説明の例
次のサンプル ファイルと表を使用して、デプロイメント ファイルまたはユーザー構成ファイルを変更し、実行するスクリプトを追加します。
<MachineScripts>
<AddPackage>
<Path>ScriptRunner.exe</Path>
<Arguments>
-appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10
-appvscript script2.vbs arg1 arg2
-appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 –rollbackonerror
</Arguments>
<Wait timeout=”40” RollbackOnError=”true”/>
</AddPackage>
</MachineScripts>
| サンプル ファイルのパラメーター | 説明 |
|---|---|
<AddPackage> |
パッケージの追加や公開時など、スクリプトを実行しているイベント トリガーの名前。 |
ScriptRunner.exe |
App-V クライアントに含まれるスクリプト起動ツール アプリケーション。 ScriptRunner.exe は App-V クライアントに含まれていますが、App-V クライアントの場所は %path% になければなりません。% でない場合、ScriptRunner は実行されません。 ScriptRunner.exeは通常、C:\Program Files\Microsoft Application Virtualization\Client フォルダーにあります。 |
-appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10-appvscript script2.vbs arg1 arg2-appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 -rollbackonerror |
-appvscript—実行する実際のスクリプトを表すトークン。script1.exe—実行するスクリプトの名前。arg1 arg2—実行するスクリプトの引数。-appvscriptrunnerparameters—script1.exe の実行オプションを表すトークン。-wait—次のスクリプトに進む前に script1.exe の実行が完了するのを待つように ScriptRunner に指示するトークン。-timeout=x—現在のスクリプトの実行を x 秒後に停止するように ScriptRunner に通知するトークン。 他の指定されたスクリプトはすべて引き続き実行されます。-rollbackonerror— まだ実行されていないすべてのスクリプトの実行を停止し、エラーを App-V クライアントにロールバックするよう ScriptRunner に指示するトークン。 |
<Wait timeout=”40” RollbackOnError=”true”/> |
ScriptRunner.exe 全体の完了を待機します。 ランナー全体のタイムアウト値を、個々のスクリプトのタイムアウト値の合計以上に設定します。 個々のスクリプトがエラーを報告し、RollbackOnError が True に設定されている場合、ScriptRunner はエラーを App-V クライアントに報告する必要があります。 |
ScriptRunner は、コンピューターにインストールされているアプリケーションに関連付けられたファイルの種類のスクリプトを実行します。 関連付けられているアプリケーションが見つからない場合、またはスクリプトのファイルの種類がコンピューターのどのアプリケーションにも関連付けられていない場合、スクリプトは実行されません。
App-V マニフェスト ファイルを使用して動的構成ファイルを作成する
動的構成ファイルを作成するには、手動で、App-V 管理コンソールを使用する方法、またはパッケージをシーケンス処理して 2 つのサンプル ファイルを含むパッケージを生成する方法の 3 つのいずれかを使用します。
App-V 管理コンソールを使用してファイルを作成する方法の詳細については、「 App-V 管理コンソールを使用してカスタム構成ファイルを作成する方法」を参照してください。
ファイルを手動で作成するには、前のセクションに示したコンポーネントを 1 つのファイルに結合します。 ただし、手動で作成したファイルではなく、シーケンサーによって生成されたファイルを使用することをお勧めします。