Windows ディスカバリーの概要<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #7057C7; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } 説明 このナレッジベースの記事では、Windows ディスカバリーに関する主なトピックをいくつか取り上げています。 サポートされている Windows バージョン、PowerShell の要件、収集されるデータ、および Windows に対してトリガーされるプローブ / パターンについては、ServiceNow インスタンスリリースの次の「Windows ディスカバリー」ドキュメントを参照してください。 Windows ディスカバリー 目次 説明WMI と WinRMShazzamWindows 分類認証情報資格情報テストリモート機能テストプロパティとパラメータートラブルシューティング一般的なエラー追加情報 WMI と WinRM ServiceNow ディスカバリーでは、複数のプロトコルを利用してターゲットデバイスと通信します。WMI または WinRM のいずれかを Windows ディスカバリーに利用できます。Windows ディスカバリーに使用されるプロトコルは、MID サーバーパラメーター「mid.windows.management_protocol」を介して MID サーバーレベルで制御されます。このプロパティのデフォルト値は「WMI」です。 ネットワーク要件 WMI と WinRM では、ネットワーク/ファイアウォールの要件が異なります。 WMI WMI は DCOM/RPC に基づいています。これは、使用する動的ポートを決定するために、最初にポート 135 で接続が開始されることを意味します。その後、接続はネゴシエートされた動的ポートの使用に進みます。 このトピックの詳細については、次の Microsoft ドキュメントを参照してください。 リモート WMI 接続の設定ファイアウォールで動作するように RPC 動的ポート割り当てを構成する方法 拡張 Windows 検出でもターゲット サーバー admin$ が使用されるため、ファイル共有ポート トラフィックも許可する必要があります (ポート 445)。拡張 Windows 検出の詳細については、以下を参照してください。 Windows PowerShell ディスカバリーと従来の Windows ディスカバリーの違い WinRM WinRM はポート 5985 (HTTP) または 5986 (HTTPS) を使用しますが、これはターゲット ホストの構成によって異なります。WinRM の設定の詳細については、次の Microsoft ドキュメントを参照してください。 Windows リモート管理のインストールと構成HTTPS 用に WINRM を構成する方法 ネットワークの問題 サポートは、このような問題を解決するために最善の努力をすることができます。ただし、WMI と WinRM の両方について、接続の問題を解決するには、ターゲット デバイスが配置されている環境を管理するネットワーク管理者とシステム管理者に連絡することをお勧めします。 Shazzam Shazzam はディスカバリーの第 1 フェーズです。このフェーズでは、デフォルト設定では、MID サーバーはポート 135、5985、および 5986 で SYN 要求をターゲットサーバーに送信します。ターゲット・デバイスがこれらのポートで応答すると、Windows分類がトリガーされます。次の画像では、スキャンされたポートの結果を示す Shazzam プローブのecc_queue入力を確認できます。 Shazzam が開いているポートを正常に検出しても、すべてのネットワーク要件が満たされているとは限りません。検出の後のフェーズでは、検出によってターゲット サーバーへの接続が実際に確立される接続の問題が発生する可能性があります (特に、接続を完了するために動的ポートを必要とする WMI の場合)。 Windows 分類 この Windows - WMIRunner 分類プローブは、Shazzam の直後に Windows ディスカバリーでトリガーされた最初のプローブです。このプローブは、MID サーバーの scripts\WMI フォルダーにある WMIRunner.js と WMIScanner.js を実行します。このプローブは、WBEMTEST の接続方法と同様に、MID サーバーサービス認証情報を使用してターゲットデバイスと通信します。したがって、トラブルシューティングには MID サーバーから WBEMTEST を使用できます。 WBEMTEST の概要 ただし、Fuji (2015) 以降mid.use_powershell、このパラメーターのデフォルトは true になり、このプローブの動作方法が変更されます。mid.use_powershell = true の場合、ロジックは代わりに PowershellProbe ロジックに実質的に置き換えられます。これにより、MID サービスアカウントに限定されるのではなく、discovery_credentialsテーブルを使用するなど、Powershell を使用することで多くのメリットが得られます。このプローブは、WMI_FETCHDATAパラメーターがあるかどうかをチェックし、ある場合は MID サーバーで WMIRunner.psm1 スクリプトを実行します。Windows 分類プローブの場合、リモート機能テストを実行します。 リモート機能のテストでは、次の項目がチェックされます。 リモートアドミン共有アクセスPowershell アクセス Powershell アクセスは、リモートアドミン共有アクセステストが成功した場合にのみテストされます これらのテストの結果は、次のパラメーターに入力されます。 admin_share_accesstarget_powershell_access これらのパラメーターは、分類プローブと分類後プローブの両方で使用されます。このパラメーターは、プローブがターゲットから情報を収集する方法を決定し、両方のテストに合格する必要があるプローブを自動的にスキップします。リモート機能チェックのために PowerShell または WindowsCommand プローブがスキップされた場合、次のいずれかのメッセージがディスカバリーステータス履歴に記録されます。 リモート PowerShell プローブは、ターゲットでアドミン共有アクセスと PowerShell を必要とするため、プローブを起動できませんターゲットのアドミン共有に MID サーバーからアクセスできないため、プローブを起動できません WMI 属性を収集するプローブ (Windows 分類プローブが 1 つの例) は、アドミン共有と PowerShell アクセスの両方がターゲット上で利用可能な場合に実行されるコードパスを取得する場合に、パフォーマンス上の利点があります。次のドキュメントでは、これらの改善点について詳しく説明します。 Windows PowerShell ディスカバリーと従来の Windows ディスカバリーの違い 認証情報 認証情報テーブルの認証情報を使用して Windows コンピューターを検出するには、mid.powershell.use_credentials パラメーターを true に設定します。認証情報テーブルの認証情報を使用するのがデフォルトの動作です (デフォルトで true mid.powershell.use_credentials)。 ディスカバリーとサービスマッピングで MID サーバーサービスユーザーの認証情報を強制的に使用するには、MID サーバーで mid.powershell.use_credentials パラメーターを false に設定します。 権限の詳細については、次のドキュメントを参照してください。 Windows 認証情報Windows プローブと権限 資格情報テスト テストはPowerShellを介して実行できます。 WMI # Setup User & Variables:$userName = "<replace_with_userName>"$userPassword = "<replace_with_userPassword>"$targetIP = <repalce_with_targetIP>$securePasswd = ConvertTo-SecureString $userPassword -AsPlainText –Force$cred = New-Object System.Management.Automation.PSCredential ($userName, $securePasswd)$so = New-CimSessionOption -Protocol Dcom# Test Credential$session = New-CimSession -ComputerName $targetIP -SessionOption $so -Credential $cred WinRM # Setup User & Variables:$userName = "<replace_with_userName>"$userPassword = "<replace_with_userPassword>"$securePasswd = ConvertTo-SecureString $userPassword -AsPlainText –Force$cred = New-Object System.Management.Automation.PSCredential ($userName, $securePasswd)# Test CredentialNew-PSSession -ConnectionUri http://<replace_with_target_domain_name>:5985/wsman -Credential $cred リモート機能テスト アドミン共有 MID サーバーにログインしますターゲットデバイスの検出に使用するアカウントで PowerShell を開きます実行 Test-Path -Path "\\<target_ip_address>\admin$" ターゲット PowerShell アクセス $target = "<target_ip>"$userName = "<user_name>"$userPassword = "<user_password>"$securePasswd = ConvertTo-SecureString $userPassword -AsPlainText –Force$cred = New-Object System.Management.Automation.PSCredential ($userName, $securePasswd)$session = New-PSSession -ComputerName $target -Credential $cred -ConfigurationName Microsoft.PowerShell32Enter-PSSession $sessionInvoke-Command -Session $session -FilePath c:\file_path\file_Name.ps1Exit-PSSession プロパティとパラメーター PowerShell の MID サーバーパラメーターMID サーバーのパラメーター トラブルシューティング 全体的なトラブルシューティング Shazzam ターゲットサーバーで次のポートが開いていることを確認します。 WMI の場合:135WinRM(HTTP)の場合:5985WinRM (HTTPS) の場合: 5986 ターゲットサーバーで次のコマンドを実行して、ポートのステータスを確認します。 "netstat -ano | findstr <port_number>" ファイアウォールが MID からターゲットへの接続をブロックしていないことを確認します。 MID サーバー実行時 "telnet <ip> <port>" 分類 認証情報がターゲットに対して認証できることを確認します MID サーバーにログインします「Windows PowerShell ISE」を開きます次のいずれかの認証情報テストスクリプトを実行します。 WMIWinRM 資格情報テストは成功しましたか? はい:続行しますいいえ:ネットワークおよび Windows チームと協力してエラーを解決します Windows 管理プロトコルは WMI (mid.windows.management_protocol) ですか? はい: を実行します リモート機能テストいいえ:続行します デバッグする MID サーバーと PowerShell の設定 MID サーバーパラメーターの設定 mid.log.level = debug MID サーバープロパティを設定 mid.property.powershell.log_info = true 問題を再現MID サーバーログを確認します 一般的なエラー RPC サーバーを利用できませんアクセスが拒否されました。(Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))Get-CimClass:アクセスが拒否されました コメント PowerShell スクリプトの署名ディスカバリー用 Microsoft Just Enough Administration (JEA)