C# 我想在远程Windows计算机上复制并运行.exe文件?

C# 我想在远程Windows计算机上复制并运行.exe文件?,c#,windows,remote-access,C#,Windows,Remote Access,我已经复制了exe文件,使用下面的代码没有问题,但是现在我想运行它,有人能帮我吗。 注意:我可以通过远程桌面访问服务器,但不能手动操作,因为有几十个服务器,不能像psex或其他任何程序一样在上面运行 WindowsIdentity wi = new WindowsIdentity(token); //Next I set the WindowsImportsonationContext WindowsImpersonationContext impctx = wi.Impersonate()

我已经复制了exe文件,使用下面的代码没有问题,但是现在我想运行它,有人能帮我吗。 注意:我可以通过远程桌面访问服务器,但不能手动操作,因为有几十个服务器,不能像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");
}

根据您对服务器的访问权限,您可以使用类似或使用WMI的程序远程启动文件

示例psexec命令如下所示:

psexec \\computername -u remoteusername filepath(on remote computer) arguments
Psexec可以根据请求预先复制文件,并可以在计算机列表上运行(将
\\computername
替换为
@computer list.txt
)。使用WMI,您需要连接到
Win32\u进程
类,并创建一个新对象来启动它。这个线程中的线程可以工作


不幸的是,这两个选项都要求在运行的工作站上有多个防火墙规则(如RPC和WMI)。如果您的公司只通过防火墙启用RDP访问,那么这两种方式都可能不起作用。

这不是一个主要的安全漏洞吗?@Marko如果我根本无法通过远程桌面访问电脑,这可能是一个安全整体,但在我的情况下,我可以做到这一点,我是所有电脑的管理员,所以知道管理员用户名和密码什么是令牌?如何获得它?实际上有数百台服务器,所以需要通过代码自动完成这项工作,不能去那里安装psexec thankspsexec不需要安装,它会在第一次运行时自行处理。如果它可以使用管理员凭据访问远程计算机,则可以运行psexec。