一直以來都用RDP連到遠端的Windows Server,再進行相關的操作,因為Linux是可以用SSH來執行指令並寫成Script,突然想到Windows有沒有相關的方式。
結果在網路找到可以用Powershell來連線遠端Windows Server並執行指令,這樣就可以自動化管理Windows Server,於是就到測試機測試看看。
首先以系統管理員的身份執行powershell
檢查兩台Windows是否已啟用winrm(Windows Remote Management)
C:/> get-service winrm
下列的指令可以啟用與停用winrm
C:/> start-service winrm
C:/> stop-service winrm
用上述的指令確認Windows已啟用winrm之後,在Server端進行快速config來允許Client可以遠端連線
C:/> winrm quickconfig
在Server端以本機來來測試是否可以連線成功
C:/> enter-pssession localhost
如果Server端、Client端都有加入網域,原則上會互相信任。如果沒有加入網域,則需要在Client端把Server(例如:192.168.1.182)加入信任清單
C:/> set-item wsman:\localhost\client\trustedhosts "192.168.1.182"
可執行下列的指令來查詢信任清單
C:/> get-item wsman:\localhost\client\trustedhosts
在Client端設定登入Server的帳號及密碼,需要用ConvertTo-SecureString將將純文字或加密字串轉換為安全字串
例如username:test01,password:123456,用下列的語法轉成密碼並產生一個帶帳號與密碼的Credential
$s_passwd = ConvertTo-SecureString "123456" -AsPlainText -Force;
$cret = New-Object System.Management.Automation.PSCredential("test01",$s_passwd);
在Client端用enter-pssession來連線到Server
C:/> enter-pssession -Computer 192.168.1.182 -Credential $cret
連線成功後就可以利用Powsershell指令來操作Server端