質問

私はいつもあなたがプロセスを実行しているときに (domain\user) mydomain\myuser, 、使用するとき Process.Start() 同じ資格情報を使用してこの新しいプロセスを開始します - mydomain\myuser.

私が抱えている問題は私のことです Process.Start() コールはシステムアカウントの下にプロセスを作成しているようで、開始プロセスで許可の問題を引き起こしています(これは、作業のために管理者アカウントの下で実行する必要があります)。それが物事を変えた場合 - 私はこのプロセス(カスタムビルドエグ)を産みます( Windowsインストーラー内.

助言がありますか? 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;
役に立ちましたか?

解決

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

他のヒント

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

別の問題がなければなりません - あなたのコードのスニペットを共有してください。

アップデート

わかった!インストーラーについては何も言及しませんでした。すべてのMSIインストーラーは、システムの下で実行されます。Windowsインストーラー「あなたがチェックすることができ、彼らは下を走ります システム.

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