App-V 動的構成について
適用対象:
- Windows 10
- Windows 11
動的構成を使用して、ユーザーの App-V パッケージをカスタマイズできます。 この記事では、既存の動的構成ファイルを作成または編集する方法について説明します。
動的構成ファイルを編集すると、ユーザーまたはグループに対して App-V パッケージを実行する方法がカスタマイズされます。 そのため、目的の設定を使用してパッケージを再シーケンスする必要がなくなるため、パッケージのカスタマイズがより便利になり、パッケージコンテンツとカスタム設定を独立した状態に保つことができます。
詳細: 動的構成
仮想アプリケーション パッケージには、パッケージのすべてのコア情報を提供するマニフェストが含まれています。 この情報には、パッケージ設定の既定値が含まれており、最も基本的な形式の設定が決定されます (カスタマイズは不要)。 特定のユーザーまたはグループに対してこれらの既定値を調整する場合は、次のファイルを作成して編集できます。
- ユーザー構成ファイル
- デプロイ構成ファイル
これらの .xml ファイルでは、パッケージ設定を指定して、パッケージに直接影響を与えずにパッケージをカスタマイズできます。 パッケージが作成されると、シーケンサーはパッケージ マニフェスト データを使用して、既定の配置とユーザー構成 .xml ファイルを自動的に生成します。 これらの自動生成された構成ファイルには、シーケンス処理中に構成されたパッケージの既定の設定が反映されます。 これらの構成ファイルをシーケンサーによって生成されたフォームのパッケージに適用する場合、パッケージの既定の設定はマニフェストと同じです。 この結果により、既定値のいずれかを変更する必要がある場合に使用を開始するためのパッケージ固有のテンプレートが提供されます。
注
次の情報は、特定のユーザーまたはグループの要件を満たすようにパッケージをカスタマイズするためにシーケンサーによって生成された構成ファイルを変更する場合にのみ使用できます。
動的構成ファイルの内容
構成ファイル内のすべての追加、削除、および更新は、パッケージのマニフェスト情報で指定された既定値に関連して行う必要があります。 次の一覧は、これらのファイルの読み取り方法におけるこれらのファイル間の関係を、最も優先順位の高いものから最小の順に示しています。
- ユーザー構成 .xml ファイル
- Deployment Configuration .xml ファイル
- パッケージ マニフェスト
最初の項目は、最後に読み取られる内容を表します。 そのため、そのコンテンツが優先されます。 すべてのパッケージは本質的にパッケージ マニフェストの既定の設定を含み、提供しますが、優先順位も最も低い値です。 カスタマイズされた設定で Deployment Configuration .xml ファイルを適用すると、パッケージ マニフェストの既定値がオーバーライドされます。 パッケージ マニフェストの既定値をオーバーライドする前に、カスタマイズした設定でユーザー構成 .xml ファイルを適用すると、配置構成とパッケージ マニフェストの既定値の両方がオーバーライドされます。
構成ファイルには、次の 2 種類があります。
- ユーザー構成ファイル (UserConfig): パッケージのカスタム設定を指定または変更できます。 これらの設定は、パッケージが App-V クライアントを実行しているコンピューターに展開されるときに、特定のユーザーに適用されます。
- 配置構成ファイル (DeploymentConfig): パッケージの既定の設定を指定または変更できます。 これらの設定は、パッケージが App-V クライアントを実行しているコンピューターに展開されるときに、すべてのユーザーに適用されます。
UserConfig ファイルを使用して、コンピューター上の特定のユーザー セットのパッケージの設定をカスタマイズしたり、HKCU などのローカル ユーザーの場所に適用される変更を加えたりすることができます。 DeploymentConfig ファイルを使用すると、マシン上のすべてのユーザーのパッケージの既定の設定を変更したり、HKEY_LOCAL_MACHINEや [すべてのユーザー] フォルダーなどのグローバルな場所に適用される変更を行うことができます。
UserConfig ファイルには、クライアント上の他のユーザーに影響を与えることなく、1 人のユーザーに適用できる構成設定が用意されています。
- ユーザーごとにネイティブ システムに統合される拡張機能: ショートカット、File-Type 関連付け、URL プロトコル、AppPaths、ソフトウェア クライアント、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 はマニフェスト ファイルに存在する必要があります。または無視されます。
<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 プロトコル、AppPaths、ソフトウェア クライアント、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" で登録されている場合、このサブシステムを使用すると、実行メニューに「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 ファイルも指定されている場合は、展開構成ファイルの [ユーザー設定] の代わりに使用されます。 パッケージがグローバルに発行されている場合は、配置構成ファイルの内容のみがマニフェストと組み合わせて使用されます。
- [マシンの構成] セクションには、マシン上の特定のユーザーに対してではなく、マシン全体に対してのみ構成できる情報が含まれています。 たとえば、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>
次のセクションでは、さまざまなサブシステムと使用サンプルについて説明します。
拡張機能
一部のサブシステム (拡張機能サブシステム) は、すべてのユーザーにのみ適用できる拡張機能を制御します。 サブシステムはアプリケーション機能です。 このサブシステムはすべてのユーザーにのみ適用できるため、この種類の拡張機能をローカル システムに統合するには、パッケージをグローバルに発行する必要があります。 ユーザー構成拡張機能のコントロールと設定の規則は、Machine Configuration のルールにも適用されます。
アプリケーション機能
アプリケーション機能拡張機能は、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 | ○ | (SYSTEM、N/A) | |||
PublishPackage | ○ | ○ | (SYSTEM,User) | ||
UnpublishPackage | ○ | ○ | (SYSTEM,User) | ||
RemovePackage | ○ | (SYSTEM、N/A) | |||
StartProcess | ○ | ○ | ○ | ○ | (ユーザー、ユーザー) |
ExitProcess | ○ | ○ | ○ | (ユーザー、ユーザー) | |
StartVirtualEnvironment | ○ | ○ | ○ | (ユーザー、ユーザー) | |
TerminateVirtualEnvironment | ○ | ○ | (ユーザー、ユーザー) |
1 つのイベント トリガーで複数のスクリプトを使用する
App-V では、App-V パッケージの 1 つのイベント トリガーで複数のスクリプトを使用できます。これには、App-V 4.6 から App-V for Windows クライアントに変換するパッケージも含まれます。 複数のスクリプトの使用を有効にするために、App-V は、ScriptRunner.exe という名前のスクリプト起動ツール アプリケーションを使用します。これは App-V クライアントに含まれています。
1 つのイベント トリガーで複数のスクリプトを使用する方法
実行するスクリプトごとに、そのスクリプトを引数として ScriptRunner.exe アプリケーションに渡します。 アプリケーションは、各スクリプトに対して指定した引数と共に、各スクリプトを個別に実行します。 トリガーごとに 1 つのスクリプト (ScriptRunner.exe) のみを使用します。
注
最初に、コマンド プロンプトからマルチスクリプト行を実行して、すべての引数が正しくビルドされていることを確認してから、展開構成ファイルに追加することをお勧めします。
スクリプトとパラメーターの説明の例
次のファイルとテーブルの例を使用して、デプロイまたはユーザー構成ファイルを変更して、実行するスクリプトを追加します。
<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 — ScriptRunner に、まだ実行されていないすべてのスクリプトの実行を停止し、エラーを App-V クライアントにロールバックするように指示するトークン。 |
<Wait timeout=”40” RollbackOnError=”true”/> |
ScriptRunner.exe の全体的な完了を待機します。 ランナー全体のタイムアウト値を、個々のスクリプトのタイムアウト値の合計以上に設定します。 個々のスクリプトでエラーが報告され、rollbackonerror が True に設定されている場合、ScriptRunner は App-V クライアントにエラーを報告する必要があります。 |
ScriptRunner は、ファイルの種類がコンピューターにインストールされているアプリケーションに関連付けられている任意のスクリプトを実行します。 関連付けられているアプリケーションが見つからない場合、またはスクリプトのファイルの種類がコンピューターのアプリケーションに関連付けられていない場合、スクリプトは実行されません。
App-V マニフェスト ファイルを使用して動的構成ファイルをCreateする
動的構成ファイルは、手動、App-V 管理コンソール、または 2 つのサンプル ファイルを含むパッケージを生成するパッケージのシーケンス処理のいずれかの方法を使用して作成できます。
App-V 管理コンソールを使用してファイルを作成する方法の詳細については、「App-V 管理コンソール を使用してカスタム構成ファイルを作成する方法」を参照してください。
ファイルを手動で作成するには、前のセクションに記載されているコンポーネントを 1 つのファイルにまとめることができます。 ただし、手動で作成したファイルではなく、シーケンサーによって生成されたファイルを使用することをお勧めします。