Windows事件日志中没有分类
我已经为事件记录器创建了一个类别文件,但类别名称并未显示在事件记录器中。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
尝试增加机器的Authenticated Users
或Users
组邮件文件夹的安全级别。保持默认权限。然后重新启动或尝试重新启动EventLog服务。
在管理员命令提示符:net stop eventlog
你可能会被提示关机等服务。您必须输入Y
才能继续。正在关机的服务通常会自行重启,因此您只需等待几秒钟即可。事件日志服务可能无法关闭,因为另一项服务已重新启动,可能需要几次尝试才能将所有内容都关闭。仔细观察结果文本的状态。
我遇到了同样的问题,同时将源注册表信息指向我的VS项目中的消息文件夹。我发现它在管理员用户创建C:\Test
文件夹后开始工作,并引用该文件夹。这和项目文件夹唯一的区别是两个组。添加这两个组中的任何一个都可以起作用。将它们从两个文件夹中取出使它停止。
我还发现如果我在我的CategoryMessageFile
和我的EventMessageFile
中匹配了MessageId,它忽略了CategoryMessageFile
。
请不要混淆“C:\\ path \\ Messages.dll”,显示实际路径。 – 2015-03-17 11:55:01
现在Messages.dll位于解决方案的调试文件夹中。但我也尝试将其移到C:\ Messages.dll。 它与文件位于文件系统中的功能相关吗? – magol 2015-03-17 12:01:48
我已经创建了一个测试项目。在我的问题中,我最后一个编辑。 – magol 2015-03-18 08:34:59