在不同實體位置和網域的伺服器之間複製文件

在不同實體位置和網域的伺服器之間複製文件

第一篇文章在這裡,給你帶來了(也許)巨大的挑戰。我試著用兩天的時間來實現我的目標,但運氣不佳。

我需要將大量文件清單(「僅」約 900k 個文件,大約 3tb 資料)從一台伺服器複製到另一台伺服器。問題是:這些伺服器不在同一網路/網域上,也不在同一位置。事實上,它們位於不同的城市,並且各自有自己的網域。

我們可以透過終端伺服器連線存取每個伺服器(為了擺脫IP,我們使用NO-IP服務),但我們無法使用這種方法複製這麼多檔案。我們知道我們可以使用 FTP 和/或 VPN,但由於資料量龐大,它根本不起作用(連線遺失、逾時等...)。

所以,從這裡,我發現 Powershell 作為解決該問題的候選者,使用New-PSSession和/或New-PSDrive。事實上,powershell 甚至要求使用者/密碼,但我無法將一台伺服器連接到另一台伺服器。更糟的是,我是 Powershell 的菜鳥。

嗯,我看到的第一個必要條件是將伺服器新增至信任列表,並檢查 WinRM 是否在這兩台伺服器上執行。我用winrm quickconfig和做到了Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'no-ip.servername.here'。兩台伺服器上的兩個命令都返回良好。

然後,嘗試將伺服器 A 與 B 連線$server_b = New-PSSession -computername no-ip.servername.here -credential domain_b\administrador。此時,伺服器 A 要求輸入使用者名稱和密碼。我鍵入,但 powershell 返回許多有關身份驗證、kerberos、錯誤的使用者/密碼以及其他許多錯誤。我無法提供螢幕截圖,因為我們的伺服器使用巴西葡萄牙語系統。

閱讀更多有關 的內容New-PSSession,我只是嘗試了很多選項,例如身份驗證、傳輸、connectionuri 等,但沒有成功...

那麼,你能給我什麼建議呢?

謝謝指教。

答案1

我做到了!哇!

我們走吧:

  1. 確保 WinRM 服務已在兩台電腦上啟動並執行:get-service winrm。如果沒有,請啟動它:start-service winrm
  2. 確保連接埠 5985 已開啟。使用數據機/路由器自行操作
  3. 確保您的客戶端 NO-IP 位址在伺服器上受信任:get-item wsman:\localhost\client\trustedhosts。如果沒有,請新增:set-item wsman:\localhost\client\trustedhosts -value 'client_no-ip_address' -force
  4. 確保您的伺服器像上面一樣受到您的客戶端的信任,但使用您的伺服器無IP位址
  5. 在客戶端上,停用一些安全性檢查:$option = new-pssessionoption -skipcacheck -skipcncheck
  6. 連接到您的伺服器:$my_server = new-pssession -computername server_no-ip_address -credential domain\user -sessionoption $option

幹得好!

相關內容