通过命令行通过RDP从远程Windows计算机复制文件

问题描述 投票:0回答:1

我们的团队拥有约80台Windows开发计算机,每个开发人员的活动都作为文本文件记录在这些计算机的本地存储中。为了分析记录的活动,我想从那些机器上收集所有的日志文件。另外,日志文件会不断更新,因此最好从我的机器上使用命令行收集文件。

我已经搜索并找到了一些解决方案,但是所有这些都不适合我们的情况:

  • 我们无法使用PsExec,因为tcp / 135和tcp / 445都已关闭(WannaCry的对策)。
  • 管理共享被禁用。
  • telnet服务未启动,并且由于安全原因而被禁止。
  • 默认情况下,在那些计算机上禁用WinRM。
  • 由于这些项目的规则,很难在这些计算机上安装像OpenSSH这样的新软件
  • RDP是连接这些计算机的唯一方法。 (我在所有机器上都有一个帐户)

如何通过命令行通过RDP从远程Windows计算机复制文件?或者,至少,有什么方法可以通过RDP通过命令行在远程Windows计算机上执行命令吗?

windows command-line remote-desktop rdp psexec
1个回答
0
投票

思考您可以做到这一点,尽管它很hacky:)

对于基本设置,它只复制一次文件,您需要做的是

  1. 在登录时在远程会话中运行脚本。我可以想到三种方法:
    • 使用“备用Shell” RDP文件属性。这将在登录时运行指定的程序来替代explorer.exe;您可以使用它来例如运行“ cmd.exe / c [您的脚本]”。
    • 如果这不起作用(例如,远程计算机不尊重它,则您可能能够使用计划的任务,该任务在登录时运行脚本,但可能仅适用于指定的用户,或者脚本可以检查WinStation类型,以确保在执行任何操作之前这实际上是RDP连接。
    • 也可以通过在RemoteApp模式下连接并将脚本用作您的“应用程序”来执行此操作,但这仅适用于Windows的Server和Enterprise版本。
  2. 在RDP连接上启用驱动器重定向或剪贴板重定向,为您提供了一种获取数据的方法。
    • 驱动器重定向更容易编写脚本;您只需将远程脚本复制文件复制到“ \\ tsclient \ C \ logs”。
    • 从理论上讲,剪贴板重定向是可能的-您具有远程脚本副本,然后是本地脚本粘贴-但在实践中进行操作可能会很痛苦。我仅在由于某些原因而无法进行驱动器重定向的情况下提及它。
  3. 您可能希望编写脚本,然后在以后注销会话。
  4. 然后您可以通过运行“ mstsc.exe [您的RDP文件]”从命令行启动该文件。如果需要,可以以编程方式生成RDP文件(假设您使用的是80台计算机)。

如果要建立持久连接,可以执行命令,这虽然比较复杂,但在技术上仍然可行。我可以想到两种方法:

  1. 使用以前的方法在登录时运行程序,但是这次创建一个自定义应用程序,该应用程序使用不是阻止的传输方式接收命令,并在会话中执行它们。例如,我已经通过HTTP实现了WCF。当然,这并不安全。
  2. 在打开RDP虚拟通道以及与之通信的相应RDP客户端插件的远程计算机上开发并安装服务。然后,您可以在连接中做任何您想做的事情。尽管此解决方案最有可能行得通,但它也是实施过程中最繁琐且最耗时的,因此它可能是不得已的选择。
© www.soinside.com 2019 - 2024. All rights reserved.