2012-04-18 7 views
1

Iveは過去10日間アプリケーションからのイベントログを取得するための小さなスクリプトを作成しましたが、エラーが表示されます。エラーが表示される理由は何ですか?Powershell:イベントログのフィルタリング

Where-Object : Cannot bind parameter 'FilterScript'. Cannot convert value "False" to type "System.Management.Automation.ScriptBlock". Error: "Invalid cast from 'System.Boolean' to 'System.Management.Automation.ScriptBlock'."

#Sets the application log to query 
$Log ="Application" 
$FilterHashTable = @{LogName=$Log} 

#stores the computer name 
$ComputerName = $env:COMPUTERNAME 

#sets the date 10 days ago 
$DeleteDate = Get-Date 
$DeleteDate = $DeleteDate.AddDays(-10) 
Write-Verbose $DeleteDate 

#retrieve WMIevent and logs the information 
$Winevent = Get-WinEvent -ComputerName $ComputerName -FilterHashTable $FilterHashTable -ErrorAction SilentlyContinue 

# Filter on time 
$Winevent | where-object ($_.timecreated -gt $DeleteDate) 

答えて

3

Where-Object ScriptBlockパラメーターを必要とする - {...}あなたのフィルタロジックを含むように(...)括弧ない中括弧を使用します。

現在、PSはフィルタとして適用する代わりに条件をチェックしてブール値を返しています。

+0

ありがとう、どこでオブジェクトを見ても、私は問題を見ることができませんでした。ありがとう。 $ deletedateが8/04/12であっても残った1つの問題はまだ残っていますが、これはまだ26/01/2012 – resolver101

+0

@ resolver101のオブジェクトを表示しています。おそらく地域の設定です。あなたの地域はどのような窓口に設定されていますか? – JNK

+0

英国英国。 – resolver101

関連する問題