如果默认情况下禁用事件日志,是否有一种编程方式允许我启用它?简而言之,我只需要知道我是否可以启用特定的 EventLog,以便我可以以编程方式使用这些事件。
谢谢
要启用 Windows 事件日志,请使用wevtutil
特别是要启用写字板日志,请执行以下操作:
wevtutil sl "Microsoft-Windows-Wordpad/Admin" /e:true
假设您正在谈论启用/禁用系统日志(应用程序、安全性、设置、系统),我认为这是不可能的。
这是 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
有趣的是,它允许您启用或禁用安装日志,但没有其他默认日志。
我只是认为,如果您不能通过注册表或组策略来做到这一点,那么它就无法做到。
编辑:
无法通过 API 以编程方式启用/禁用事件日志。我唯一的证据就是它不存在。所以我检查了其他方式:PowerShell、WMI、注册表、组策略——你可以从代码中控制的东西。没有喜悦。但是,禁用事件日志的唯一方法是停止服务。
这应该以编程方式启用事件日志。它使用 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();
}