【 Write-EventLog 】コマンドレット――Windowsのイベントをログに記録する:Windows PowerShell基本Tips(9)
本連載は、Windows PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「Write-EventLog」コマンドレットです。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、イベントをイベントログに記録する際に利用する「Write-EventLog」コマンドレットです。
Write-EventLogコマンドレットとは?
「Write-EventLog」は、「イベントビューアー」にイベントログを作成するためのコマンドレットです。本来、イベントビューアーのイベントは、Windowsまたはアプリケーションからの命令によって記録されます。Write-EventLogコマンドレットを利用すると、管理者の手によってイベントを記録することができます。
Write-EventLogコマンドレットは、コマンドプロンプトの「eventcreate」コマンドやLinuxの「logger」コマンドと同じ要領で使用できます。
Write-EventLogコマンドレットの主なオプション
Write-EventLogコマンドレットの主なオプションは次の通りです。
オプション | 意味 |
---|---|
-LogName | 記録するイベントの種類を指定する |
-Source | 記録するイベントのソースを指定する |
-EventId | 記録するイベントのイベントID番号を指定する |
-Message | 記録するイベントの説明文を指定する |
-EntryType | 記録するイベントのレベルを指定する。省略可能 |
-Category | 記録するイベントの「タスクのカテゴリー」を指定する。省略可能 |
-ComputerName | イベントを記録するコンピュータ名を指定する。省略可能 |
アプリケーションログにイベントを記録する
Write-EventLogコマンドレットでアプリケーションログとしてイベントを記録する場合は、「-LogName」「-Source」「-EventId」「-Message」の4つのオプションが実行時に最低限必要になります。「-Source」は、イベントビューアー内で既に使用されている「ソース名」を指定します。既存のソース名は、イベントビューアーで確認できます。
以下の実行例では、Write-EventLogコマンドレットの実行に最低限必要なオプションだけを指定して、アプリケーションログの「SecurityCenter」ソースにイベントID「100」番を指定してイベントを記録しています。
コマンドレット実行例
Write-EventLog -LogName Application -Source SecurityCenter -EventID 100 -Message "コンピュータのセキュリティ維持に必要なアプリケーションは起動しています"
(アプリケーションログにイベントを記録する)(画面1)
この実行例で指定した「SecurityCenter」ソースでは、イベントID「100」に相当するメッセージがないことがイベントビューアーで示されています。しかし、「-Message」オプションで指定したメッセージは、正しく表示されていることが確認できます。
システムログにエラーイベントログを記録する
Write-EventLogコマンドレットでシステムログとしてイベントを記録する場合は、コマンドレット実行に最低限必要なオプション(-LogName、-Source、-EventId、-Message)の他に「-EntryType」オプションを使用して、エラーイベントであることを明示します。
コマンドレット実行例
Write-EventLog -LogName System -Source EventLog -EventID 100 -EntryType Error -Message "コンピュータでエラーが発生しました"
(システムログにエラーイベントを記録する)(画面2)
「-EntryType」オプションは「Information」「Warning」「Error」「SuccessAudit」「FailureAudit」の5つが用意されており、オプションを指定しなかった場合には「Information」を指定したものとして処理されます。
リモートコンピュータにイベントを記録する
「-ComputerName」オプションを利用すると、Write-EventLogコマンドレットを実行するコンピュータとは別のコンピュータ上にイベントを記録することができます。
ただし、「-ComputerName」オプションを利用する場合は、“イベントを記録するコンピュータの管理者権限を持つユーザー”でコマンドレットを実行する必要があります。
以下の実行例では、イベントを記録するコンピュータ「DC」と同じActive Directoryドメインに参加するコンピュータ「FS」に管理者ユーザーでサインインして、Write-EventLogコマンドレットを実行しています。
コマンドレット実行例
Write-EventLog -LogName Application -Source EventSystem -EventID 100 -ComputerName dc -Message "リモートコンピュータにイベントを記録しました"
(リモートコンピュータ「DC」にイベントを記録する)(画面3)
筆者紹介
国井 傑(くにい すぐる)
株式会社ソフィアネットワーク取締役。1997年よりマイクロソフト認定トレーナーとして、Active DirectoryやActive Directoryフェデレーションサービス(AD FS)など、ID管理を中心としたトレーニングを提供している。2007年よりMicrosoft MVP for Directory Servicesを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。
Copyright © ITmedia, Inc. All Rights Reserved.