【问题标题】:I want to copy and run .exe file on a remote Windows machine?我想在远程 Windows 机器上复制和运行 .exe 文件?
【发布时间】:2011-04-05 08:27:44
【问题描述】:

我已经复制了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 如果我根本无法通过远程桌面访问电脑,它可以是一个安全整体,但在我的情况下,我可以做到这一点,我是所有电脑的管理员,所以知道管理员用户名和密码
  • 什么是令牌?如何获得?

标签: c# windows remote-access


【解决方案1】:

根据您在服务器上的访问权限,您可以使用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 访问,则这些都可能不起作用。

【讨论】:

  • 实际上有数百台服务器所以需要通过代码自动完成,不能去那里安装psexec谢谢
  • psexec 不需要安装,它会在第一次运行时自行处理。如果它可以使用管理员凭据访问远程计算机,则可以运行 psexec。
猜你喜欢
  • 2021-11-29
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
  • 2014-03-29
相关资源
最近更新 更多