WinRM 在嘗試從 Win10 時失敗,但不是從 WSE2016
我無法連接
PSRemote
到我的 Hyper-V 主機,也無法使用 Hyper-V 管理器連接到它。這發生在客戶端虛擬機上,而不是伺服器虛擬機上。我可以PSRemote
從伺服器毫無問題地連接。這是我的設置:
- $$ HOST $$是 Hyper-V 2016
- $$ SERVER $$是 Server Essentials 2016 虛擬機
- $$ CLIENT $$是加入域的 VM,執行 Windows 10 v1607
- 我都登錄了$$ SERVER $$和$$ CLIENT $$在域管理員帳戶下
錯誤資訊:
Enter-PSSession : 連接到遠端伺服器
$$ HOST $$失敗並顯示以下錯誤消息:WinRM 無法完成操作。驗證指定的電腦名稱是否有效,該電腦可通過網路訪問,並且 WinRM 服務的防火牆例外已啟用並允許從該電腦進行訪問。預設情況下,公共配置文件的 WinRM 防火牆例外限制對同一本地子網中的遠端電腦的訪問。有關詳細資訊,請參閱 about_Remote_Troubleshooting 幫助主題。
$$ HOST $$防火牆配置:
故障排除步驟:
- 我已將 WinRM 防火牆條目設置為$$ HOST $$到
All
配置文件和Any
遠端地址- 我已禁用防火牆$$ HOST $$完全
- 我已經搜尋了此處找到的故障排除步驟
- 我已成功執行此命令$$ HOST $$:
C:\>winrm set winrm/config/client @{TrustedHosts="CLIENT"}
- 我已成功執行此命令$$ HOST $$:
PS C:\> Enable-PSRemoting -Force
- 我已經啟動了 WinRM 服務$$ CLIENT $$
- 我已經查看了此問答,但那裡提供的建議對我不起作用。
- 我在這裡查看了所有的問答,但沒有一個直接適用。我找到的最接近的是這個,但我不確定如何暫時禁用 GPO$$ CLIENT $$如所述。
WinRM 事件登錄
$$ CLIENT $$顯示這些錯誤: 命令:
Get-WinEvent -LogName Microsoft-Windows-WinRM/Operational -MaxEvents 10 | Where-Object {$_.LevelDisplayName -eq "Error"} | fl
結果:
TimeCreated : 3/18/2017 12:43:46 PM ProviderName : Microsoft-Windows-WinRM Id : 142 Message : WSMan operation CreateShell failed, error code 2150859046 TimeCreated : 3/18/2017 12:43:46 PM ProviderName : Microsoft-Windows-WinRM Id : 161 Message : WinRM cannot complete the operation. Verify that the specified computer name is valid, that the computer is accessible over the network, and that a firewall exception for the WinRM service is enabled and allows access from this computer. By default, the WinRM firewall exception for public profiles limits access to remote computers within the same local subnet. TimeCreated : 3/18/2017 12:43:46 PM ProviderName : Microsoft-Windows-WinRM Id : 138 Message : The client got a timeout from the network layer (ERROR_WINHTTP_TIMEOUT)
這也發生在我升級兩者之前
$$ HOST $$和$$ SERVER $$從 2012R2 到 2016,所以它讓我相信它正在發生$$ CLIENT $$. 奇怪的是,我暫時能夠從
$$ CLIENT $$升級後立即。我不記得這是否是在我打開預設安全 GPO 之前$$ SERVER $$並從備份中導入我的自定義(非安全相關)GPO 設置;也許它可能與此有關? 是否有防火牆規則
$$ CLIENT $$我需要創建/啟用?我無法將防火牆作為故障排除步驟關閉,因為它由預設的 WSE GPO 管理;如前所述,我不知道如何暫時覆蓋它(或者即使這樣做是安全的)。
我當然沒想到會是這個答案……
一時興起,我嘗試使用 FQDN(例如
host.domain.tld
)進行連接。Enter-PSSession
令我驚訝的是,它在Hyper-V 管理器和 Hyper-V 管理器下都順利通過。它可能在 TCP/IP DNS 設置中
$$ CLIENT $$. 我得檢查一下。 但就目前而言,這可以解決問題。
- 編輯 -
好的,我知道了。
主機文件在
$$ CLIENT $$有過時的 IP 地址記錄$$ HOST $$. 這就是為什麼 WinRM 僅在我使用 FQDN 時才起作用的原因。 我刪除了記錄,一切都立即開始正常工作。