0

WMI クエリはポート 135 から実行されます (Google からの情報によると)。WMI クエリを実行するときに別のポートを指定できますか?

または、system.managment.managementScope オブジェクトを使用して、接続時にポートを指定できますか? おそらく次のようになります。

\\computername:port\root\cimv2\

これらの両方に対する答えが「いいえ」の場合、別の方法で接続し、接続したら wmi クエリを実行できますか?

この質問の理由:

混合環境があり、ファイアウォールの背後にあるいくつかのサーバーにクエリを実行する必要があります。WMI クエリのタイムアウト値を指定できないため、新しいファイアウォール ルールなしでこれらのボックスに接続する方法が必要です。

4

1 に答える 1

2

WMI はポート 135 を使用してネゴシエートし、DCOM は 1024 から 65535 の間でランダムなポートを選択します。固定ポートを使用するのは困難です。ファイアウォールにはあま​​り友好的ではありません...

ジェフからのコメントとして、上記で述べたように、接続先のマシンに、使用するポートを制限するように指示する必要があります。

Windows Server 2003 では、選択したポートを制限できませんでした。そのため、そのサーバーでスクリプトを実行し、結果を既知のポートにプッシュします。私のスクリプトでは、すべての情報がデータベースに保存されるため、標準の SQL ポートを使用します。

Windows Server 2008 R2 の場合、使用するポートを制限できます。これは、各サーバーで次のコマンドを実行することで実行できます。

  1. コマンド プロンプトで「winmgmt -standalonehost」と入力します。
  2. コマンドnet stop "Windows Management Instrumentation"を入力して、WMI サービスを停止します。
  3. net start "Windows Management Instrumentation" と入力して、新しいサービス ホストで WMI サービスを再起動します。
  4. 「 netsh firewall add portopening TCP 24158 WMIFixedPort」と入力して、WMI サービスの新しいポート番号を確立します。

手順と詳細については、こちら (Jeff が提供) を参照してください: WMI 用の固定ポートの設定

これは最善の解決策ではありませんが、私が知っている唯一の解決策です。私は長い間、大規模なサーバー環境用のスクリプトを構築してきました。私が常にこれを処理してきた方法は、各場所 (DMZ など) にスクリプトを配置し、データを既知のポートにプッシュすることです。

これが役に立つことを願っています。

于 2013-06-22T21:24:39.067 に答える