#navi(../) * PowerShellでイベントログを取得するサンプルコード [#ffe9f678] PowerShellを使ってイベントログを取得するサンプルコードを以下に記します。~ 動作確認はPowerShellv4.0を使用しました。 #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 関連記事 [#a6e4d6b6] -[[PowerShellスクリプトを起動できるようにする>PowerShell/PowerShellスクリプトを起動できるようにする]] * Get-WinEventコマンドレットを使用してイベントログを収集 [#udf1a0bf] 以下にGet-WinEvnetコマンドレットを使用したサンプルコードを記します。 ** イベントログを取ってみる [#x9eeaf89] 以下のサンプルは、自機のイベントログを対象とし、ログの対象は、「システム」、ログレベルは「エラー」~ 対象時間は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コマンドレットを使用してイベントログを取得する方法でした。 #htmlinsertpcsp(win-btm.html,win-sp.html)