※自己解決に伴い、余裕が出来たところで記述内容があまりにもひどかったので今後参考にする人の為にも内容修正しました。追記個所は太字にしています。
###実現したいこと
PowerShellにこだわりはないので、WindowsServer2008でイベントビューアにPerflibのイベントを出力させたいです。
###背景
WindowsServer2008で出ているアラートがあるのですが、そのアラートを抑止する予定です。監視ソフトは日立のJP1なのですが、日立のサイトには以下の記述があり、下記の文字列が出ないようにイベントログを出力しないと、作業時の正常性確認として正しく動作を確認したとは言えないのではないかと考えていました。
(よくよく見返してみると文言微妙に違いましたね…。テスト環境では正しく動いていたので「トラップできない可能性もある」程度の意味合いだったのかと思ってましたが…。)
イベントログトラップ動作定義ファイル(Windows限定)
メッセージDLLが正しく設定されていない場合,イベントビューアに「メッセージDLLファイルがない可能性があり,説明が見つからない」という旨の文字列が出力されます。この文字列はイベントビューアが出力している文字列のため,イベントログトラップではトラップできません。
###発生している問題
会社でイベント監視のテストを行っていたところ、テストメッセージの出力自体はできるが、「ソース (<application name>) 内のイベント ID (<####>) に関する説明が見つかりませんでした。」という文言も入ってしまう事象が発生しました。
監視ソフトのマニュアルによると、これになってしまうと正しくフィルタの動作をしてくれないらしく、テストがうまくいきません。(本メッセージはメッセージの登録自体が無いと発生するアラートのようですが、該当PCから出ていることは確認しており、イベントビューアのコンピュータもそのPC自身であることを確認しています。)
家のPC(Windows 10 Pro)でも気になったので以下のコードでPowershellにて実行してみました。
Write-EventLog -LogName Application -Source Perflib -EventID 1020 -EntryType Error -Message '必要なバッファー サイズが、"LSM" サービスの "C:\Windows\System32\perfts.dll" 拡張可能カウンター DLL の Collect 関数に渡されたバッファー サイズを超えています。指定されたバッファー サイズは 29568、必要なサイズは 39112 でした。'
※可読性の為、改行しています。本来は1行です。
実行したところ、イベントビューアへの出力は以下の通りになりました。
「必要なバッファー サイズが、"%2" サービスの "%1" 拡張可能カウンター DLL の Collect 関数に渡されたバッファー サイズを超えています。指定されたバッファー サイズは %3、必要なサイズは %4 でした。」
ダブルクォーテーションのせいかもと思い、外したりも試しましたが、変わりませんでした。
いくつかの可変値について、なんらかの値の渡し方があるのだろうと推察しますが、ネットで調べてもこういった値の渡し方がわかりませんでした。(WindowsServer2008と同じように可変値が正しく渡せてないために起きているものだと私の中では思っていたので、類似事例として掲載しました。)
正しくイベントビューアにイベントを出力する方法を知りたいです…。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/07 13:45 編集