質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

1回答

7974閲覧

batファイルでイベントビューアーのログを取得したい。

Avent

総合スコア47

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

1クリップ

投稿2020/10/25 08:47

bat初心者です。

ファイル履歴を使ってバックアップを取ろうと思っているのですが、どうやらファイル履歴には「半角・全角のみ異なる同名のファイルが1組でも含まれていると全体のバックアップがされない」という重大な欠陥があるようです。
しかもバックアップされなかったときにエラー通知があるわけではなく、気づくことができないという不便さです。
しかしどうやらイベントビューアにはエラーログが残るようです。

ここからが本題です。
batファイルを定期的に実行して、イベントビューアのファイル履歴のイベントを定期的に取得し、新しいエラーが発生したら通知するという仕組みを作りたいと思っています。
batファイルで、イベントビューアーから特定のアプリケーションについての最新1件のログを取得するにはどのようにすればよいですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/10/25 08:55

バッチファイルに拘る理由があるんですか? PowerShellならGet-Eventlogコマンドレットを使えば簡単にできますが。 DOSコマンドでもイベントログは取得できるけど、その内容を解析して別の処理を行う、みたいな複雑な事をやるのはどうせ面倒なんで、だったら最初からPowerShell使えばいいと思いますが。
guest

回答1

0

wevtutilコマンドで出力できます。
https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/wevtutil

以下のイベントログがあったとして

ログの名前: Application ソース: CreateEvent Test 日付: 2020/10/26 0:23:16 イベント ID: 100 タスクのカテゴリ: なし レベル: エラー キーワード: クラシック ユーザー: DESKTOP-HOGE\fuga コンピューター: DESKTOP-HOGE 説明: Event Test イベント XML: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="CreateEvent Test" /> <EventID Qualifiers="0">100</EventID> <Level>2</Level> <Task>0</Task> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2020-10-25T15:23:16.785352800Z" /> <EventRecordID>226501</EventRecordID> <Channel>Application</Channel> <Computer>DESKTOP-HOGE</Computer> <Security UserID="S-1-5-21-1866945724-3151213130-3190196111-1011" /> </System> <EventData> <Data>Event Test</Data> </EventData> </Event>

wevtutilコマンドで以下のように出力できます。

cmd

1C:\WINDOWS\system32>wevtutil qe Application /c:1 /rd:true /f:text /q:"*[System[Provider[@Name='CreateEvent Test']]]" 2Event[0]: 3 Log Name: Application 4 Source: CreateEvent Test 5 Date: 2020-10-26T00:23:16.785 6 Event ID: 100 7 Task: N/A 8 Level: エラー 9 Opcode: 情報 10 Keyword: クラシック 11 User: S-1-5-21-1866945724-3151213130-3190196111-1011" 12 User Name: DESKTOP-HOGE\fuga 13 Computer: DESKTOP-HOGE 14 Description: 15Event Test

※ EventIDで絞り込むなら/q:"*[System[Provider[@Name='CreateEvent Test'] and EventID=102]]"のように絞り込みできます。
結果をパイプラインでFIND "Event[0]"とかに渡せば、ERRORLEVELを使用して条件分岐などできると思います。

投稿2020/10/25 16:00

編集2020/10/25 16:18
Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.H.

2020/12/08 03:53

あぁ放置が多い質問者さんだった。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問