none
PowerShellスクリプトファイルをサービスに登録して実行できないでしょうか。WmiInstanceを使用したほうがよいでしょうか。 RRS feed

  • 質問

  • PowerShellスクリプトファイルをサービスに登録して実行できないでしょうか

    イベントログを監視するスクリプトを作成しました。

    実行してセッションが終了してしまうとイベントログの監視が停止してしまいますので、存在しないイベントログをwait-eventでまたせてスクリプトが終了しないようにしています。

    このスクリプトをバックグラウンドで実行したままにしておきたいのです。

    タスクスケジューラで起動すると当たり前ですが、状態が実行中のままになるのであまりこの方法は使いたくありません。

    起動するコマンドは、以下の通りです。

    Powershell.exe -File <スクリプトファイル(.ps1)>

    SCコマンドでは登録はできるもののサービスの起動で失敗してしまいます。(時間内に起動ができない旨のメッセージが表示されます)

    MOFを使用する方法もしくはWmiInstanceを使用する方法もあるかと思いますがフィルタで検知したイベントの情報をコンシューマーに引き渡せるかどうかがわからないため検討していません。

    フィルタで検知したイベントの情報をコンシューマーに引き渡すことができればWmiInstanceで行う方がよいと考えています。

    2016年3月18日 4:07

回答

  • 連続して書き込まれるイベントログを全て処理することができるかどうか検証した結果、ログの取りこぼしがないことが確認できたのでWmiInstanceに登録する方法を採用したいと思います。

    • 回答としてマーク nhy67ujm 2016年3月22日 3:28
    2016年3月22日 3:28

すべての返信

  • WmiInstanceを使用する方法で、フィルタで検知したイベントの情報をコンシューマに引き渡すことができたので

    WmiInstanceに登録する方法で少し検証してみたいと思います。

    wait-eventでは連続して書き込まれるイベントログを全て処理することができないことがあったので同様にすべての検知したイベントに対して処理ができないようなことがなければこちらの方法にしたいと思います。

    2016年3月19日 3:54
  • 連続して書き込まれるイベントログを全て処理することができるかどうか検証した結果、ログの取りこぼしがないことが確認できたのでWmiInstanceに登録する方法を採用したいと思います。

    • 回答としてマーク nhy67ujm 2016年3月22日 3:28
    2016年3月22日 3:28