2015-03-13 108 views
3

我已經爲事件記錄器創建了一個類別文件,但類別名稱並未顯示在事件記錄器中。Windows事件日誌中沒有分類

但是,如果我從C:\ Windows \ System32 \ winevt \ Logs打開日誌,則會顯示類別名稱。如果我使用以下PowerShell,類別名稱也會顯示出來。

$eventlog = New-Object System.Diagnostics.EventLog("MyLog") 
Write-Host $eventlog.Entries[0].Category 

的.mc文件看起來是這樣的:

MessageIdTypedef = WORD 

LanguageNames=(
    English=0x0409:MSG00409 
    Swedish=0x041D:MSG0041D 
) 

MessageId=1 
SymbolicName=CAT_1 
Language=English 
Category 1 
. 
Language=Swedish 
Kategori 1 
. 

MessageId=2 
SymbolicName=CAT_2 
Language=English 
Category 2 
. 
Language=Swedish 
Kattegori 2 
. 

; // Up to 22 categorys 

在註冊表中,我有以下幾點:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\MyLog\MySource] 
"CategoryCount"=dword:00000016 
"TypesSupported"=dword:00000007 
"CategoryMessageFile"="C:\\path\\Messages.dll" 

我發現https://social.msdn.microsoft.com/forums/windowsdesktop/en-us/3fed3069-ce0f-4168-8132-4d19d66fdd7e/windows-7eventlog-creating-custom-categories同樣的問題,但沒有答案問題。

我已經在這兩個Windows 7,8和Windows Server 2008 R2

編輯

我創建了一個測試項目,以顯示我做了什麼嘗試這樣做。下載here

+0

請不要混淆「C:\\ path \\ Messages.dll」,顯示實際路徑。 – 2015-03-17 11:55:01

+0

現在Messages.dll位於解決方案的調試文件夾中。但我也嘗試將其移到C:\ Messages.dll。 它與文件位於文件系統中的功能相關嗎? – magol 2015-03-17 12:01:48

+0

我已經創建了一個測試項目。在我的問題中,我最後一個編輯。 – magol 2015-03-18 08:34:59

回答

1

嘗試增加機器的Authenticated UsersUsers組郵件文件夾的安全級別。保持默認權限。然後重新啓動或嘗試重新啓動EventLog服務。

在管理員命令提示符:net stop eventlog

你可能會被提示關機等服務。您必須輸入Y才能繼續。正在關機的服務通常會自行重啓,因此您只需等待幾秒鐘即可。事件日誌服務可能無法關閉,因爲另一項服務已重新啓動,可能需要幾次嘗試才能將所有內容都關閉。仔細觀察結果文本的狀態。

我遇到了同樣的問題,同時將源註冊表信息指向我的VS項目中的消息文件夾。我發現它在管理員用戶創建C:\Test文件夾後開始工作,並引用該文件夾。這和項目文件夾唯一的區別是兩個組。添加這兩個組中的任何一個都可以起作用。將它們從兩個文件夾中取出使它停止。

我還發現如果我在我的CategoryMessageFile和我的EventMessageFile中匹配了MessageId,它忽略了CategoryMessageFile

相關問題