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

3
我已经复制了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");
}

那不是一个重大的安全漏洞吗? - Marko
@Marko 如果我完全无法通过远程桌面访问计算机,那么这可能是一个安全漏洞,但在我的情况下,我可以这样做,并且我是所有计算机的管理员,因此知道管理员用户名和密码。 - shabby
什么是令牌?如何获取它? - Faizan Mubasher
1个回答

3

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

一个示例psexec命令如下:

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

Psexec 可以在需要时提前复制文件,并可以针对计算机列表运行(将 \\computername 替换为 @computer-list.txt)。使用 WMI 需要连接到 Win32_Process 类并创建一个新对象来启动它。这个线程中的第二篇帖子可能有效。
不幸的是,这两个选项都需要运行工作站上可用的多个防火墙规则(如 RPC 和 WMI)。如果公司只通过防火墙启用了 RDP 访问,则这两个选项可能都无法使用。

实际上有数百台服务器,所以需要通过代码自动完成此操作,无法前往安装psexec。谢谢。 - shabby
1
psexec不需要安装,第一次运行时会自动处理。如果可以使用管理员凭据访问远程计算机,则可以运行psexec。 - Joshua

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接