簡體   English   中英

通過 RDP 使用命令行從遠程 Windows 機器復制文件

[英]Copy files from remote Windows machines with command-line, through RDP

我們的團隊擁有約 80 台 Windows 開發機器,每個開發人員的活動都以文本文件的形式記錄在這些機器的本地存儲中。 為了分析記錄的活動,我想從這些機器收集所有日志文件。 此外,日志文件會不斷更新,因此最好從我的機器上使用命令行收集文件。

我已經搜索並找到了一些解決方案,但所有這些都不適合我們的情況:

  • 我們不能使用 PsExec,因為 tcp/135 和 tcp/445 都是關閉的(WannaCry 的對策)。
  • 管理共享已禁用。
  • telnet 服務未啟動,出於安全原因被禁止。
  • 默認情況下,這些計算機上禁用 WinRM。
  • 很難在那些機器上安裝像 OpenSSH 這樣的新軟件(因為這個項目的規則)
  • RDP 是連接這些機器的唯一方法。 (我在所有機器上都有一個帳戶)

如何使用命令行通過 RDP 從遠程 Windows 機器復制文件? 或者,至少,有沒有辦法通過 RDP 使用命令行在遠程 Windows 機器上執行命令?

認為你可以做到這一點,雖然它很hacky :)

對於只復制一次文件的基本設置,您需要做的是

  1. 登錄時在遠程會話中運行腳本。 我可以想到三種方法來做到這一點:
    • 使用“備用外殼”RDP 文件屬性。 這會在登錄時運行指定的程序來代替 explorer.exe; 例如,您可以使用它來運行“cmd.exe /c [您的腳本]”。
    • 如果這不起作用(例如遠程機器不尊重它),您可以使用在登錄時運行腳本的計划任務,但可能僅適用於指定用戶,或者腳本可以檢查 WinStation在執行任何操作之前鍵入以確保這實際上是 RDP 連接。
    • 也可以通過以 RemoteApp 模式連接並將腳本用作“應用程序”來實現此目的,但這僅適用於 Windows 的服務器版和企業版。
  2. 在 RDP 連接上啟用驅動器重定向或剪貼板重定向,為您提供一種獲取數據的方法。
    • 驅動器重定向編寫腳本要簡單得多; 您只需將遠程腳本復制文件到例如“\\\\tsclient\\C\\logs”。
    • 剪貼板重定向理論上是可能的——你有遠程腳本副本,然后是本地腳本粘貼——但在實踐中可能會很痛苦。 我只是在出於某種原因驅動器重定向不可用的情況下才提到它。
  3. 您可能希望編寫腳本,然后在之后注銷會話。

然后,您可以通過運行“mstsc.exe [您的 RDP 文件]”從命令行啟動它。 如果需要,可以通過編程方式生成 RDP 文件(假設您使用 80 台機器)。

如果你想要一個持久的連接,你可以執行命令,這更復雜,但在技術上仍然可行。 我能想到的兩種方法:

  1. 使用前面的方法在登錄時運行程序,但這次創建一個自定義應用程序,該應用程序使用未被阻止的傳輸接收命令並在會話中執行它們。 例如,我使用 WCF over HTTP 完成了這項工作; 當然,它不安全。
  2. 在遠程機器上開發並安裝一個打開 RDP 虛擬通道的服務,以及與之通信的相應 RDP 客戶端插件。 然后,您可以通過連接做任何您想做的事情。 雖然這個解決方案最有可能奏效,但它也是最重要和最耗時的實施,因此它可能是最后的手段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM