本連載は、Windows PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「Get-EventLog」コマンドレットです。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。イベントログの管理で役に立つ「Get-EventLog」コマンドレットです。
Get-EventLogの概要 | 書式 | オプション
「Get-EventLog」は、Windowsの「イベントログ」を取得するためのコマンドレットです。イベントログは「イベントビューアー」と呼ばれるGUIの管理ツールで参照できますが、Windows PowerShellから取得することもできます。例えば、最新の何件かのイベントログだけを表示するように絞り込んだり、他のコマンドレットと組み合わせたりすることで、より便利に活用できます。
Get-EventLogコマンドレットの主なオプションは次の通りです。
オプション | 意味 |
---|---|
-LogName | 取得するイベントログの名前を指定する。省略可能 |
-List | イベントログの基本情報を取得する |
-Newest | 最新の任意の件数のものだけを取得する |
-After | 特定した日時よりも新しいものだけを取得する |
-Before | 特定した日時よりも古いものだけを取得する |
イベントログの名前を確認し、特定の名前のイベントログを取得するには「Get-EventLog -LogName <イベントログ名>」と指定します。「-LogName」オプションは省略することもできます。
以下の実行例では、「アプリケーションログ」を取得しています(画面1)。
Get-EventLog Application
(「アプリケーションログ」を取得する)
ログの名前やイベント数などを確認する場合には、「Get-EventLog -List」を実行します。なお、セキュリティログを取得するには管理者権限が必要になるため、Windows PowerShellは「管理者として実行」で利用してください。
また、イベントのレベルやIDを指定して絞り込みたい場合には、「Where-Object」コマンドレットを併用します。
以下の実行例では、アプリケーションログから「警告(Warning)」レベルのものだけを取得しています(画面2)。
Get-EventLog Application | Where-Object {$_.EntryType -eq "Warning"}
(「アプリケーションログ」から「警告(Warning)」だけを取得する)
Get-EventLogコマンドレットは、表示される情報が限定されています。その理由は、イベントログには非常に多くの情報が含まれており、全てを表示できないからです。詳細情報まで確認したい場合には、「Format-List」コマンドレットを併用します。
以下の実行例では、アプリケーションログの詳細情報を取得しています(画面3)。
Get-EventLog Application | Format-List
(「アプリケーションログ」の詳細情報を取得する)
Format-Listコマンドレットを使うと、詳細情報を含めてイベントログの全てを取得できますが、必要な「列」だけを取り出したい場合もあるでしょう。任意の列の情報だけを取り出したい場合には、「Select-Object」コマンドレットを併用して、取得したい列名を指定します。
以下の実行例では、アプリケーションログの詳細情報から「ログの生成日付」「インデックス」「レベル」「イベントID」「メッセージ」の列だけを取得しています(画面4)。
Get-EventLog Application | Select-Object TimeGenerated,Index,EntryType,InstanceID,Message
(「アプリケーションログ」から指定した列の情報を取得する)
Get-EventLogコマンドでは、最新の何件かを指定してイベントログを取得できます。その場合には、「-Newest」オプションを使って件数を指定します。
以下の実行例では、最新5件のアプリケーションログを取得しています(画面5)。
Get-EventLog Application -Newest 5
(「アプリケーションログ」の最新5件を取得する)
特定の日時以降のものだけを取得したい場合には、「-After」オプションを使用して日時を指定します。逆に、特定の日時より古いものだけを取得したい場合には、「-Before」オプションを使用します。日時は「YYYY/MM/DD」(年/月/日)で指定します。
取得したイベントログをCSV(comma-separated values:カンマ区切り)ファイルとして出力したい場合には、「Export-CSV」コマンドレットを併用します。ここでのポイントは、Export-CSVコマンドレットの“「-Encoding」オプションで「default」を指定する”ことです。「default」を指定しないと、日本語が文字化けしてしまうので注意してください。
以下の実行例では、アプリケーションログを取得して、CSVファイルに出力しています(画面6)。
Get-EventLog Application | Export-CSV -Encoding Default C:\Work\Applog.csv
(「アプリケーションログ」を取得して、CSVファイル(Applog.csv)に出力する)
株式会社ソフィアネットワークに所属。2009年よりマイクロソフト認定トレーナーとして、Windowsを中心としたサーバおよびクライアント管理、仮想化技術に関するトレーニングを提供している。無類の猫好き。共同執筆者である国井家で飼われている猫に夢中。
Copyright © ITmedia, Inc. All Rights Reserved.