4

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

    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

在此处输入图像描述

4

2 回答 2

5

尝试psexec.exe-iswitch 一起使用:

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 中运行。

于 2013-10-28T11:17:02.137 回答
3

您必须使用当前用户 ID 指定 -i 参数,默认情况下它是 0,为了获取当前记录的用户 ID,请使用:quser /SERVER:remoteComputer,在我的情况下它返回 2,所以,它是:-i 2我希望这个对你有用。

于 2014-02-17T12:31:00.200 回答