歡迎光臨
每天分享高質量文章

使用 Powershell 遠端連線 windows server

使用 Powershell 遠端連線 windows server

Intro

最近我們的開發環境增加了一個 windows 伺服器,沒有介面的,不能直接遠端桌面連上去管理,需要使用 Powershell 管理,於是就有了這篇文章的探索。

windows伺服器配置

以下所有命令需要在管理員賬戶下執行,請以管理員身份執行下麵的命令。

  1. 在遠端 windows伺服器上啟用 powershell 遠端會話:
  1. Enable-PSRemoting -Force
  1. 配置 TrustedHosts
  1. winrm set winrm/config/client '@{TrustedHosts=""}'
  2. # winrm set winrm/config/client '@{TrustedHosts="58.123.45.26,134.86.23.21"}' #多個地址用英文的逗號分隔

配置好之後需要重啟一下服務:

  1. Restart-Service WinRM
  1. 防火牆開放 5985 埠

winrm 有兩個埠號,你可以用 winrmgetwinrm/config/client 命令來檢視 winrm client 相關配置資訊,

可以看到預設的兩個埠

  • http:5985
  • https:5986

我們只用了 http 所以開放 5985

本地配置

  1. 配置 TrustedHosts
  1. winrm set winrm/config/client '@{TrustedHosts=""}'
  2. # winrm set winrm/config/client '@{TrustedHosts="58.123.45.26,134.86.23.21"}' #多個地址用英文的逗號分隔
  1. 連線遠端伺服器
  1. Enter-PSSession -ComputerName <remoteIp or host> -Credential

連線之後,會提示輸入對應使用者的密碼,提交之後就會進行身份驗證

出現如下圖所示的提示就說明連線成功了,在執行命令就相當於是在遠端windows伺服器上執行命令了,就相當於是 SSH 到了 linux 伺服器上了

疑難解答

  1. 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
贊(0)

分享創造快樂