我正在用C#编写一个简单的桌面应用程序,每当有人登录或注销Active Directory时,它就会在 Textbox 中显示一行文本。它注定要在Windows Server 2008和Windows Server 2003下与AD在同一台机器上运行。到目前为止一切顺利,对于S2008 ,只要触发了带有 的事件,我就成功地被触发了。ManagementEventWatcher(EventCode = 4624 OR EventCode = 4634)
这是我目前使用的 WMI 查询:
SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance isa "Win32_NTLogEvent" AND (TargetInstance.EventCode = '4624' OR TargetInstance.EventCode = '4634')
然后我正在解析eventArgs.Properties["TargetInstance"].Properties["Message"]寻找客户端的用户和 IP 地址。
奇怪的是,即使用户注销,我仍然只收到一个带有 EventCode 4624 的事件。4634 事件发生了什么?如何捕获注销?
(我也在寻找关于 SU 的解决方法:如何在任务计划程序启动的应用程序中获取事件信息?)