1

(domain\user) mydomain\myuserとしてプロセスを実行している場合、Process.Start()それを使用すると、同じ資格情報を使用してこの新しいプロセスが開始されるという印象を常に受け​​ていましたmydomain\myuser

私が抱えている問題は、Process.Start()呼び出しが SYSTEM アカウントでプロセスを作成しているように見えることです。これにより、開始されたプロセスで権限の問題が発生しています (作業のために管理者アカウントで実行する必要があります)。変更があった場合 - Windows インストーラー内からこのプロセス (カスタムビルドの exe) を生成しています。

助言がありますか?これに影響を与える Windows グループ ポリシー (おそらく) について読んだことがありますが、正直なところ、それは私にはわかりません。

編集:小さなスニペット:

およびはexenamecommandLineこのメソッド本体のパラメーターです。

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;
4

2 に答える 2

3

procInfo.UseShellExecute を true に設定するか、cmd コマンドのパラメーターとして exe を使用してプロセスとして cmd を実行します。UseShellExecuteが false に設定されている場合、多くの興味深い副作用があります。

于 2010-12-03T11:12:31.993 に答える
2

あなたの印象は本当です。Process.Start()は、常に現在のユーザーの資格情報の下で新しいプロセスを開始します-で代替の資格情報を提供するProcessStartInfoか、資格情報を取得するオーバーロードの1つを使用しない限り。

別の問題があるはずです-コードのスニペットを共有してください。

アップデート

わかった!インストーラーについては何も言及していません。すべてのMSIインストーラーは、確認できる「 Windowsインストーラー」によって実行され、 SYSTEMの下で実行されるため、システムの下で実行されます。

于 2010-12-03T09:22:30.853 に答える