将事件日志添加到注册表

AA1*_*Kas 9 c# registry event-log

我正在尝试使用服务器访问服务器上的"ForwardedEvents"事件日志

el = new EventLog("ForwardedEvents", serverName);
Run Code Online (Sandbox Code Playgroud)

这不起作用.

我相信它不起作用,因为日志不包含在Eventlog期望找到它的注册表中(HKLM/System/CurrentControlSet/Services/Eventlog/..).

如何将日志添加到注册表以便找到它,或者是否有另一种方法来访问未在该位置指定的日志?

AA1*_*Kas 10

通过为Log at:(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\LOGNAME)创建新的注册表项来解决此问题.

这是通过..(在Windows Server 2008 R2上)..

1)右键单击父文件夹(eventlog) - >新建 - >键

2)将密钥命名为在(C:\ Windows\System32\winevt\Logs\LOGNAME)中找到的evtx文件

3)在注册表资源管理器的右窗格中,右键单击 - >新建 - >可扩展字符串值

4)命名新创建的REG_EXPAND_SZ"文件"

5)右键单击名称"文件"

6)修改

7)在"数值数据"框中,添加evtx文件的路径,如

(%SystemRoot%\ System32\winevt\Logs\ForwardedEvents.evtx)

  • 这个答案帮助了我,谢谢!似乎无需添加Expandable String Value或编辑File值就可以工作。我添加了[此答案](http://stackoverflow.com/questions/19803351/how-do-i-read-from-an-arbitrary-evxt-file-using-system-diagnostics-eventlog),其中详细说明了我如何解决它。 (2认同)

vap*_*guy 5

这与此处提供的其他注册表解决方案很接近,但这就是我在 Windows 7 上的做法,并将写入应用程序日志,而不是转发事件日志:

  • Windows 徽标 > 输入regedit搜索并按Enter

  • 扩张HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog

  • 找到Application密钥并为您的应用程序创建一个新密钥: MyApp

  • 在 中MyApp,右键单击右侧窗口的空白区域,然后选择“新建”>“可扩展字符串值”。这将创建一个REG_EXPAND_SZ条目。给它起个名字EventMessageFile

  • 双击新条目以设置值。对于值,请输入: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\EventLogMessages.dll 选择OK

  • 保留(Default)字符串值及其(value not set)值。

  • CurrentControlSetControlSet001和替换,再重复两次ControlSet002

如果您需要将应用程序移动到另一台计算机,您可以右键单击该键并选择Export。您将该文件另存为.reg文件,然后将其复制到下一台计算机。在那里,您双击运行它(以管理员身份登录)。这样,您就不必手动重新创建它,而对于其他应用程序,您实际上可以.reg在记事本中编辑该文件,只需更改应用程序的名称,保存即可(请务必将格式更改为“全部文件”,因此它保留.reg在最后,而不是将其另存为.txt文件),然后您可以双击它来运行并插入新应用程序的EventLog键。