我已经复制了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访问,则这两种方法都不可行。