我正在使用此代码在远程计算机中打开进程:
Process process = new Process();
ProcessStartInfo psi = new ProcessStartInfo(@"D:\tools\PsExec\PsExec.exe");
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.RedirectStandardInput = true;
psi.WindowStyle = ProcessWindowStyle.Minimized;
psi.CreateNoWindow = true;
psi.Arguments = "\\\\192.168.0.100 -u user-p pass D:\\app.exe";
process.StartInfo = psi;
process.Start();
在远程机器上的我可以看到该过程开始但我看不到我的Application GUI
。
双击exe将打开GUI
答案 0 :(得分:5)
尝试将psexec.exe
与-i
开关一起使用:
psi.Arguments = "\\\\192.168.0.100 -i -u user -p pass D:\\app.exe";
或
psi.Arguments = "\\\\192.168.0.100 -i 0 -u user -p pass D:\\app.exe";
如果您使用的是Vista或更高版本,请使用1而不是0。用户桌面在vista或更高版本的会话1中运行。
答案 1 :(得分:3)
您必须使用当前用户ID指定-i参数,默认情况下为0,以便获取当前登录的用户ID:quser / SERVER:remoteComputer,在我的情况下它返回2,因此,它是: -i 2 我希望它适合你。