MSIをプログラムで実行するときにMSI Exitコード1625の問題
-
08-10-2019 - |
質問
Exit Code 1625は「このインストールはシステムポリシーによって禁止されています。システム管理者に連絡してください。」
私がしていることは、このようにそれを呼ぶことです:
Process installProcess = Process.Start(msiPath, "/quiet");
手動で開くと、MSIを順調に実行できます。これはWindows Server 2008にあります...
これの目的は、最新バージョンで.NETフォームプログラムを自動的に更新することです。誰かがどのような設定を引き起こしているのか手がかりを持っていますか?つまり、クライアントはVista/7/XPを使用する予定ですが、どのようなセキュリティ設定が私の計画を台無しにするかをまだ知る必要があります。
解決
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Arguments = "/i " + "\""+Directory.GetCurrentDirectory()+"\\"+msiPath +"\"" +" /q";
startInfo.FileName = "msiexec.exe";
startInfo.Verb = "runas";
Process installProcess = Process.Start(startInfo);
この方法でMSIを呼び出すことができました。
ある種のUACの問題であることが判明しました。 Runasの動詞は、プログラムが持っている権限を何らかの形で高めます。私のUACプロンプトはサーバー2008で無効になっていたにもかかわらず、私はまだそれを回避するためにこれをしなければなりませんでした。
所属していません StackOverflow