【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
Windows TIPS
[Management]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

wmicコマンドでイベント・ログを表示する

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2008/04/25
対象OS
Windows 2000
Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
WMIとwmicコマンドを利用すると、システムに関するさまざまな情報を取得したり、操作したりできる。
wmicでイベント・ログを表示させるには、wmic nteventコマンドを利用する。
検索条件はwhere、出力フォーマットはlist /formatオプションでそれぞれ指定する。

解説

 イベント・ログは一般的にはイベント・ビューアで閲覧することが多いが、TIPS「コマンド・プロンプトでイベント・ログを表示する」で紹介したeventquery.vbsコマンドを使えば、コマンド・プロンプト上から取得、操作できるので、バッチ・コマンドなどから利用する場合はこの方が便利である。TIPS「WMIとwmicコマンドを使ってシステムを管理する(基本編)」では、WMIの基本的な使い方を紹介しているが、WMI+wmicを使っても、同様のことを行える(実際にはeventquery.vbsはWMIを使って実装されている)。wmicを使ってWMIを直接利用すれば、より複雑で柔軟な検索条件を指定したり、多様な出力形式を得ることができる。本TIPSでは、wmicを使ったイベント・ログのクエリ方法について解説する。

操作方法

wmicでイベント・ログを取得する

 (WMIと)wmicコマンドでイベント・ログを取得するには、「wmic ntevent」というコマンドを実行する。wmicはWMIを呼び出すためのコマンドライン・インターフェイスで、nteventはイベント・ログ・オブジェクトのエイリアスを示す名前である。だがこのコマンドをそのまま実行すると、イベント・ログに含まれるすべてのイベントを取得しようとするので、非常に時間がかかるし、大量の出力が得られるので、ほとんど役に立たない。そのため、通常は何らかの条件を付けて検索することになるだろう。

 取得するイベントを限定するには、「wmic ntevent where 〜」に続けて、条件を指定する。where条件句では、(キーワードがwhereとなっていることからも分かるように)SQLのクエリ文のような構文が使える。条件式中でどのようなフィールド名が利用できるかは「wmic ntevent list /?」を実行すれば確認できる。

C:\>wmic ntevent list /? ……ヘルプの表示

プロパティ一覧の操作です。
使用法:

LIST [<list format>] [<list switches>]

次の LIST 形式が利用可能です:

BRIEF         - Category, Category String, Event Code, Event Identifier, Type Event, Insertion Strings, Log File, Message, Record Number, Source Name, Time Generated, Time Written, Type, User Name
FULL                      -
……(以下省略)……

 この「BRIEF」の部分に、イベント・ログで表示されるフィールドの一覧が表示されているので、これらを使って取得する条件を記述すればよい(実際に出力させてフィールド名を調べてもよい)。

フィールド名 内容
ComputerName コンピュータ名
LogFile ログ・ファイルの種類。「Application」「Security」「System」「DNS Server」「Windows PowerShell」……
Message ログ・メッセージ
SourceName ソース名
TimeGenerated イベントの生成時刻。「YYYYMMDD」か「YYYYMMDDHHMMSS.0+540」(前者はGMT、後者はJST)
Type イベントの種類
UserName ユーザー名
where句で利用できる主要なフィールド名
これらの条件を組み合わせてwhere句を組み立てるとよい(大文字/小文字の違いは無視される)。

イベント・ログの取得例

 以下にいくつかの例を示しておく

本日以降のログを取得する例
  今日の日付が「2008年4月25日」だとすると、次のような文で本日のシステム・ログが取得できる(取得するログの種類を限定しないと、すべてのログが検索対象となる)。なお、wmicをインタラクティブ・モードで使用する場合は、先頭の「wmic」は省いて入力すること。

wmic ntevent where "(logfile='system' and timegenerated >= '20080425')"

 ここでは日付を「'20080425'」としているが、これだとGMTで計算されるようである。日本の標準時間(JST)はGMTとは9時間の時差があるので、この指定だと深夜0:00〜午前9:00までの分が除外されてしまう。正確に深夜0:00からも含めるなら「'20080425000000.0+540'」とするのがよい(しかもなぜか、この形式の方がクエリが速い。可能な限りこの形式を使うのがよいだろう)。

エラー・ログのみを取得する例
  エラー・ログを抽出するには、typeがerrorのイベントを検索する。

wmic ntevent where "(logfile='system' and timegenerated >= '20080420000000.0+540' and type='error')"

 より複雑な条件を指定したければ、さらにandなどで条件を追加すればよい。

出力形式の指定

 wmic nteventコマンドでは、出力形式をいくつか選ぶことができる。利用可能な出力形式の一覧は「wmic ntevent list /format /?」で確認できる。

C:\>wmic ntevent list /format /?

XML 結果を処理するキーワードと XSL ファイル名です。
使用法:

/FORMAT:<format specifier>
注意: <formatspecifier> : ((<transformname>|<transformname> : <paramstring>)[,<formatspecifier>]).
where <paramstring>:((<parametername>=<value>)[,<paramstring>]).

注意: <transformname> は <key word> または <xsl file name> です。

Keywords:

CSV ……以下、フォーマットの一覧
HFORM
HMOF
HTABLE
HXML
LIST
RAWXML
TABLE
VALUE
htable-sortby
htable-sortby.xsl
texttablewsys
texttablewsys.xsl
wmiclimofformat
wmiclimofformat.xsl
……(以下省略)……

 これらの形式を指定して出力させ、結果をファイルにリダイレクトすれば、フォーマット済みのファイルが得られる。例えば、HTMLの表形式で出力させるには次のようにする。

wmic ntevent where "(logfile='system' and timegenerated >= '20080420' and type='Error')" list /format:HTABLE > errorlog.html

 実際に出力されたデータは、次のようになる。End of Article

出力したログの例
システム・ログからエラーのエントリだけを集めて、HTABLE形式で出力させた場合の例。

この記事と関連性の高い別のWindows TIPS
wmicコマンドでシステムの構成を設定/変更する
WMIとwmicコマンドを使ってシステムを管理する(基本編)
PowerShellでWMIを利用するためのコードを生成する
WMIを使うスクリプトを簡単に作成する
イベント・ログをトリガーにしてメールを送信する(基本編)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?