PowerSehllで任意のイベントログを出力する方法 †
PowerShellを使って、イベントログを出力しイベントビューアーで確認するまでの操作手順となります。
New-EventLog, Write-EventLog コマンドレットを使ったサンプルスクリプトと実行結果を以下に記します。
関連記事 †
動作確認環境 †
New-EventLog, Write-EventLog †
New-EventLogでイベントソースを作成、Write-EventLogでイベントログを出力します。
イベントソースがない場合は、先にNew-EventLogコマンドレットでイベントソースを作成する必要があります。
New-EventLog でイベントソースを登録 †
New-EventLogでイベントソースを作成する必要があります。
イベントソースを作成せずに、Write-EventLogを実行する以下のようにエラーメッセージが表示されます。
Write-EventLog : ソース名 "SakuraTest" はコンピューター "localhost" に存在しません。
発生場所 行:1 文字:1
+ Write-EventLog -LogName Application -Source SakuraTest -EntryType Inf ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Write-EventLog]、InvalidOperationException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteEventLogCommand
上記では、イベントソース名が SakuraTest としています。
- PowerShellを管理者として実行で起動してください。
- New-EventLog コマンドレットでイベントソースを作成します。
以下のコマンド例では、イベントソース名を SakuraEvtSrc としています。
New-EventLog -LogName Application -Source SakuraEvtSrc
上記の例では、WindowsログのApplicationにSakuraEvtSrcというイベントソース名を作成しました。
Write-EventLogでイベント出力 †
Write-EventLogコマンドレットを使って、イベントログにインベントを出力します。
Write-EventLogコマンドレットは一般ユーザで動作します。(管理者として実行は不要)
- 以下のコマンドでイベントログにイベントを登録します。
Write-EventLog -LogName Application -Source SakuraEvtSrc -EntryType Information -EventId 1 -Message "Hello, world"
上記の例では、イベントタイプを Information(情報)、イベントIDが1、メッセージが Hello, world で登録しました。
以下、イベントタイプを Information(情報), Warning(警告), Error(エラー)でイベントを出力したコマンドとキャプチャになります。
PS C:\> Write-EventLog -LogName Application -Source SakuraEvtSrc -EntryType Information -EventId 1 -Message "INFOMATION"
PS C:\> Write-EventLog -LogName Application -Source SakuraEvtSrc -EntryType Warning -EventId 10 -Message "WARNING"
PS C:\> Write-EventLog -LogName Application -Source SakuraEvtSrc -EntryType Error -EventId 100 -Message "ERROR"
イベントログビューアー(表示されない場合は、最新の情報に更新アイコンをクリックしてください。)
以上、PowerShell の New-EventLog, Write-EventLog コマンドレットをつかったイベントログの出力方法でした。