C# PsExec打开我的远程机器进程,但应用程序没有';开始

C# PsExec打开我的远程机器进程,但应用程序没有';开始,c#,sysinternals,C#,Sysinternals,我正在使用此代码在远程计算机中打开进程: Process process = new Process(); ProcessStartInfo psi = new ProcessStartInfo(@"D:\tools\PsExec\PsExec.exe"); psi.UseShellExecute = false; psi.RedirectStandardOutput = true; psi.RedirectStandardError = true;

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

    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();
在远程机器上,我可以看到进程启动,但看不到我的
应用程序GUI

双击exe将打开GUI


尝试使用带有
-i
开关的
psexec.exe

psi.Arguments = "\\\\192.168.0.100 -i -u user -p pass D:\\app.exe";


如果使用vista或更高版本,请使用1而不是0。用户桌面在vista或更高版本的会话1中运行。

您必须使用当前用户ID指定-i参数,默认情况下,该参数为0,以便获取当前记录的用户ID。在我的情况下,它返回2,因此,它是:-i 2
我希望它对您有效。

另外,如果您不知道,请参阅完整的参数列表。您是否尝试将
psi.CreateNoWindow
更改为
false
?是的,通过远程桌面可以尝试psi.arguments=@“\\192.168.0.100-I 0-u user-p pass D:\app.exe”现在,我在远程计算机上收到一条消息:这台计算机上运行的一个程序正在尝试显示消息,单击“查看此消息”后,我可以看到我的申请表,但桌面呈灰色,除了我的表格之外,我什么也看不到,直到单击“立即返回”尝试1,而不是命令中的0(如果您使用vista或更高版本)。vista或更高版本的用户桌面在会话1中运行(对于-i标志)
psi.Arguments = "\\\\192.168.0.100 -i 0 -u user -p pass D:\\app.exe";