昇格された管理者アカウントとして実行する必要があるようにMSIをマークします

StackOverflow https://stackoverflow.com/questions/304353

質問

MSIの一部としてCustomActionがあります。

ローカルAdministratorsアカウントのメンバーでもあるドメインアカウントとして実行する必要があります。

NoImpersonateフラグを使用してNT Authority \ Systemとしてカスタムアクションを実行することはできません。ネットワークリソースにアクセスできなくなるためです。

NoImpersonateがオフの場合、UACが有効になっているVista / 2008では、実行ユーザーとして実行されますが、非特権トークンで実行され、.installStateなどのローカルリソースにアクセスできません。 UACアーキテクチャを見る

誰でもどちらかの方法を知っている

  • MSIを、昇格したコマンドプロンプトから実行するのと同じ方法で、昇格したトークンで強制的に実行しますか?

  • CustomActionを強制的に昇格させて実行します(マニフェストのrequireAdministratorが機能しないようです)?

  • UACが有効になっており、昇格されていない場合は解決し、そうであればインストールを警告またはキャンセルしますか?

役に立ちましたか?

解決

これを見ている他の貧しいs0dに対する私の質問への回答。

  • MSIにマニフェストを追加することはできません。 SETUP.EXEまたはブートストラップをMSIのシェルに追加し、requireAdministratorを使用してマニフェストをマニフェストしますが、MSIを使用するポイントのいくつかを無効にします。

  • CustomActionへのマニフェストの追加は、msiexec.exeから実行されるため機能しません

これに取り組んだ方法は、を設定することです。 MSIUSEREALADMINDETECTION プロパティを1に設定すると、特権条件が実際に機能し、特権。昇格したコマンドプロンプトからの実行に関するエラーメッセージを表示し、インストールを終了します。

これには幸せな副作用があります-昇格されたコマンドプロンプトからmsiが実行されると、 NoImpersonate 設定。

詳細- http:// www.microsoft.com/downloads/details.aspx?FamilyID=2cd92e43-6cda-478a-9e3b-4f831e899433

[編集]- MSIUSEREALADMINDETECTIONプロパティを追加できるスクリプトをここに配置しました VSにはできないため、Orcaは苦痛です。

他のヒント

requireAdministratorのマニフェストが機能するはずです。

ブートローダーの.exeファイルを使用することもできます。このファイルでは、ShellExecuteを" RUNAS"動詞として(7-zipを使用してブートローダーを作成できます。他にも多くの方法があります。)

Winrarおよびこれらのオプションを使用して、単純な msiのsfxアーカイブファイルファイルを作成できます。

  • [設定]タブ> 実行入力後に実行:msiファイル名

  • [詳細設定]タブ> 管理アクセスをリクエストオプションのチェックボックスをマーク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top