3

如果默认情况下禁用事件日志,是否有一种编程方式允许我启用它?简而言之,我只需要知道我是否可以启用特定的 EventLog,以便我可以以编程方式使用这些事件。

谢谢

4

3 回答 3

4

要启用 Windows 事件日志,请使用wevtutil

特别是要启用写字板日志,请执行以下操作:

wevtutil sl "Microsoft-Windows-Wordpad/Admin" /e:true
于 2012-06-12T21:29:48.900 回答
1

假设您正在谈论启用/禁用系统日志(应用程序、安全性、设置、系统),我认为这是不可能的。

这是 Windows 开发中心的事件日志(需要更深入的戳才能找到有用的信息) http://msdn.microsoft.com/en-us/library/windows/desktop/aa964766%28v=vs.85%29.aspx

这是有关注册表设置的部分:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa363648%28v=vs.85%29.aspx

组策略设置:http: //blogs.technet.com/b/askds/archive/2008/08/12/event-logging-policy-settings-in-windows-server-2008-and-vista.aspx

有趣的是,它允许您启用或禁用安装日志,但没有其他默认日志。

我只是认为,如果您不能通过注册表或组策略来做到这一点,那么它就无法做到。

编辑:

无法通过 API 以编程方式启用/禁用事件日志。我唯一的证据就是它不存在。所以我检查了其他方式:PowerShell、WMI、注册表、组策略——你可以从代码中控制的东西。没有喜悦。但是,禁用事件日志的唯一方法是停止服务。

于 2012-06-06T19:37:14.323 回答
1

这应该以编程方式启用事件日志。它使用 EventLogSession 参数

    var elSession = new EventLogSession("computername", "domain", "username", password, SessionAuthentication.Default);
    var elConfig = new EventLogConfiguration("Microsoft-Windows-Wordpad/Admin", elSession);
    if (!elConfig.IsEnabled)
    {
        elConfig.IsEnabled = true;
        elConfig.SaveChanges();
    }
于 2018-02-14T07:00:45.867 回答