1
我正在使用下面的PowerShell函數來解析從遠程機器本地保存的事件日誌。不幸的是,我不能爲了我的生活而弄清楚如何將其轉儲到另一種格式,而不僅僅是轉到控制檯窗口。LogParser輸出和Powershell
當我插入一個INTO語句插入我的SQL查詢,我得到以下錯誤:
異常調用「執行」與「2」參數(S):「不能指定調用執行時INTO實體() [參數不正確。]「
任何幫助,非常感謝。 OK,將註釋轉換爲答案。
Function Parse-Event-Logs
{
$logtypes = "Application","System","Security"
foreach ($logtype in $logtypes)
{
$log_file = $LogsArchive + "\" + $folder + "\" + $logtype + ".evt"
$log_parser = new-object -comobject MSUtil.LogQuery
$log_type = new-object -comobject MSUtil.LogQuery.EventLogInputFormat
$log_type.resolvesids = $true
$log_type.fulltext = $true
$output_type = new-object -comobject MSUtil.LogQuery.NativeOutputFormat
$log_query = "SELECT * FROM $log_file WHERE EventTypeName = 'Error event' OR EventTypeName = 'Warning event'"
$log_recs = $log_parser.execute($log_query,$log_type)
try{
do{
$lp_return = @{}
$log_entry = $log_recs.getrecord()
$lp_return.add("Index",$log_entry.getvalue("RecordNumber"))
$lp_return.add("EntryType",$log_entry.getvalue("EventTypeName"))
$lp_return.add("EventID",$log_entry.getvalue("EventID"))
$lp_return.add("Message",$log_entry.getvalue("Message"))
$lp_return.add("Category",$log_entry.getvalue("EventCategoryName"))
$lp_return.add("CategoryNumber",$log_entry.getvalue("EventCategory"))
$lp_return.add("ReplacementStrings",$log_entry.getvalue("Strings"))
$lp_return.add("Source",$log_entry.getvalue("SourceName"))
$lp_return.add("TimeGenerated",$log_entry.getvalue("TimeGenerated"))
$lp_return.add("TimeWritten",$log_entry.getvalue("TimeWritten"))
$lp_return.add("UserName",$log_entry.getvalue("SID"))
$lp_return | new-hashobject
$log_recs.movenext()
} while ($log_recs.atend() -eq $false)
}
Catch {Write-Host "Event log is empty"}
}
}
使用ExecuteBatch你有更好的運氣嗎? – 2010-06-23 16:57:46
順便說一句你見過這個:http://muegge.com/blog/?p=65 – 2010-06-23 16:59:58
謝謝基思,ExecuteBatch做到了。 – Christopher 2010-06-23 17:35:58