Windows インストーラーをターミナル サーバーで使用
ターミナル サーバーを使う場合、次のことが Windows インストーラーによるインストールに影響する可能性があります。 セットアップ開発者は、ユーザーがターミナル サーバーも使っているときに Windows インストーラー パッケージが想定どおりにインストールされることを常にテストする必要があります。
- Windows Server 2008 と Windows Vista よりも前のオペレーティング システムで、管理者がクライアント セッションでインストールを実行できるようにするには、EnableAdminTSRemote システム ポリシーを設定する必要があります。 Windows Server 2008 と Windows Vista 以降では、EnableAdminTSRemote ポリシーの影響はなくなります。 この設定に関係なく、管理者と管理者以外は、クライアント セッションまたはコンソール セッションでインストールを実行できます。 管理者と管理者以外は、常にコンソール セッションで Windows インストーラーによるインストールを実行できます。
- DisableUserInstallsシステム ポリシーが 1 に設定されている場合、Windows インストーラーを使ってユーザーごとのインストール コンテキストでインストールできなくなります。 この場合、インストーラーはユーザー単位で登録されているすべてのアプリケーションを無視し、マシン単位で登録されているアプリケーションのみを検索します。
- Windows 2000 でホストされているターミナル サーバーのクライアント セッションで管理者がインストールを実行する場合、インストールにはマップ済みドライブ文字ではなく、UNC パスを使う必要があります。
開発者は、ターミナル サーバーで使う Windows インストーラー コンポーネントを開発する場合、次のガイドラインに従う必要があります。
- HKCU レジストリ情報をすべて、レジストリの HKCU\Software 部分に書き込みます。
- INI ファイルに構成情報を格納することは推奨されません。
- インストール時ではなく、アプリケーションの初回実行時に、ユーザーごとの情報をレジストリに書き込みます。 インストール時にユーザーごとの情報をレジストリに書き込む必要がある場合は、ユーザーごとの情報とマシンごとの情報を別の Windows インストーラー コンポーネントに分割します。 アプリケーションのインストール時に、ユーザーごとの情報を含むコンポーネントの検証と修復をインストーラーが試行しないようにパッケージを作成します。
- マシンごとのインストールにのみ使われるパッケージの場合、Environment テーブルの Name 列に * を含めると、コンピューターの環境に環境変数が書き込まれます。 ユーザーごとのインストールまたはマシンごとのインストールにパッケージを使用できる場合は、2 つのコンポーネントを使います。 Component テーブルにユーザーごとのコンポーネントを含め、Environment テーブルにユーザー設定を入力します。 Component テーブルにマシンごとのコンポーネントを含め、Environment テーブルにコンピューター設定を入力します。 Component テーブルの Condition フィールドの ALLUSERS プロパティに基づく条件付きステートメントを使って、インストールするコンポーネントを制御します。
- ターミナル サーバーからマシンごとのインストールを実行する場合、ユーザーごとの環境変数はインストーラーによって HKCU\.Default\Environment に書き込まれます。 ターミナル サーバーはレジストリのこのセクションをレプリケートしないので、インストールではユーザーごとの環境変数は設定されません。
- ユーザーがアプリケーションを修復できないようにサーバーが構成されている可能性があるため、アプリケーションはレジストリ キーが見つからない場合に適切に処理する必要があります。
DLL、EXE、またはスクリプトのカスタム アクションを使う Windows インストーラー パッケージをターミナル サーバー上でマシンごとのインストール コンテキストでインストールする場合、次のことが適用されます。 この場合、インストーラーは TerminalServer プロパティを設定します。
- アクションに msidbCustomActionTypeTSAware 属性がない限り、遅延されたカスタム アクションはローカル システムのコンテキストで実行されます。 これは、ターミナル サーバーではないシステム上で、カスタム アクションがユーザーに偽装する場合も同様です。 msidbCustomActionTypeTSAware 属性を持つカスタム アクションによってユーザーのレジストリが変更される場合、インストーラーでは、コンピューター上のすべてのユーザーのレジストリに対してもその変更が行われることを自動的に保証しないことに注意してください。
- HKCU レジストリ ハイブから読み取る遅延カスタム アクションのレジストリ操作は、現在のユーザーのレジストリ ハイブではなく、システムの既定のレジストリ ハイブを参照します。
- HKCU\Software に書き込む遅延カスタム アクションのレジストリ操作は、インストーラーによって検出され、ユーザーの次のログオン時に、コンピューターのすべてのユーザーにコピーされます。
- 遅延カスタム アクションのレジストリ操作で、HKCU に書き込み、HKCU\Software レジストリ キー以下にないものは、インストーラーによって検出されず、コピーされません。
詳細については、Microsoft Windows ソフトウェア開発キット (SDK) の「ターミナル サービス」を参照してください。
関連トピック