- 追加された行はこの色です。
- 削除された行はこの色です。
#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)