これはなに?

Windowsイベント(イベントビューアで見られるあれ)を受信できるヤツら(クラス)の紹介です。

Windows Management Instrumentation使ってますか?
Windowsのマジ痒いところに手が届くできるヤツです。

、、、けど、今どきはあんまし使わないんですかね?Qiitaでも情報少ないですし。

Windows Management Instrumentation (WMI)に親しむ

WMIに親しむにはwbemtestアプリを使います。多分どなたのWindowsにも入っているはずです。

起動するとこんな感じ

image.png

おもむろに[接続…]ボタンを押してroot\subscription名前空間に接続します。

image.png

他にどんな名前空間があるかって?
すみません。知らないです。

[クラスの列挙…]ボタンを押して、スーパークラス名に__EventConsumerと入力します。

image.png

ずらずらとクラスが表示されます。
このクラス達を紹介したいと思います。

ActiveScriptEventConsumerクラス

ActiveScript(VBScriptやJScript等)を実行してくれます。
ActiveScriptでできることなら、なんでもできるはず。

MSDN → https://msdn.microsoft.com/ja-jp/library/aa384749(v=vs.85).aspx

主なプロパティ

プロパティ 説明
Name 一意な名前です。自由に設定できます。 “SendMail”
ScriptEngine 使用する言語です。 “VBScript”
ScriptText プログラムです。指定した言語で記述します。 (略)

CommandLineEventConsumerクラス

指定したコマンドを実行してくれます。

MSDN → https://msdn.microsoft.com/ja-jp/library/aa389231(v=vs.85).aspx

主なプロパティ

プロパティ 説明
Name 一意な名前です。自由に設定できます。 “SaveDB”
CommandLineTemplate 実行するコマンドラインです。引数も書けます。 “powershell.exe -ExecutionPolicy RemoteSigned InsertSql.ps1”

LogFileEventConsumerクラス

Windowsイベントをファイルに記録してくれます。

MSDN → https://msdn.microsoft.com/en-us/library/aa392277(v=vs.85).aspx

主なプロパティ

プロパティ 説明
Name 一意な名前です。自由に設定できます。 “WriteLog”
Text 記録する文字列です。 “%TargetInstance.Message%”
Filename 記録先のファイル名です。 “C:\var\log\error.log”

NTEventLogEventConsumerクラス

Windowsイベントをさらに別のイベントとして記録してくれます。
あんまり使う機会ないかも。

MSDN https://msdn.microsoft.com/ja-jp/library/aa392715(v=vs.85).aspx

SMTPEventConsumerクラス

Windowsイベントをメール送信してくれるのですが、SMTP認証に対応していなかったりで使えないので割愛です。

リンク