Windows Vista で Windows インストーラーの配置

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

Windows インストーラー テクノロジ ソフトウェアのインストールに Windows Vista オペレーティング システムをサポートしています。 Windows Vista でアプリケーションをインストールするエンドユーザーでもユーザーのコンピューター ユーザー アカウント制御 (UAC)] を実行するときに昇格が必要なだけ各コンポーネントのインストールの入力を求めるメッセージが表示されますが表示されます。

アプリケーションの昇格

通常、Setup.exe (とも呼ばれる ブートストラップ) は管理者特権を持つ; 実行されません。現在のユーザーのアクセス許可レベルで実行します。 したがって、最終的なアプリケーションのインストールを開始すると、インストール昇格を表示しません。 ただし、Setup.exe いないに対し、.msi ファイルは、通常、ユーザーが求められる注意してください。

埋め込み UAC のマニフェスト、ブートストラップでは、requestedExecutionLevel ノード インストール (asInvoker) 現在のユーザーとして実行することを指定します。

<requestedExecutionLevel level="asInvoker" />

ただし、する必要がある場合は、アプリケーションのインストールを昇格することができます。 たとえば、Web セットアップ プロジェクトでのインターネット インフォメーション サービス (IIS) 設定を変更する管理者権限が必要とインストールを実行するアセンブリをグローバル アセンブリ キャッシュです。 昇格プロンプト前提条件のインストール後 (ただし、アプリケーションのインストール前に発生します。

インストールのためのアクセス許可を昇格するには、プロジェクト (.vdproj) ファイルを開きます。 プロジェクト ファイルの MsiBootstrapper セクションに RequiresElevation True プロパティを設定します。 このプロパティは、Visual Studio 統合開発環境 (IDE) を通じて利用が行われます。 したがって、プロジェクト ファイルを使用する必要があります。 詳細については、RequiresElevation プロパティ」を参照してください。

管理者経由の昇格

Windows インストーラーでは、Windows Vista で管理者の支援昇格サポートしています。 このシナリオでは、管理者の資格情報を求めるメッセージが表示され、管理者がユーザーに対して、パスワードを入力します。 コンピューターが Windows Vista またはそれ以降のバージョンの Windows を実行しているときこのシナリオをサポートするには、ブートストラップは AdminUser プロパティ True に設定します。

注意

UAC を使用していないコンピューターで Windows Vista を実行しているし、管理者でない場合は、AdminUser True にも設定されます。したがって、.exe インストーラー (SQLExpress32.exe) などを適切なアクセス許可を検出し、十分なアクセス許可の場合、特定の終了コードを生成する書き込まれる必要があります。この終了コードをキャッチし、管理者が必要であることを示すメッセージを表示する Setup.exe を作成する必要があります。

前提条件の昇格

必要がある場合 Windows Vista 必須コンポーネントのインストールに格上げします。 ブートストラップ自体は、昇格; も行いません。Windows Vista で UAC が実行されると、既にインストールされている場合を除き、管理者特権を持つである必要があります各必須コンポーネントの入力を要求を発行します。 パッケージの昇格が失敗した場合は、ブートストラップが失敗し、適切なエラー メッセージを送信します。

カスタム アクションの昇格

カスタム動作エディターで作成するカスタム動作として昇格を実行します。 呼び出し側ユーザーのアカウントで、カスタム アクションは実行されませんのでカスタム アクションは、レジストリやファイル システムなど、ユーザー固有のデータ アクセスしないでください。

カスタム動作エディターで NoImpersonate True プロパティの既定の設定ですので既定では、カスタム動作管理者特権で実行します。 NoImpersonate False に変更するとユーザーのアクセス許可が弱まりました可能性がある、呼び出しのユーザーを偽装するカスタム アクションを強制します。

Visual Studio のバージョンの相違点

また、Windows Vista UAC で Visual Studio 2005 と Visual Studio 2008 セットアップ プロジェクトを実行する方法の違いがあることに注意してください。

UAC では、実行時は、Windows Vista 組み込みインストーラー検出同意を求めるメッセージが表示されます。 Visual Studio 2005 で常に組み込まれたブートストラップ (Setup.exe) に同意してどのようなインストールするかにかかわらず、メッセージが表示されます。 Setup.exe とすべてのプロセスは管理者トークンを Windows Vista で実行されるため、最終的なアプリケーションのインストールはシステム特権でインストールされます。 ユーザー管理者経由の昇格で Setup.exe を実行する場合は、アプリケーション、管理者特権を持つユーザーのプロファイル、管理者のプロファイルでインストールされます。

開始時 Visual Studio 2008 と Visual Studio 2010 では、Setup.exe 昇格を表示しません。 昇格プロンプトが表示されないようにするのには、Setup.exe は要求された実行レベルのasInvoker で実行される、ブートストラップの埋め込みマニフェストを指定します。 これは、昇格したことも必要に応じて、昇格する必須コンポーネントのインストールを有効にすることが実行されていない、最終的なアプリケーションのインストールの利点を提供します。 ブートストラップの必要条件を起動するのには、ShellExecute を呼び出します。 Windows Vista この呼び出しを受信し、インストールの検出を実行し、ユーザー プロンプト インストール前に発行します。

この変更の欠点は、アプリケーション自体に加え、インストールする必要があります各必須コンポーネントは、プロンプトを発行することです。 すべての前提条件がコンピューター上に既にある場合は、ただし、インストールもプロンプト可能性いません。 また、昇格を必要とする外部チェックを必要はありません。 外部チェックは正常に動作するのでがユーザーいくつかの昇格プロンプトの各外部チェック、さらにプロンプトに、インストーラーを受け取ります。

参照

概念

Windows Vista で Windows インストーラーの配置

Windows Vista と Visual Studio

ユーザー権利と Visual Studio

その他の技術情報

Windows インストーラー配置の概念