連載
» 2016年10月26日 05時00分 UPDATE

Windows PowerShell基本Tips(9):【 Write-EventLog 】コマンドレット――Windowsのイベントをログに記録する

本連載は、Windows PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「Write-EventLog」コマンドレットです。

[国井傑(Microsoft MVP for Directory Services),株式会社ソフィアネットワーク]
「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、イベントをイベントログに記録する際に利用する「Write-EventLog」コマンドレットです。

Write-EventLogコマンドレットとは?

 「Write-EventLog」は、「イベントビューアー」にイベントログを作成するためのコマンドレットです。本来、イベントビューアーのイベントは、Windowsまたはアプリケーションからの命令によって記録されます。Write-EventLogコマンドレットを利用すると、管理者の手によってイベントを記録することができます。

 Write-EventLogコマンドレットは、コマンドプロンプトの「eventcreate」コマンドやLinuxの「logger」コマンドと同じ要領で使用できます。


Write-EventLogコマンドレットの書式

Write-EventLog [オプション]

※[ ]は省略可能な引数を示しています



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


画面1 画面1 アプリケーションログにイベントが記録されるようにWrite-EventLogコマンドレットを実行した

 この実行例で指定した「SecurityCenter」ソースでは、イベントID「100」に相当するメッセージがないことがイベントビューアーで示されています。しかし、「-Message」オプションで指定したメッセージは、正しく表示されていることが確認できます。



システムログにエラーイベントログを記録する

 Write-EventLogコマンドレットでシステムログとしてイベントを記録する場合は、コマンドレット実行に最低限必要なオプション(-LogName、-Source、-EventId、-Message)の他に「-EntryType」オプションを使用して、エラーイベントであることを明示します。

コマンドレット実行例

Write-EventLog -LogName System -Source EventLog -EventID 100 -EntryType Error -Message "コンピュータでエラーが発生しました"

(システムログにエラーイベントを記録する)(画面2


画面2 画面2 「-EntryType」オプションでエラーイベントであることを明示して、システムログに記録した

 「-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


画面3 画面3 コンピュータ「FS」からリモートコンピュータ「DC」にイベントを記録した。「コンピュータ」欄にイベントを書き込んだ「FS」の名前が記録されている


筆者紹介

国井 傑(くにい すぐる)

株式会社ソフィアネットワーク取締役。1997年よりマイクロソフト認定トレーナーとして、Active DirectoryやActive Directoryフェデレーションサービス(AD FS)など、ID管理を中心としたトレーニングを提供している。2007年よりMicrosoft MVP for Directory Servicesを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。