PsExec打开我的远程机器进程但应用程序没有启动

时间:2013-10-28 11:12:12

标签: c# sysinternals

我正在使用此代码在远程计算机中打开进程:

    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

enter image description here

2 个答案:

答案 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 我希望它适合你。