1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

wevtutilコマンドの/qオプションに抵抗感がある

Posted at

前提や背景など

Windowsサーバの保守をやっていると、時々お世話になる wevtutil というコマンドがあります。このコマンドは、Windowsのイベントログをごにょごにょする機能があるのですが、自分の場合はほとんどイベントログをエクスポートするのに使います。

典型的な使い方は以下のようになります。

wevtutil epl system "c:\temp\$($env:computername)_system.extx"

ただ、上記のようにエクスポートすると全部のログをエクスポートしてしまうので、ファイルサイズが大きくなりすぎて後々の取り扱いが面倒になったりします。そこで、実作業としては「期間」や「イベントソース」で絞り込みをすることが多いです。

wevtutil コマンドには絞り込みを行うオプションとして、/q があるのですが、絞り込み条件を xpath で指定する必要があり、その場で組み立てるのはハードルが高いです。

例えば「過去7日間」でフィルタする例は以下のようになります。

wevtutil epl system "c:\temp\$($env:computername)_system.evtx" /q:"*[System[TimeCreated[timediff(@SystemTime) <= 604800000]]]"

普段から xpath に慣れ親しんでいて、Windowsのイベントログにも精通していれば自由自在なのかもしれませんが、中々そんなことができる人は居ないと思います。

一方で、「期間を指定してエクスポートしたいならイベントビューアのフィルターを使えば良い」という考え方もあります。サーバ1台だけならこの方法でも良いのですが、複数台になると途端に手間が増えて時間がかかるため、コマンド一撃で済ませたい場面は多いです。

最初の1台だけイベントビューアを使って残りはコマンド

前置きが長くなりましたが、現実的には「最初の1台だけイベントビューアを使って残りはコマンド」というやり方をします。

イベントビューアのフィルターの設定画面には、「XML」というタブがあります。この「XML」タブには、フィルター画面で設定した通りの条件で xpath が生成されます。

image.png
 ↓
image.png

この、<Select ...></Select> に囲まれた部分が xpath となっているので、これをコピーしてコマンドを作れば2台目以降はコマンド一撃で作業を終わらせることができます。

尚、イベントビューアの「XML」タブに表示されている不等号(><)は、XML のルールに基づいて &gt;&lt; に変換されているため、コマンドとして実行するときは、元の形に戻しててる必要があります。

wevtutil epl system "c:\temp\$($env:computername)_system.evtx" /q:"*[System[(EventID=1201) and TimeCreated[timediff(@SystemTime) <= 604800000]]]"

おわりに

同僚が困っていたので書きました。前提があるのは一般化のためです。稚拙なのは許してください。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?