none
バックアップしたイベントログ(evtxファイル)のCSVファイル化について

    質問

  • Windows Server 2008 で構築しているシステムにて、定期的にイベントログのバックアップを取得しています。

    古いイベントログを調査する際に、バックアップしたevtxファイルをイベントビューアで開いて閲覧していますが、
    イベントビューアの動作が重く(ハングすることもしばしば)扱いづらいと感じています。

    バックアップしたevtxファイルを他のツールを導入することなくコマンドベースの作業(Windowsのコマンド、或いはWindows Shell)で
    CSVファイルすることは可能でしょうか。

    ご教示の程、よろしくお願いいたします。

    2015年2月10日 8:24

回答

  • チャブーンです。

    原則的にMessageは複数行ある場合、「そのまま表示」されますので、Excelで開いた場合1セル内に複数行表示されます。どうしても1行にまとめたい場合、以下のように行えば可能ではあります(メッセージ内改行を「;」に置き換えます)。

    Get-WinEvent -Path <バックアップログのフルパス> | Select timeCreated,levelDisplayName,providerName,id,@{name="message";expression={$_.message.Replace("`n",";")}}| Export-CSV <CSVファイルのフルパス> -Encoding Default

    うえのスクリプトは、イベントログのうち主要な内容を選んでリストアップしています。「ソース」にあたるものはproviderNameとなりますが、厳密には名前が違います。たとえばUserPNPであれば「Microsoft-Windows-UserPNP」という記述になりますが、ソース名を含んでいますので事実上ご要望は満たせると思います。


    2015年2月12日 5:44
    モデレータ

すべての返信

  • チャブーンです。

    PowerShellを使うという方法もあると思います。たとえばしたのような感じです。

    Get-WinEvent -Path <バックアップログのフルパス> | Export-CSV <CSVファイルのフルパス> -Encoding Default

    2015年2月12日 2:08
    モデレータ
  • 藤森幸治 様

    ご回答、拝見いたしました。

    Log Parserの導入も検討いたしましたが、現在運用中のシステムであり、なるべく新たにツールを導入することなくイベントログ取得の負担軽減ができればとご相談いたしました。

    他のシステムでは事前にツールを導入しておくことも視野に入れたいと思います。

    早々のご回答ありがとうございました。

    2015年2月12日 2:35
  • チャブーン 様

    ご回答、拝見いたしました。

    PowerShellで実現できるとのことで、早速ご教示いただいたコマンドを試してみました。

    私がイメージしていたものとほぼ同程度の出力が得られております。

    もしご存知でしたら加えてご教示いただきたいのですが、
    Massage列が出力されていない項目があるのですが、これはどのような仕様でしょうか?
    (複数行のMasageだと出力されていないように見えます。)

    また、イベントログのソースを合わせて出力することは可能でしょうか?
    IDや時刻は今のコマンドで出力できておりましたので、イベントログのソースさえ分かれば、運用に耐えうると考えております。

    恐れ入りますが、追加の情報をお持ちでしたらご教示の程よろしくお願いいたします。

    2015年2月12日 2:52
  • チャブーンです。

    原則的にMessageは複数行ある場合、「そのまま表示」されますので、Excelで開いた場合1セル内に複数行表示されます。どうしても1行にまとめたい場合、以下のように行えば可能ではあります(メッセージ内改行を「;」に置き換えます)。

    Get-WinEvent -Path <バックアップログのフルパス> | Select timeCreated,levelDisplayName,providerName,id,@{name="message";expression={$_.message.Replace("`n",";")}}| Export-CSV <CSVファイルのフルパス> -Encoding Default

    うえのスクリプトは、イベントログのうち主要な内容を選んでリストアップしています。「ソース」にあたるものはproviderNameとなりますが、厳密には名前が違います。たとえばUserPNPであれば「Microsoft-Windows-UserPNP」という記述になりますが、ソース名を含んでいますので事実上ご要望は満たせると思います。


    2015年2月12日 5:44
    モデレータ
  • チャブーン 様

    ご回答ありがとうございます。

    作成していただいたスクリプトで、非常にすっきりと欲しい情報を得ることができました。
    (やはり、一部表示されないメッセージはありますが、IDとソースで判別できる範囲だと思います)

    今後活用させていただきます。

    2015年2月12日 23:51