イベントログからPCの起動ログを取得してみた

イベントログからPCの起動ログを取得してみた

私が子供の頃は、親のPCをこっそり使って、
ネットサーフィンを楽むような子供でした。
当時は知識が浅く、ブラウザの履歴を消せば証拠無しと思っていましたが、
今思えば、まだまだ使用した形跡は残っていました。

今回はそんなPCの使用履歴が溜め込まれている、
イベントログをご紹介します。
一例としてPCの起動ログを取得するバッチ処理も作ってみます。
※Windows11の内容でご紹介します。

イベントログとは?

イベントログは、PCの動作の記録です。
システムやアプリケーション、セキュリティに関連する
様々なイベントの記録や管理が行われるもので、
トラブルシューティング、監視、コンプライアンス管理に役立ちます。

イベントログはイベントビュアーから確認できます。
(「Windows」+「R」→「eventvwr」と入力しエンターで開けます)
PCの記録と聞いて想像するようなものは「Windowsログ」を開くと確認でき、
その中生も5つのカテゴリに分けられています。

アプリケーションログ
アプリケーションに関連するイベントを記録します。
アプリケーションの起動や終了、エラーなどが含まれます。

システムログ
オペレーティングシステム自体に関連するイベントを記録します。
システムの起動やシャットダウン、ドライバやサービスのエラーなどが含まれます。

セキュリティログ
セキュリティに関するイベントを記録します。
ユーザーのログオンとログオフ、アクセス権の変更、監査イベントなどが含まれます。

セットアップログ
システムのインストールやセットアップに関連するイベントを記録します。

フォワーディッドイベントログ
他のコンピュータから転送されたイベントを記録します。

イベントビュアーから確認することもできますが、
そのログを定期的に取得したり、使いやすい形に加工したりするために
バッチ処理の中でイベントログを取得するケースも多いと思います。
一例として、PCの起動ログを取得するバッチを作ってみましょう。

PC起動ログ取得バッチ

以下が処理の内容になります。
1週間分のPCの起動・終了のログを取得します。

@echo off
setlocal

REM 出力ファイルのパスを設定
set outputFile=C:\Path\To\Your\LogFile.txt

REM 現在の日付から7日前の日付を取得
for /f "tokens=1-4 delims=/ " %%i in ('powershell -command "Get-Date ((Get-Date).AddDays(-7)) -Format yyyy-MM-dd"') do set StartDate=%%i

REM 起動イベント(ID: 6005)とシャットダウンイベント(ID: 6006)を取得し、フィルターをかける
wevtutil qe System /q:"*[System[(EventID=6005 or EventID=6006) and TimeCreated[timediff(@SystemTime) <= 604800000]]]" /f:text > "%outputFile%"

echo 起動と終了のログを取得し、%outputFile% に保存しました。

endlocal
pause

コピペして、出力ファイルのパスをいじってあげればすぐ試せます。
作成したbatファイルを実行するとこんな感じで取得できます。

Event[0]
  Log Name: System
  Source: EventLog
  Date: 2024-12-08T21:17:36.8510000Z
  Event ID: 6006
  Task: N/A
  Level: 情報 
  Opcode: N/A
  Keyword: クラシック, 
  User: N/A
  User Name: N/A
  Computer: TABLET-OF2SBIK5
  Description: 
イベント ログ サービスが停止されました。 

Event[1]
  Log Name: System
  Source: EventLog
  Date: 2024-12-08T21:18:09.0970000Z
  Event ID: 6005
  Task: N/A
  Level: 情報 
  Opcode: N/A
  Keyword: クラシック, 
  User: N/A
  User Name: N/A
  Computer: TABLET-OF2SBIK5
  Description: 
イベント ログ サービスが開始されました。 

12/8の21:17に終了して、21:18に起動したんだな、ということが分かります。
出力内容を変えたり出力先を日付で変えたりして、
自分好みの処理にするともっと使いやすくなるかと思います。

まとめ

PC起動以外にも様々なログが溜め込まれていますので、
暇な時に眺めてみるのも楽しいかもしれません。
正常に動作しているように見えて、
思わぬログが出ているかもしれませんので、
健康診断くらいの気持ちでたま~に覗いてあげましょうね。