我有一台 Windows Server 2008 R2,配置為接收來自大量客戶端 (Windows 7\8.1) 的轉送事件。它從 WLAN-Autoconfig 來源接收事件 ID 範圍為 8000-8006 的事件(伺服器沒有來源,但可以將其新增至訂閱以便能夠從該來源接收)。
伺服器安裝了美國英語並具有挪威語言環境\文化。客戶端安裝了 NB-no 挪威語,並且有挪威語言環境\文化。
我遇到的第一個問題是伺服器無法正確讀取事件。它給出了這個錯誤:
找不到來源 Microsoft-Windows-WLAN-AutoConfig 的事件 ID 8000 的描述。您的本機上未安裝引發此事件的元件,或安裝已損壞。您可以在本機上安裝或修復該元件。
如果事件源自另一台計算機,則顯示資訊必須與事件一起保存。
這不是一個主要問題,因為事件物件和內容仍然到達並且可以用於其收集的目的。
但後來,當嘗試編寫 Powershell 腳本來取得和過濾這些事件時,我遇到了一些問題。
首先我嘗試了這個方法:
Get-WinEvent -ComputerName $ServerName -FilterHashtable @{logname = 'ForwardedEvents'; id = 8000, 8001, 8002, 8003; StartTime = $StartDate; EndTime = $EndDate } -MaxEvents 3
但這個查詢沒有回傳任何值。由於某種原因,從過濾器中刪除“StartTime”和“EndTime”使其起作用。確信“-FilterHashTable”選項不起作用,我嘗試使用“-FilterXML”選項,但要做到這一點,我必須在事件日誌中建立過濾器來尋找語法。
我登入伺服器,打開事件檢視器,並使用以下選項從 ForwardedEvents 日誌建立自訂視圖:
日誌 = 轉發事件
ID = 8000-8003
開始時間 = 某個日期
結束時間 = 稍後日期
令我驚訝的是,它沒有返回任何事件,儘管我可以在事件日誌中看到許多應該與此過濾器匹配的事件。
嘗試不同的過濾器得到了這些結果:
測試1
日誌:轉發事件
ID:8000-8003
開始日期: 未填寫
結束日期: 已填寫
結果:取得所有結果(甚至超過 EndDate)
測試2
日誌:轉發事件
ID:8000-8003
開始日期: 已填寫
結束日期: 未填寫
結果:沒有得到結果
測試3
日誌:轉發事件
ID:所有事件 ID
開始日期: 已填寫
結束日期: 未填寫
結果:取得ID為111的事件(我認為這是新客戶端的訂閱開始通知)
測試4
日誌:轉發事件
ID:所有事件 ID
開始日期: 已填寫
結束日期: 已填寫
結果:取得ID為111的事件(我認為這是新客戶端的訂閱開始通知)
那我的問題是:
為什麼會發生這種情況以及如何解決它?