Windows コレクター用の WinRM の構成

最終更新日: 02 年 2024 月 XNUMX 日

WinRM は Microsoft による実装です。 WS管理プロトコルは、さまざまなベンダーのハードウェアとオペレーティング システムの相互運用を可能にする、標準の SOAP ベースのファイアウォール対応プロトコルです。 したがって、WinRM は、WS-Management プロトコルを使用してローカル コンピューターまたはリモート コンピューターから管理データを取得する方法を提供します。

前提条件

WinRM を構成して使用してデータをクエリするには、次の前提条件を満たす必要があります。

ドメインユーザーの作成

新しいドメイン ユーザーを作成することも、既存のドメイン ユーザーを使用することもできます。 ただし、ドメイン ユーザーが Administrators グループのメンバーではないことを確認してください。 新しいドメイン ユーザーを作成する場合は、まずドメイン ユーザーを作成し、次にそのドメイン ユーザーを使用してコレクタをインストールすることをお勧めします。

  1. MFAデバイスに移動する  サーバーマネージャ > ツール > Active Directoryユーザーとコンピュータ
  2. WinRM に使用するドメインに移動し、右クリックします。 ユーザー をクリックして 新作.
  3. 新しいユーザーの詳細を入力し、選択します 次へ.
  4. パスワードを入力して確認し、選択します 次へ.
  5. 内容を確認して選択してください 終了.

HTTPS リスナー (ポート 5986) の作成

Windows デバイス上で HTTPS リスナーを作成または有効にする必要があります。 WinRM 用に作成された HTTPS リスナーがない場合は、以下の手順に従います。

  1. コマンドを実行する WinRM e winrm/config/listener cmd_promptで、ポート5986がWinRMサービスで既に有効になっているかどうかを確認します。
  2. 既存の署名付き証明書 (有効な CA サーバーによって署名された) を使用します。

注: 既存の署名付き証明書がない場合は、PowerShell で次のコマンドを実行します。
New-SelfSignedCertificate -DnsName "" -CertStoreLocation Cert:\LocalMachine\My

DnsName はコンピュータのフルネームです。 以下で見つけることができます [コントロール パネル] > [システムとセキュリティ] > [システム] > [フル コンピュータ名]。

  1. 既存の証明書の拇印をコピーし、cmd_prompt で次のコマンドを実行します。
    winrm create winrm/config/Listener?Address=*+Transport=HTTPS '@{Hostname="<YOUR_DNS_NAME>"; CertificateThumbprint="<COPIED_CERTIFICATE_THUMBPRINT>"}'
  2. リスナーが作成されたかどうかを確認するには、次のコマンドを実行します。 WinRM e winrm/config/listener cmd_promptで、ポート5985および5986の詳細を出力します。
  3. 新しいファイアウォールインバウンドルールを追加して、ポート5986(TCP)のすべての接続を許可するには、次の手順に従います。
    1. 検索して選択します セキュリティが強化されたWindowsファイアウォール オプション。 [セキュリティが強化された Windows ファイアウォール] ウィンドウが表示されます。
    2. 左側のナビゲーションで、右クリックします インバウンドルール をクリックして 新しいルール。 [新しいインバウンドルールウィザード]ウィンドウが表示されます。
    3. 現在地に最も近い ポート ラジオボタンを押して選択します 次へ.
    4. 現在地に最も近い TCP ラジオボタン。
    5. 現在地に最も近い 特定のローカルポート ラジオボタンと入力 5986 空白のフィールドに。 選択する 次へ
    6. 現在地に最も近い 接続を許可する ラジオボタンを押して選択します 次へ.
    7. 現在地に最も近い ドメインプライベート公共 チェックボックスをオンにして選択します 次へ.
    8. にルール名を入力します。 名前 フィールドを選択して選択します 終了.

WinRM 対応コレクターのセットアップ

WinRM 対応コレクターをセットアップするには、次の手順に従います。

  1. Windowsコレクターをインストールする
  2. WinRM プロパティを構成する
  3. WinRM の非管理者構成を自動化する
  4. GPO ポリシーの作成
  5. WinRM タスクを GPO ポリシーに追加する
  6. リモートマシンを再起動します

Windows コレクターのインストール

で与えられた指示に従ってください コレクターのインストール Windows コレクターをインストールします。 EA Collector 35.400 以降のバージョンを必ずインストールしてください。

WinRM プロパティの構成

HTTP (ポート 5985) を使用して WinRM データ収集機能を使用するには、次のプロパティを構成する必要があります。

プロパティコレクター設定の場所デフォルト値説明
wmi.winrm.enableエージェント.conffalseWinRM 機能を有効または無効にできます。 コレクターが PowerShell を使用して WinRM クエリを実行できるようにするには、値を true に設定します。
wmi.winrm.authTypesbproxy.conf
Negotiate
  • Kerberos – ホスト名は単なる IP アドレスではなく、ドメイン名である必要があります。
  • ネゴシエート – ホスト名は IP アドレスまたはドメイン名のいずれかになります。
wmi.winrm.useSSLtrueHTTPS を使用して WinRM データ収集を実行できるようにします。これを行うには、HTTPS セットアップが構成されていることを確認してください。
wmi.winrm.certChecktrue
  • true の場合 – WinRM クライアントはサーバー証明書を検証し、証明書の共通名 (CN) がサーバーのホスト名と一致するかどうかを確認します。
    これにより、セキュリティ慣行に確実に従うことができます。
  • false の場合 – コレクターが追加します -SkipCACheck および -SkipCNCheck このプロパティをデータ収集スクリプトに追加すると、サーバー証明書の検証と、サーバーのホスト名と一致する場合の証明書の共通名 (CN) の検証がスキップされます。 これは、クライアントとサーバーが相互に信頼するサンドボックスまたは環境に使用できます。

詳細については、を参照してください。 CACheck をスキップ および CNチェックをスキップ Microsoft のドキュメント。  

セキュリティのベスト プラクティスに従って、このプロパティの値を次のように設定することをお勧めします。 true.

Note: wmi.winrm.useSSL および wmi.winrm.certCheck プロパティはテスト目的でのみ提供されており、コレクターの将来のリリースでは削除される予定です。

プロパティを使用して構成ファイルを更新した後、コレクターを再起動します。 

注: から始まるセクション WinRM の非管理者構成の自動化 以降は、WMI クエリ ユーザーを非管理者ユーザーにしたいユーザーのみを対象としています。

WinRM の非管理者構成の自動化

を追加することで、WinRM の非管理者構成プロセスを自動化しました。 Windows_NonAdmin_Config.ps1。 スクリプトに関して次の点を考慮する必要があります。

  • スクリプトは Windows コレクター インストーラーにバンドルされています。 
  • コレクターをインストールした後、次の場所に移動します。 \LogicMonitor\Agent\bin スクリプトを ネットログオン フォルダにコピーします。 
  • ドメイン内のすべてのマシンが、 ネットログオン グループ ポリシー (GPO) を通じて実行されるときにこのスクリプトにアクセスするには、フォルダーにアクセスします。

アクセスの問題の場合は、次を参照してください。 Microsoft のドキュメントで詳しく説明されています)。

GPO ポリシーの作成

  1. MFAデバイスに移動する サーバーマネージャ > ツール > グループポリシー管理.
  2. 使用するドメインを右クリックし、選択します このドメインに GPO を作成し、ここにリンクします…
  3. 新しい GPO ポリシーの名前 (WinRM 構成など) を入力し、選択します。 OK。 Source Starter GPO は残ることに注意してください。 (なし).
  4. 新しく作成した GPO ポリシーを右クリックし、選択します。 編集 WinRM タスクを追加します。

GPO ポリシーへの WinRM タスクの追加

  1. グループ ポリシー管理エディターで、次の場所に移動します。 コンピューター構成 > 政策 > Windowsの設定 > スクリプト(起動/シャットダウン) をクリックして スタートアップ.

    [スタートアップ プロパティ] ダイアログ ボックスが表示されます。
  2. スクリプト タブ選択 Add.

    「スクリプトの追加」ダイアログが表示されます。
  3. [スクリプトの追加] ダイアログで、次の詳細を入力します。
    1.  スクリプト名 フィールドで PowerShell.exe パスを参照します。 通常、パスは次のとおりです。 C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.exe
      注: パスが異なる場合は、ファイルを配置した特定のフォルダーを参照してください。 Powershell.exe.
    2.  スクリプトパラメータ フィールドにスクリプトの次のパラメータを入力します。
      -Noninteractive -ExecutionPolicy Bypass -Noprofile -file \\<IP_Address_of_DC>\netlogon\Windows_NonAdmin_Config.ps1 -add -UserName logicmonitor\DomainUser01
  4. 選択 OK 次に選択します 申し込む.

ドメインマシンの再起動

  1. PowerShell ターミナルを開いて実行します gpupdate/force.
  2. ユーザー ポリシーが正常に更新されたら、ドメイン マシンを再起動します。

上記のセットアップを手動で実行するには、次を参照してください。 WindowsServerの監視と最小特権の原則.

Debug コマンドを使用して構成を確認する

設定が完了したら、 !winrm WinRMの設定を確認するには、デバッグコマンドを実行します。さらに、 !winrm 出力を取得するには、任意のクエリを実行します。デバッグ コマンドが正常に実行されると、クエリの出力が出力されます。デバッグ コマンドの形式は次のとおりです。

!winrm host=<Computer Name> [auth=<Auth Type>] [useSSL=true|false] [certCheck=true|false] [username=foo] [password=var] [query=winrmquery]

このデバッグ コマンドのプロパティについては、次の表で説明します。

プロパティ名説明
host(必須の) 監視するリモート ドメイン コンピューター。
authサポートされている認証タイプは Kerberos および Negotiate。 デフォルト値は Negotiate.
useSSLHTTPS経由のWinRMデータ収集。デフォルト値は true
certCheck証明書を使用する必要があるかどうかを示します。デフォルト値は true.
username および passwordドメインユーザーの資格情報。渡されない場合は、 wmi.user および wmi.pass 使用されています。
queryWQLクエリ。デフォルト値は select * from Win32_Service.
timeoutWQL クエリのタイムアウト値 (秒単位)。デフォルトでは、タイムアウト値は 60 秒です。

 以下はクエリ入力の例です。

!winrm host=EC2AMAZ-93376C4.logicmonitor.com auth=Kerberos username=LOGICMONITOR\WinUser01 password=WinPass@123 useSSL=false certCheck=false

WinRM 構成のロールバック

によって行われた変更を元に戻すことができます。 Windows_NonAdmin_Config.ps1 脚本。次の例を参照してください。

  • -Noninteractive -ExecutionPolicy Bypass -Noprofile -file \\<IP_Address_of_DC>\netlogon\Windows_NonAdmin_Config.ps1 -remove -UserName logicmonitor\ScriptTestUser01

に記載されている手順に従ってください GPO ポリシーへの WinRM タスクの追加 セクションですが、スクリプトを実行します remove WinRM 構成をロールバックするフラグ。

注: この例では、DC の IP アドレスを正しいパスで追加します。

トラブルシューティング

以下を含む Groovy スクリプト モジュールの WQL フィルターの問題 wmi.queryfirst() および wmi.queryAll()

WQL フィルターは次の 2 つの形式をサポートします。

  • 形式 1 – 「select * from win32_bios where NAME LIKE '%'」 – WQL を二重引用符で囲み、句の値を一重引用符で囲みます。
  • 形式 2 – 'select * from win32_bios where NAME LIKE “%” ' - WQL を一重引用符で囲み、句の値を二重引用符で囲みます。

WinRM(設定時) wmi.winrm.enable= true) は形式 2 のみをサポートします。WinRM を有効にしていて、カスタム データソースに形式 1 を使用している場合は、呼び出し時にエラーが表示されます。 wmi.queryFirst() / wmi.queryAll() グルーヴィーなスクリプトで。 エラーを回避するには、形式 2 を使用することをお勧めします。

断続的な問題 – ネットワーク パスが見つかりません

ネットワークまたはドメインの問題により、「ネットワーク パスが見つかりません」というメッセージが表示される場合があります。

Error Message : Exception calling "Invoke" with "2" argument(s): "The network path was not found.".Exception.Messages

ログでこのエラー メッセージが見つかった場合は、トラブルシューティングを行うために、スクリプトを新しいタスクとして再適用します。

サービス アカウントを管理者以外のユーザーに個別に移行するには、次を参照してください。 Windows Collector を管理者から非管理者ユーザーに移行する.

記事上で