我想在远程Windows机器上复制并运行.exe文件?

我已经复制了exe文件,这是没有问题的,使用下面的代码,但现在我想运行它,可以anyboyd帮助我这一点。 注:我有通过远程桌面访问服务器,但不能手动这样做,因为有几十个,不能得到一个像psex或其他任何运行的程序。

WindowsIdentity wi = new WindowsIdentity(token); //Next I set the WindowsImportsonationContext WindowsImpersonationContext impctx = wi.Impersonate(); System.IO.File.Copy("C:\\output.html", "\\\\PW42\\c$\\output1.html", true); System.Diagnostics.Process p = new System.Diagnostics.Process(); try { System.Diagnostics.Process.Start(@"\\PW42\c$\txt.bat"); //runFile(); } catch { Console.WriteLine("error"); } 

根据您在服务器上的访问权限,可以使用psexec这样的程序或使用WMI来远程启动文件。

示例psexec命令将会是

 psexec \\computername -u remoteusername filepath(on remote computer) arguments 

如果请求,Psexec可以预先复制文件,并且可以运行在计算机列表上(用@computer-list.txt替换\\computername @computer-list.txt )。 使用WMI,您需要连接到Win32_Process类并创建一个新的对象来启动它。 在这个线程中的第二篇文章可以工作。

不幸的是,这两个选项都需要运行工作站提供多个防火墙规则(如RPC和WMI)。 如果您的公司只能通过防火墙启用RDP访问,则这两种方法都不可行。