2010-11-26 18 views
5

私が調査して他の人に尋ねる限り、通常のMSIは、ほとんどの場合、特にGUIフェーズで限られたユーザーとして実行されるようです。MSIを常に管理者に強制できますか?

しかし、アプリケーションでは、インストールフェーズ中にプロンプ​​トが表示される必要があり、GUIの選択フェーズで実行されるカスタムアクション中に管理者権限が必要です。 UACプロンプトを最初から強制的に実行する方法はありませんか?

また、Active Directoryのインストール中にカスタムアクションを実行する必要があります。また、MSIがゲストとして実行されている場合は実行できません。

答えて

2

適切なマニフェストが埋め込まれたbootstrapperからMSIを起動できます。

1

GUIフェーズでは、常に昇格されていないユーザーコンテキストで実行されます。 InstallExecuteSequenceのカスタムアクションのみが、遅延実行モードで昇格されます。

は、この問題を解決するために、どちらかあなたのMSIを再設計したり、起動lauchconditionで

http://msdn.microsoft.com/en-us/magazine/cc163486.aspx#S7

+0

これは、Microsoftの超薄型デザインです。 setup.msiまたはアクティブディレクトリの無人インストールをクリックしたユーザーがsetup.exeを実行していない場合、setup.exeは正常であると言います。 – Coder

+0

setup.exeからパラメータ(パブリックプロパティ)をMSIに渡すことができます(RUNFROMSETUPなど)。プロパティが渡されない場合はLaunchConditionを使用して警告します。無人インストールを介してインストールする場合は、コマンドラインでパラメータを渡すことができます(MSIは常にSMSで昇格します)。この方法では、MSIを直接実行しているときにメッセージを取得し、無人でも実行できます。 –

2

使用Privilegedプロパティでブートストラップ(SETUP.EXE)要求標高を使用する必要があります。

3

昇格されたインストーラを実行している場合でも、Vista、Server 2008およびWindows 7ではカスタムアクションが失敗することがあります。これは、プロセスを昇格させたユーザーを偽装して実行されるためです。

完全な特権を必要とし、ユーザーごとの情報を使用しないカスタムアクションは、偽装なしで実行するようにマークする必要があります。これにより、ローカルシステムアカウントの下で制限なく実行されます。

+0

どのようにマークしていますか? – Coder

+0

「msidbCustomActionTypeInScript」および「msidbCustomActionTypeNoImpersonate」フラグを使用してInstallInitializeを実行した後、InstallExecuteSequenceで実行されることを確認します。 Wixでは、Impersonateフラグを "no"に設定できます。 –

関連する問題