web-dev-qa-db-ja.com

リモートPowerShell、WinRMの失敗:WinRMは操作を完了できません

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とEnable-PSRemotingなどのリモートPowerShellを有効にするか、このコマンドが個別に実行するアテンダントステップを呼び出すように(何度も方法で)試しました。

私は別のネットワークインターフェースに変更しました。同じネットワークセグメント上の他のシステムでこれらの症状が発生しないようにし、Get-Help about_Remote_Troubleshootingのアドバイスに従い、必要な山羊を犠牲にしましたバール。何も役に立ちません。

これらの症状は、任意のドメインクライアントからこのサーバーに、またはIPでサーバーに接続した場合(TrustedHostsに配置した後)に再現できます。他のサーバーではこの問題は発生していません。環境内の他の少なくとも2つのサーバー上にないソフトウェアまたは構成(FWルールが有効になり、機能がインストールされるまで)はありません。

何か案は?


最新の調査結果:

netsh http show iplistは、非稼働システムでは127.0.0.1を返しますが、稼働システムでは何も返しません。

@ out-nullがコメントで正しく指摘されているように、5985が127.0.0.1をリッスンしているという事実は問題です。以降、このシステムをGPO WinRM設定の構成から除外し、手動でリスナーを作成しました。

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
6
Tohuw

最後にそれを解決しました、私が最近質問に追加した証拠によって助けられました:

netsh http show 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。ループバックアドレスがリスナーアドレスとして構成されていたため、リスナーは代わりにこのアドレスにバインドしていました。

ある時点で、この構成を引き起こした何らかのアクションをとったはずですが、方法はわかりません。とにかく、今は問題なく動いています。皆さんありがとう。

1
Tohuw