使用 Powershell 遠端連接配接 windows server
Intro
最近我們的開發環境增加了一個 windows 伺服器,沒有界面的,不能直接遠端桌面連上去管理,需要使用 Powershell 管理,于是就有了這篇文章的探索。
windows伺服器配置
以下所有指令需要在管理者賬戶下執行,請以管理者身份運作下面的指令。
- 在遠端 windows伺服器上啟用 powershell 遠端會話:
Enable-PSRemoting -Force
- 配置 TrustedHosts
winrm set winrm/config/client '@{TrustedHosts=""}'
# winrm set winrm/config/client '@{TrustedHosts="58.123.45.26,134.86.23.21"}' #多個位址用英文的逗号分隔
配置好之後需要重新開機一下服務:
Restart-Service WinRM
- 防火牆開放 5985 端口
winrm 有兩個端口号,你可以用
winrmgetwinrm/config/client
指令來檢視 winrm client 相關配置資訊,
可以看到預設的兩個端口
-
http:5985
-
https:5986
我們隻用了 http 是以開放
5985
端口
本地配置
- 配置 TrustedHosts
winrm set winrm/config/client '@{TrustedHosts=""}'
# winrm set winrm/config/client '@{TrustedHosts="58.123.45.26,134.86.23.21"}' #多個位址用英文的逗号分隔
- 連接配接遠端伺服器
Enter-PSSession -ComputerName <remoteIp or host> -Credential
連接配接之後,會提示輸入對應使用者的密碼,送出之後就會進行身份驗證
出現如下圖所示的提示就說明連接配接成功了,在執行指令就相當于是在遠端windows伺服器上執行指令了,就相當于是 SSH 到了 linux 伺服器上了
疑難解答
-
ACCESS IS DENIED
如果你的使用者名密碼都是正确的,但是還是一直提示
ACCESS IS DENIED
,那麼你需要檢查一下這個使用者是否有
Remote
的權限,遠端的使用者至少要有 Remote 的權限,把使用者加入到
RemoteDesktopUsers
這個使用者組中就會有Remote 的權限
更多問題請參考: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/aboutremotetroubleshooting?view=powershell-6
Reference
- https://www.faqforge.com/windows/create-powershell-session-remote-computer/
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/aboutremotetroubleshooting?view=powershell-6
- https://docs.microsoft.com/en-us/windows-server/administration/server-manager/server-manager
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/enter-pssession?view=powershell-6
- https://www.itprotoday.com/windows-78/how-remotely-manage-windows-server-2016