我复制了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");
}
答案 0 :(得分:3)
根据您在服务器上的访问权限,您可以使用psexec等程序或使用WMI远程启动文件。
示例psexec命令是
psexec \\computername -u remoteusername filepath(on remote computer) arguments
Psexec可以在请求时预先复制文件,而是可以针对计算机列表运行(将\\computername
替换为@computer-list.txt
)。使用WMI,您需要连接到Win32_Process
类并创建一个新对象来启动它。此线程中的second post可以正常工作。
不幸的是,这些选项都需要从运行的工作站获得多个防火墙规则(如RPC和WMI)。如果您的公司只通过防火墙启用了RDP访问,则这些都不会起作用。