[Windows] Windows Management Instrumentation (WMI)にある__EventConsumerクラス達
これはなに?
Windowsイベント(イベントビューアで見られるあれ)を受信できるヤツら(クラス)の紹介です。
Windows Management Instrumentation使ってますか?
Windowsのマジ痒いところに手が届くできるヤツです。
、、、けど、今どきはあんまし使わないんですかね?Qiitaでも情報少ないですし。
Windows Management Instrumentation (WMI)に親しむ
WMIに親しむにはwbemtestアプリを使います。多分どなたのWindowsにも入っているはずです。
起動するとこんな感じ
おもむろに[接続…]ボタンを押してroot\subscription
名前空間に接続します。
他にどんな名前空間があるかって?
すみません。知らないです。
[クラスの列挙…]ボタンを押して、スーパークラス名に__EventConsumer
と入力します。
ずらずらとクラスが表示されます。
このクラス達を紹介したいと思います。
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認証に対応していなかったりで使えないので割愛です。