Articles of 事件日志

哪种方法更好地阅读C#中的Windows事件日志? WMI或EventLog

我需要编写一个应用程序来抓取系统/应用程序的事件日志。 另一个要求是,我需要每隔一分钟阅读一次事件日志以获取自上次阅读以来的新事件日志。 目前我正在考虑使用C#来实现而不是C ++。 有了这些,我阅读了几个网页,如果我理解正确,我可以使用WMI或EventLog类来读取事件日志。 在我看来,当使用EventLog类添加新的事件日志时,我可以得到通知,但我不确定是否比使用WMI好。 如果我的理解是正确的,我想知道我应该采取哪种方式? 请给我一些build议。 谢谢。

从Windows审计日志中提取任何机器特定的信息?

这是这个问题的后续。 我遵循了接受的答案,并认为我对结果感到满意,但遇到了障碍。 安装程序 我从监视目录的服务器运行我的C#程序。 任何时候文件被修改,FileSystemWatcher触发一个事件,导致程序检查安全审计日志(已打开,请参阅上一个问题的解决scheme)。 问题 我的问题是,当我在远程用户修改文件后检查安全日志时,他们被logging为匿名用户。 特别是“NT AUTHORITY \ SYSTEM”。 有没有办法从这些安全日志中提取独特的信息,这将有助于我区分修改文件的用户? Deets 我使用EventLog来读取这样的安全日志: EventLog log = new EventLog("security"); EventLogEntryCollection col = log.Entries; //… string username = entry.UserName;

事件日志侦听器 – 应用程序和服务

有什么方法可以在生成(在C#中)时观察“应用程序和服务”的事件吗? 我发现我无法使用WMI。 任何其他的想法?

GetNumberOfEventLogRecords返回的事件日志数量不正确

我有这个C ++代码来读取事件日志logging DWORD GetLogRecords(LPCWSTR wsLogFile) { HANDLE hEvt = OpenEventLog(NULL, wsLogFile); if (hEvt==NULL) return 0; DWORD dwTotalRecords; BOOL res = GetNumberOfEventLogRecords(hEvt, &dwTotalRecords); CloseEventLog(hEvt); return (res != 0) ? dwTotalRecords : 0; } 结果 atlTraceGeneral – C:\Windows\system32\winevt\logs\ACEEventLog.evtx – 23499 Total Records atlTraceGeneral – C:\Windows\system32\winevt\logs\Application.evtx – 23499 Total Records atlTraceGeneral – C:\Windows\system32\winevt\logs\ConnectionInfo.evtx – 23499 Total Records atlTraceGeneral […]

将例外写入Windows日志文件

我想赶上我的exception,并将它们logging在Windows日志文件中。 我如何去打开和写入Windows日志?

直接读取.evt / .evtx文件

您好,有谁知道如何读取.evt / .evtx这是Windows事件日志文件读取不使用提供的API,我想读取他们使用FILE I/O API在C/C++ 。 或者如何将这些文件转换为.txt文件,我知道splunk做到这一点,但不知道他们是如何做到的。

阅读事件日志从最新到最旧

我已经写了一个简短的程序来build立使用在启动和closures时发布的事件日志消息的远程PC的正常运行时间。 目前的逻辑是: foreach (eventlogentry) { if (entryTime > OldestTime) { if (entry = Startup) { addOnTime(entry.Time); } if (entry = Shutdown) { addOffTime(entry.Time); } } } “OldestTime”定义了在多长时间后向后扫描…. 我想知道是否有任何方法可以轻易地修改我的程序,从最新到最旧的事件读取事件? 它正在读取远程事件日志,并且需要一段时间才能运行此function,因为它从最后开始并向前读取。 我知道这一点,因为我添加了一个“其他”块到第一个“如果”突破foreach块,如果条目不是在我们正在寻找的时间范围内,程序停止在它读取的第一个事件。

C#事件日志不可访问的日志

下面是运行下面的代码时遇到的exception: 源未find,但部分或全部事件日志无法search。 无法访问的日志:安全。 代码是 if (!EventLog.SourceExists(this.EventLogSource)) exception的内容对我来说是有意义的,这就是为什么不这样做。 此行作为控制台应用程序(暂时)在Visual Studio 2010,.NET 4中运行。 我已经在不同的环境中运行,但我不希望我远程桌面打破这种方法。 我已经尝试更改HKML\CCS\Services\eventlog权限 – 无效,以及C:\Windows\System32\Winevt\Logs\Security.evtx权限。 再次,无济于事。 我的问题如下: 为什么没有覆盖忽略安全日志, 我怎样才能解决这个问题(编程) 这是因为我是远程办公桌。 任何build议将是伟大的。

应用程序错误:故障地址0x00012afb(专家)

我需要一些“光”来获得解决scheme。 可能有很多事情会导致这个问题,但也许有人可以帮助我。 场景:运行24/7全天候运行PostgreSQL数据库和其他服务器应用程序的Windows服务器(用于处理数据库上的任务等)。 有不同的服务器场景(〜30),不同的硬件和Windows版本(XP SP3 / WinServer等…所有基于NT)。 所有的应用程序都是用Delphi7编写的,并链接到DLL(也在D7中)。 经过几天(有时一周,有时几个月),Windows开始变得奇怪,就像不打开开始菜单一样,在对话框中缺less一些button。 不久,一些应用程序不能打开,在eventviewer上引发一个事件: Faulting application x, version y, faulting module kernel32.dll, version 5.1.2600.5781, fault address 0x00012afb 同时,其他应用程序打开罚款,如记事本,iexplore等…但我的一些应用程序不,只有事件日志上面描述。 但是,如果我们不重新启动系统,在几天内甚至cmd.exe停止打开,(和所有其他应用程序)在eventlog上具有相同的错误。 我试图find“什么”可以导致这个,但没有成功。 所以,任何build议都会受到欢迎。 提前致谢。

写入Windows应用程序事件日志,无需注册事件源

有没有办法写这个事件日志: 或者至less,一些其他的Windows默认日志, 我不需要注册一个事件源 ?