2012-04-18 2 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

Спасибо, независимо от того, насколько я посмотрел объект where, я не мог видеть проблему. Благодарю. Еще одна проблема осталась, хотя $ deletedate - 8/04/12, она все еще показывает объекты с 26/01/2012 – resolver101

+0

@ resolver101, вероятно, это региональная настройка. Каков ваш регион в окнах? – JNK

+0

английском объединенном королевстве. – resolver101

Смежные вопросы