如何使用Write-EventLog在事件日志中显示任务类别的字符串名称?

时间:2013-07-29 21:17:18

标签: windows events powershell logging

所以,我试图使用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
.

那么,如何显示名称而不是事件日志中的数字?

2 个答案:

答案 0 :(得分:0)

您可能正在应用程序或系统日志事件中查找它,并且您运行的第一个命令创建了一个名为TEST1的日志。

说明     此cmdlet在本地或远程计算机上创建新的经典事件日志。它还可以注册写入新日志或其中的事件源     现有的日志。

答案 1 :(得分:0)

尝试将计算机的Authenticated UsersUsers组添加到邮件文件夹的安全级别。保留默认权限。然后重新启动或尝试重新启动EventLog服务。

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

您可能会被提示关闭其他服务。您必须输入Y才能继续。关闭的服务通常会自行重启,因此您只需等待几秒钟。事件日志服务可能无法关闭,因为另一个服务已重新启动,可能需要几次尝试才能解决所有问题。仔细观察生成的文本状态。