Windows OS に対しDiscoveryが不定期に失敗する対策
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
WMI を利用しWindows OSに対しDiscoveryを実行すると、時々Discoveryが予期せず失敗する現象が発生しました。
以下のログが出力
内容:
「Could not find any valid credentials to authenticate the target for type [Windows] with credential tag [xxxxxxx]」
内容から認証エラーと思い、該当アドレスに対、個別で認証テストをすると成功する。
■ MID サーバログの確認結果
MID サーバのログにて、以下のエラーメッセージを確認しました。
本エラーは、PowerShell セッションが同時に多数実行され、MID サーバ側で処理待ち(リソース枯渇)が発生している状態を示しているようです。
Discovery schedule において 1スケジュールで40台程度のWindows OS を検出するように設定しており、パワーシェルが同時に40以上起動していました。
ログ内容
----------------------------------
PowerConsole is in the busy state and cannot run any commands
2025-12-22T16:08:07.133+0900 WARN (Worker-Standard:HorizontalDiscoveryProbe-6550c618c3c63e108f4cb93599013127) [APowershellSession:371] Fatal Exception
com.snc.automation_common.integration.exceptions.PowerConsoleCommandException: PowerConsole is in the busy state and cannot run any commands
at com.service_now.mid.win.powershell.api.PowerConsole.execute(PowerConsole.java:196)
at com.service_now.mid.win.powershell.api.APowershellSession.executeWithoutResultExtraction(APowershellSession.java:356)
----------------------------------
■対策方法
Mid-Server のスペックをメモリやスペックを上げてもWindows OS そのもののパワーシェル起動上限にひっかかっているとみており、
スペックを上げるより、同時起動数を調整する事で対策するのがベターと判断。
製品ドキュメントから:製品ドキュメント | ServiceNow から Mid-Server のパワーシェル起動上限を修正して対応を行いました。
Mid-Server にある、config.xml に以下を追加して対応。
config.xml ァイルの所在。
C:\<Mid-Server Installed Path>\agent
追加パラメータ (パワーシェルの同時起動数を3に設定)
<parameter name="mid.powershell_api.session_pool.max_size" value="3"/>
パラメータ追加後、Mid-Server のサービスを再起動。
■効果確認
Discovery 実行を行い、エラー発生しない点を確認。
さらにDiscovery実行中のMID Serverにおいて、タスクマネージャーを用いてPowerShellの起動数を確認しました。
その結果、エラーが発生しなくなり、本現象が回避されることを確認しました。
同時起動数のチューニングは引き続き必要となりますが、並列起動数が減少することでDiscoveryの処理時間は増加するものの、エラー解消の効果が上回ると判断し、本設定で進める方針としました。
タスクマネージャの確認内容
対策前 | 対策後 |
|
|
