所以,我试图使用Write-EventLog
写入Windows事件日志。我编译了一个CategoryMessageFile .dll并在注册表中注册了它。
我的脚本大部分都写入事件日志,但问题是该事件不显示类别名称;它显示了在dll中枚举的类别消息ID。
New-EventLog -LogName Application -Source 'test1' -CategoryResourceFile 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\test.dll' Write-EventLog -LogName Application -Source 'test1' -EntryType Information -EventId 1 -Message "$($DataSet.Tables[0].Rows[$i][6])" -Category 1
我知道映射是正确的,因为当我运行
时Get-EventLog -LogName Application -Newest 3 | Format-List
正确的类别名称显示在我刚刚写入日志的事件的“类别”下。
这是我的mc文件的样子。
;// Header
;// Categories
MessageIdTypedef=WORD
MessageId=0x1
Language=English
ETLUncategorizedError
.
MessageId=0x2
Language=English
ETLThresholdExceeded
.
MessageId=0x3
Language=English
ETLMalformattedFile
.
MessageId=0x4
Language=English
ETLWebInvocationFailure
.
那么,如何显示名称而不是事件日志中的数字?
答案 0 :(得分:0)
您可能正在应用程序或系统日志事件中查找它,并且您运行的第一个命令创建了一个名为TEST1的日志。
说明 此cmdlet在本地或远程计算机上创建新的经典事件日志。它还可以注册写入新日志或其中的事件源 现有的日志。
答案 1 :(得分:0)
尝试将计算机的Authenticated Users
或Users
组添加到邮件文件夹的安全级别。保留默认权限。然后重新启动或尝试重新启动EventLog服务。
在管理员命令提示符下:net stop eventlog
您可能会被提示关闭其他服务。您必须输入Y
才能继续。关闭的服务通常会自行重启,因此您只需等待几秒钟。事件日志服务可能无法关闭,因为另一个服务已重新启动,可能需要几次尝试才能解决所有问题。仔细观察生成的文本状态。