
第一篇文章在這裡,給你帶來了(也許)巨大的挑戰。我試著用兩天的時間來實現我的目標,但運氣不佳。
我需要將大量文件清單(「僅」約 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
我做到了!哇!
我們走吧:
- 確保 WinRM 服務已在兩台電腦上啟動並執行:
get-service winrm
。如果沒有,請啟動它:start-service winrm
- 確保連接埠 5985 已開啟。使用數據機/路由器自行操作
- 確保您的客戶端 NO-IP 位址在伺服器上受信任:
get-item wsman:\localhost\client\trustedhosts
。如果沒有,請新增:set-item wsman:\localhost\client\trustedhosts -value 'client_no-ip_address' -force
- 確保您的伺服器像上面一樣受到您的客戶端的信任,但使用您的伺服器無IP位址
- 在客戶端上,停用一些安全性檢查:
$option = new-pssessionoption -skipcacheck -skipcncheck
- 連接到您的伺服器:
$my_server = new-pssession -computername server_no-ip_address -credential domain\user -sessionoption $option
幹得好!