web-dev-qa-db-ja.com

PowerShellでWinRMを使用して正常に構成およびリッスンする

ローカルマシンとリモートマシンでコマンドプロンプトを使用してWinRM接続をテストしていますが、私の質問は2つの部分に分かれています。

パートI

私はpingコマンドを使用してTCP/IP接続をテストしました。ローカルコンピューターとリモートコンピューターのIPアドレス、デフォルトゲートウェイ、およびDNSサーバーで、ローカルコンピューターとリモートコンピューターの両方で完全に動作します。

しかし、WinRMコマンドを使用してテストするとき、このコマンドを使用してリスナーとアドレスを特定しました

winrm e winrm/config/listener

それは私に私のローカルマシンのためのこの出力を与えます

Listener
Address = *
Transport = HTTP
Port = 5985
Hostname
Enabled = true
URLPrefix = wsman
CertificateThumbprint
ListeningOn =<IP Address>,127.0.0.1, ::1,fe80::100:7f:fffe%13,fe80::803:5e43:50ef:c50%11

しかし、リモートマシンで実行したときの同じコマンドで、他のすべてが同じである出力が得られますが、

Listener[Source="GPO"]
.
.
.
ListeningOn=null

正しくリッスンするように構成したいと思います。

パートII

これらのコマンドをリモートマシンで1つずつ実行すると

winrm id -r:<machine name>
winrm get winrm/config -r:<machine name>
winrm get wmicimv2/Win32_Service?Name = WinRM -r:<machine name>

次のようなエラーメッセージでWSMan障害が発生します。

The client cannot connect to the destination specified in the request. Verify
that the service on the destination is running and is accepting requests.Consult
the logs and documentation for WS-Management service running on the destination,
most commonly IIs or WinRM. If the destination is the WinRM service, run the 
following command on the destination to analyse and configure the WinRM service:
"winrm quickconfig". 

一方、ローカルマシンで実行したときと同じコマンドが正しく実行されます。

winrm id 
winrm get winrm/config
winrm get wmicimv2/Win32_Service?Name = WinRM

せいぜい、私が直面している問題はすべて、リモートマシンにあります。これが発生する原因は何ですか?リスニングして接続するように構成するにはどうすればよいですか?ありがとうございました。


パートII、これで、他のリモートマシンの1つで正しい出力を使用してこれらを実行できるようになりました。

私は質問を投稿したこの特定のリモートマシンにいくつかの変更を加えたので、一部を修正するまでこれらのコマンドは実行されませんが、何も変更されていない場合は他のマシンと同じように実行されますリモートマシン。

誰かが私を取り除く必要がある私と一緒に誰かが私を助けることができれば私はまだ感謝します

Listener[Source=GPO]
..
.
ListeningOn=null

コマンドを実行すると

winrm e winrm/config/listener

これが問題の原因ですが、グループポリシー設定を無効または削除する方法がわかりません。

13
sanya

WinRMを構成しているグループポリシーを確認するには、管理コマンドプロンプトから次のコマンドを実行します。

gpresult /h result.html & result.html

表示された結果で、Windowsコンポーネント/ Windowsリモート管理(WinRM)/ WinRMサービスを見つけます。優勝GPOは、GPO設定を有効/無効にできる場所です。GPMC(グループポリシー管理コンソール)を使用してグループポリシーを管理します。

ListeningOn = nullは、管理者がAllowの自動構成を許可するグループポリシーIPv4フィルター設定を誤って構成すると表示されます通常はIPを使用または影響を受けるサーバーに存在しないネットワーク。

14
Neossian

同じ問題があり、GPO設定:Allow remote server management through WinRMの場合、IPv4フィルターがIPに設定されていることがわかりましたjumphostのアドレスwinrm e winrm/config/listenerコマンドがListeningOn=nullの問題を生成しました。

これを解決するには、フィルターを*に設定し、代わりにファイアウォールレベルでアクセス許可を並べ替えます。

4
Rutgervonapa

IPアドレス(ListeningOn)をリセットするには、おそらくリスナーを再作成する必要があります(古いHTTPリスナーを削除して新しいリスナーを作成する)。以下の例をご覧ください。


PowerShellの場合:

Remove-WSManInstance winrm/config/Listener -SelectorSet @{Address="*";Transport="http"}
New-WSManInstance winrm/config/Listener -SelectorSet @{Address="*";Transport="http"}

バインドする特定のIPアドレスの構文は次のとおりです。

New-WSManInstance winrm/config/Listener -SelectorSet @{Address="IP:192.168.100.2";Transport="http"}

コマンドプロンプト:

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

参考文献:

関連質問: 1つのアドレスからのみPowerShellリモート処理を許可する

4
kenorb

入力するIP範囲は、システムにアクセスできる範囲ではなく、システムがWinRMインターフェイスとして使用できるIP範囲を定義するということです。 GPOが影響しているすべてのクライアントIPを含むIPアドレスの範囲を指定する必要があることを意味します。

1
Oliver

[コンピューターの構成]/[ポリシー]/[管理用テンプレート]/[Windowsコンポーネント]/[Windowsリモート管理(WinRM)の[WinRMによるリモートサーバー管理を許可する]で定義されたフィルター(IPv4またはIPv6、あるいはその両方)があることを確認します。 )]/[WinRMサービス]。

フィルタリングする対象がわからない場合は、IPv4とIPv6の両方に「*」のフィルターをお勧めします。

0
Craneum

私はこれをGPOを変更することで解決しました。回答はNessianとまったく同じです(申し訳ありませんが、コメントを追加するだけの評判はありません)。 しかし、「IPv4フィルター」は空であってはならず、CIDR表記を受け入れてはいけません(それは私の大きな間違いでした)。すでにCraneumで述べられているように、ローカルネットワークデバイスが接続されているインターフェイスまたはIPアドレスの範囲で「*」を使用します(「192.168.0.1-192.168.0.254」など)。

「192.168.0.0/24」の表記は使用しないでください。はい、ヘルプセクションはそれについて非常に明確ですが、私は間違った表記法を使用しました。

0
helviojr