Windows-Server-2012-R2

遠端 PowerShell、WinRM 失敗:WinRM 無法完成操作

  • February 17, 2015

使用 執行Enter-PSSession COMPUTERNAMEEnable-PSWSManCombinedTrace,我在 Windows 遠端管理操作日誌中看到以下相關消息:


WSMan 操作獲取失敗,錯誤程式碼 2150859046


WinRM 無法完成該操作。驗證指定的電腦名稱是否有效,該電腦可通過網路訪問,並且 WinRM 服務的防火牆例外已啟用並允許從該電腦進行訪問。預設情況下,公共配置文件的 WinRM 防火牆例外限制對同一本地子網中的遠端電腦的訪問。


由於以下錯誤,WinRM 協議操作失敗:由於以下錯誤,無法從伺服器檢索元數據:WinRM 無法完成操作。驗證指定的電腦名稱是否有效,該電腦可通過網路訪問,並且 WinRM 服務的防火牆例外已啟用並允許從該電腦進行訪問。預設情況下,公共配置文件的 WinRM 防火牆例外限制對同一本地子網中的遠端電腦的訪問。.


而有時:

客戶端從網路層獲得超時(ERROR_WINHTTP_TIMEOUT)


COMPUTERNAME是域上的 2012 R2 核心伺服器,與遠端 PowerShell、伺服器管理器等執行良好的許多其他伺服器具有相同的組策略。我可以對這個系統進行 RDP,我可以從中獲取 WMI 數據(例如Get-WmiObject -ComputerName COMPUTERNAME -Class Win32_OperatingSystem返回它應該返回的數據),並且以其他方式,它似乎執行得很好。

雖然它已經通過組策略設置,但我已經嘗試(無數次)啟用 WinRM 和遠端 PowerShell,例如Enable-PSRemoting,或呼叫此命令單獨執行的附帶步驟。

我已更改為不同的網路介面,我已確保同一網段上的其他系統不會出現這些症狀,我已遵循 的建議Get-Help about_Remote_Troubleshooting,並將必要的山羊獻給了 Baal。沒有什麼幫助。

這些症狀可以從任何域客戶端複製到此伺服器,或者如果您通過 IP 聯繫伺服器(將其放入 TrustedHosts 之後)。沒有其他伺服器出現此問題。在我的環境中至少有 2 台其他伺服器上沒有軟體或配置(一直到啟用的韌體規則和安裝的功能)。

有任何想法嗎?


最新發現:

netsh http show iplist``127.0.0.1在非工作系統上返回,但在工作系統上不返回任何內容。

正如@out-null 在評論中正確指出的那樣,5985 正在監聽 127.0.0.1 的事實是一個問題。我已經從配置 WinRM 設置的 GPO 中排除了這個系統,並手動創建了監聽器:

winrm create winrm/config/Listener?Address=*+Transport=HTTP

但是,netstat 中的結果是相同的。請注意下面的輸出winrm e,其中 IP 被列為偵聽器。

還在糾結這個。。。


原始證據/健全性檢查

$> winrm e winrm/config/listener
Listener [Source="GPO"]
   Address = *
   Transport = HTTP
   Port = 5985
   Hostname
   Enabled = true
   URLPrefix = wsman
   CertificateThumbprint
   ListeningOn = 10.11.10.117, 127.0.0.1, 169.254.34.30, 169.254.47.200, 169.254.236.165, ::1, fe80::5efe:10.115.63.10 7%16, fe80::5efe:169.254.34.30%45, fe80::28b8:be74:53c:2fc8%12, fe80::69a9:e404:12bd:63c0%15, fe80::7cf2:ec84:332f:221e%14, fe80::cdc6:5ca0:6ae2:eca5%13

$> netsh winhttp show proxy

Current WinHTTP proxy settings:
   Direct access (no proxy server).

$> Get-NetFirewallRule WINRM-HTTP-In-TCP | fl *


Name                    : WINRM-HTTP-In-TCP
ID                      : WINRM-HTTP-In-TCP
Group                   : @FirewallAPI.dll,-30267
Platform                : {}
LSM                     : False
DisplayName             : Windows Remote Management (HTTP-In)
Enabled                 : True
Profile                 : Domain, Private
Direction               : Inbound
Action                  : Allow
EdgeTraversalPolicy     : Block
PrimaryStatus           : OK
Status                  : The rule was parsed successfully from the store. (65536)
EnforcementStatus       : NotApplicable
PolicyStoreSourceType   : Local
Caption                 :
Description             : Inbound rule for Windows Remote Management via WS-Management. [TCP 5985]
ElementName             : @FirewallAPI.dll,-30253
InstanceID              : WINRM-HTTP-In-TCP
CommonName              :
PolicyKeywords          :
PolicyDecisionStrategy  : 2
PolicyRoles             :
ConditionListType       : 3
CreationClassName       : MSFT|FW|FirewallRule|WINRM-HTTP-In-TCP
ExecutionStrategy       : 2
Mandatory               :
PolicyRuleName          :
Priority                :
RuleUsage               :
SequencedActions        : 3
SystemCreationClassName :
SystemName              :
DisplayGroup            : Windows Remote Management
LocalOnlyMapping        : False
LooseSourceMapping      : False
Owner                   :
Platforms               : {}
PolicyStoreSource       : PersistentStore
Profiles                : 3
RuleGroup               : @FirewallAPI.dll,-30267
StatusCode              : 65536
PSComputerName          :
CimClass                : root/standardcimv2:MSFT_NetFirewallRule
CimInstanceProperties   : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties     : Microsoft.Management.Infrastructure.CimSystemProperties

COMPUTERNAME$> netstat -anp tcp

Active Connections

 Proto  Local Address          Foreign Address        State
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49152          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49153          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49154          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49155          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49174          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49178          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49191          0.0.0.0:0              LISTENING
 TCP    10.11.10.117:135      192.168.5.71:64570    ESTABLISHED
 TCP    10.11.10.117:135      192.168.5.71:64571    ESTABLISHED
 TCP    10.11.10.117:135      192.168.5.71:64572    ESTABLISHED
 TCP    10.11.10.117:139      0.0.0.0:0              LISTENING
 TCP    10.11.10.117:3389     10.1.1.2:57970     ESTABLISHED
 TCP    10.11.10.117:49153    10.1.1.2:58100     ESTABLISHED
 TCP    10.11.10.117:50601    192.168.5.111:8014     ESTABLISHED
 TCP    10.11.10.117:56508    192.168.5.177:445     ESTABLISHED
 TCP    127.0.0.1:5985         0.0.0.0:0              LISTENING
 TCP    127.0.0.1:47001        0.0.0.0:0              LISTENING
 TCP    169.254.34.30:139      0.0.0.0:0              LISTENING


SOME-WORKING-COMPUTER$> netstat -anp tcp

Active Connections

 Proto  Local Address          Foreign Address        State
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:5985           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:47001          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49152          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49153          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49154          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49155          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49158          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49187          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49192          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49199          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49213          0.0.0.0:0              LISTENING
 TCP    192.168.5.11:139     0.0.0.0:0              LISTENING
 TCP    192.168.5.11:5985    10.1.1.2:58153     ESTABLISHED
 TCP    192.168.5.11:5985    10.1.1.2:58154     ESTABLISHED
 TCP    192.168.5.11:5985    10.1.1.2:58156     ESTABLISHED
 TCP    192.168.5.11:49203   192.168.5.177:49210   ESTABLISHED
 TCP    192.168.5.11:49213   192.168.5.177:52784   ESTABLISHED
 TCP    192.168.5.11:49213   192.168.5.177:54507   ESTABLISHED
 TCP    192.168.5.11:49213   192.168.5.177:59034   ESTABLISHED
 TCP    192.168.5.11:52905   192.168.5.177:49210   TIME_WAIT
 TCP    192.168.5.11:52906   192.168.5.177:49210   TIME_WAIT
 TCP    192.168.5.11:52907   192.168.5.111:8014     ESTABLISHED
 TCP    192.168.5.11:52910   192.168.5.177:49210   TIME_WAIT
 TCP    192.168.5.11:52915   192.168.5.177:49210   TIME_WAIT
 TCP    192.168.5.11:52918   192.168.5.177:49210   TIME_WAIT
 TCP    192.168.5.11:52920   192.168.5.177:49210   TIME_WAIT
 TCP    192.168.5.11:52922   192.168.5.177:49210   ESTABLISHED
 TCP    192.168.5.11:52923   192.168.5.177:49210   ESTABLISHED
 TCP    192.168.5.11:52924   192.168.5.177:49210   ESTABLISHED
 TCP    192.168.5.11:52925   192.168.5.177:49210   ESTABLISHED
 TCP    192.168.5.11:52926   192.168.5.177:49210   ESTABLISHED
 TCP    192.168.5.11:52927   192.168.5.177:49210   ESTABLISHED
 TCP    192.168.5.11:54938   192.168.6.8:49157     ESTABLISHED
 TCP    192.168.5.11:62632   192.168.5.177:49210   ESTABLISHED
 TCP    192.168.5.11:64307   192.168.6.8:389       ESTABLISHED

在我最近添加到問題中的證據的幫助下,終於解決了這個問題:

netsh http 顯示 iplist

IP addresses present in the IP listen list:
-------------------------------------------

127.0.0.1

在這工作的系統上,該列表是空的。起初,這對我來說似乎是違反直覺的。儘管如此,我還是試了一下:

> netsh http delete iplisten ipaddress=127.0.0.1

緊接著,我注意到以下輸出netstat

>netstat -anp tcp

Active Connections

 Proto  Local Address          Foreign Address        State
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:5985           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:47001          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49152          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49153          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49154          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49155          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49175          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49179          0.0.0.0:0              LISTENING
 TCP    0.0.0.0:49190          0.0.0.0:0              LISTENING
 TCP    10.115.63.107:139      0.0.0.0:0              LISTENING
 TCP    10.115.63.107:3389     10.115.13.25:64873     ESTABLISHED
 TCP    10.115.63.107:49235    192.168.40.146:445     ESTABLISHED
 TCP    10.115.63.107:49291    192.168.40.45:8014     ESTABLISHED
 TCP    169.254.34.30:139      0.0.0.0:0              LISTENING

確實,WinRM 的工作方式應有盡有。

我推測,通過測試,如果沒有配置 HTTP 偵聽器,那麼所有 HTTP 偵聽器都將綁定到預設實體:0.0.0.0. 因為將環回地址配置為偵聽器地址,所以偵聽器改為綁定到此地址。

在某些時候,我一定採取了一些導致這種配置的措施,但我不確定如何。無論如何,它現在工作正常。謝謝大家。

引用自:https://serverfault.com/questions/666606