昇格された管理者アカウントとして実行する必要があるようにMSIをマークします
-
08-07-2019 - |
質問
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ファイル名
-
[詳細設定]タブ> 管理アクセスをリクエストオプションのチェックボックスをマーク