このエントリーをはてなブックマークに追加


PowerShellでイベントログを取得するサンプルコード

PowerShellを使ってイベントログを取得するサンプルコードを以下に記します。
動作確認はPowerShellv4.0を使用しました。


関連記事

Get-WinEventコマンドレットを使用してイベントログを収集

以下にGet-WinEvnetコマンドレットを使用したサンプルコードを記します。

イベントログを取ってみる

以下のサンプルは、自機のイベントログを対象とし、ログの対象は、「システム」、ログレベルは「エラー」
対象時間は24時間前から現在までと指定しています。

$hostname = "localhost"

$filter = @{}
$filter.Add("LogName", "SYSTEM")
$filter.Add("Level", 2)                            # LogLevel 1:Critical, 2:Error, 3:Warning
$filter.Add("StartTime", (Get-Date).AddHours(-24)) # Now - 24hour
$filter.Add("EndTime", (Get-Date))                 # Now

Get-WinEvent -ComputerName $hostname -ErrorAction SilentlyContinue -FilterHashtable $filter

ハッシュ変数$filterにStartTimeとEndTimeを指定していますが、省略可能です。
ログレベル(Level)も省略可能です。

ソースを指定する場合は、以下のようにハッシュにSourceを追加します。
以下のサンプルでは、Service Control Managerを指定した例です。
イベントビューアでソースの部分になります。

$hostname = "localhost"
$source = "Service Control Manager"

$filter = @{}
$filter.Add("LogName", "SYSTEM")
$filter.Add("Level", 2)                            # LogLevel 1:Critical, 2:Error, 3:Warning
$filter.Add("StartTime", (Get-Date).AddHours(-24)) # Now - 24hour
$filter.Add("EndTime", (Get-Date))                 # Now
Get-WinEvent -ComputerName $hostname -ErrorAction SilentlyContinue -FilterHashtable $filter | ? { $_.ProviderName -eq $source }

$hostnameに遠隔マシンを設定すれば、サーバの情報も取得することができます。

以上、Get-WinEventコマンドレットを使用してイベントログを取得する方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-12-30 (月) 11:06:00