背景のビット:
テストの開始時にいくつかのパフォーマンス カウンターをリモートで開始および停止し、テストの終了時にそれらを停止しようとしています。Win2003 マシンの自動テスト フレームワークからこれを実行しています。テスト フレームワークは、コンソールを起動せずにコマンドを実行します。テスト対象のシステムの一部は Win2008 を実行しています。サーバーに割り当てられた役割に基づいてパフォーマンス カウンターを選択するスクリプトを作成しました。
私の問題:
logman
OS の新しいバージョンを実行しているマシンでは、カウンターを開始または停止できません。psexec
logman をリモートで実行するために使用できますが、テスト フレームワークから実行すると psexec が断続的にハングするのが好きです。コマンドラインから手動で正常に実行されます。これは、呼び出しプロセスがコンソールを提供していないか、同様の扱いにくさがあるためだと推測しています。これについて私にできることはあまりありません(GRRRR)- WMI を使用して logman をリモートで実行
win32_process
し、バッチ スクリプトから呼び出す PowerShell スクリプトを作成しました。これは正常に動作します。ただし、テスト フレームワークは stderr の内容に基づいて成功シナリオと失敗シナリオを決定します%ERRORLEVEL%
が、WMIwin32_process
ではどちらにもアクセスできません。そのため、カウンターが起動しない場合でも、テストは続行され、全員の時間が無駄になります。
リモートマシンでプログラムを実行したり、プログラムのリターンコードをチェックしたり、stderr を呼び出し元にパイプしたりできるソリューションを探しています。簡単にするために、通常の Win2k3 ボックスで利用できるツールで記述する必要があります。物事をログ ファイルにダンプし、それらを再度読み戻す複雑なスクリプトのコレクションを使用したくありません。
誰かが同様の問題を抱えていて、それを解決しましたか、または少なくとも提案がありますか?