process.start()同じユーザーの下で新しいプロセスを生み出していない
-
30-09-2019 - |
質問
私はいつもあなたがプロセスを実行しているときに (domain\user) mydomain\myuser
, 、使用するとき Process.Start()
同じ資格情報を使用してこの新しいプロセスを開始します - mydomain\myuser
.
私が抱えている問題は私のことです Process.Start()
コールはシステムアカウントの下にプロセスを作成しているようで、開始プロセスで許可の問題を引き起こしています(これは、作業のために管理者アカウントの下で実行する必要があります)。それが物事を変えた場合 - 私はこのプロセス(カスタムビルドエグ)を産みます( Windowsインストーラー内.
助言がありますか? Windowsグループのポリシーが(おそらく)これに影響を与えていることについて読んだことがありますが、正直なところ、それは私に迷い込んでいます。
編集:少しスニペット:
どこ exename
と commandLine
この方法本文のパラメーターです。
ProcessStartInfo procInfo = new ProcessStartInfo(exeName, commandLine);
procInfo.WorkingDirectory = workingDirectory;
procInfo.UseShellExecute = false;
procInfo.CreateNoWindow = true;
Process process = Process.Start(procInfo);
Process.WaitForExit();
return process.ExitCode;
解決
procinfo.useshellexecuteをtrueに設定するか、cmdコマンドのパラメーターとしてexeを使用してプロセスとしてCMDを実行します。 useshellexecuteがfalseに設定されている場合、ここに多くの興味深い副作用があります: USESHELLEXECUTE
他のヒント
あなたの印象は真実です。 Process.start()は、現在のユーザーの資格情報の下で常に新しいプロセスを開始します - 代替資格情報を提供しない限り ProcessStartInfo
または、資格情報を取るオーバーロードの1つを使用します。
別の問題がなければなりません - あなたのコードのスニペットを共有してください。
アップデート
わかった!インストーラーについては何も言及しませんでした。すべてのMSIインストーラーは、システムの下で実行されます。Windowsインストーラー「あなたがチェックすることができ、彼らは下を走ります システム.