2013-01-16 17 views
0

我試圖查詢應用程序事件日誌一段時間,以檢查確認應用程序備份狀態的特定事件。由於備份計劃設置下午10:00和晚上11:00之間,我試圖獲取有關事件ID信息18264.在特定時間段內查詢應用程序事件日誌

我用:

gwmi -computername somename -namespace root\cimv2 -query "Select EventCode from Win32_NTLogEvent where LogFile = 'Application' and EventCode = '18264'" 

現在,什麼情況是,我得到多於一個輸出。我想限制輸出爲1,這是基於最新的。例;昨天晚上10點到晚上11點之間獲取事件ID。我看到一列爲TimeWritten。有人可以幫忙嗎?謝謝!

回答

0

有特定的cmdlet用於讀取事件日誌,這些比使用WMI更容易。例如。

Get-WinEvent -ComputerName comp1,comp2 ` 
      -FilterHashtable @{LogName='application'; 
           starttime=([datetime]::today.AddDays(-1)); 
           endtime=([datetime]::Today); 
           id=1704} 

(添加爲清楚起見換行符)

這將返回從電腦從昨天comp1comp2所有事件#1704。查看Get-WinEventFilterHashtable參數(get-help get-WinEvent -param FilterHashtable)的幫助以獲取更多搜索條件(例如,您可以傳遞多個日誌名稱和ID)。

還有一個-MaxEvents參數可將輸出限制爲多個事件。

+0

此cmdlet僅適用於Windows Vista及更高版本。我忘了提及環境設置爲XP和Server 2003.所有服務器都是2003 :(我正在使用PowerShell 2.0 – Rajiv

+1

@Rajiv:在這種情況下,請查看'Get-EventLog-computerName c1 -logname application ...' (請參閱完整參數列表幫助)您需要使用'Where-Object'來按事件ID進行過濾 – Richard

+0

謝謝,您的建議已解決我的查詢。 – Rajiv

相關問題