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";