首页 文章

如何监控Active Directory用户登录/注销?

提问于
浏览
4

我正在用C#编写一个简单的桌面应用程序,只要有人登录或注销Active Directory,就会在文本框中显示一行文本 . 在Windows Server 2008和Windows Server 2003下,它注定要与AD在同一台机器上运行 . 到目前为止,对于S2008来说,只要触发 (EventCode = 4624 OR EventCode = 4634) 的事件,我就设法被 ManagementEventWatcher 触发 .

这是我目前使用的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的解决方法:How to get event info in application launched by Task Scheduler?

2 回答

  • 1

    Windows Server 2008计算机在正常运行几小时后才开始表现 . 重启修复了问题 . 这只是一种预感,但它可能是由于尝试在S2008机器上启动我的应用程序太多次并且错误太多而导致操作系统的配置混乱 .

  • 0

    您可以使用系统注销并登录事件 . 系统中的每个活动都由Windows操作系统监视,并在事件日志中可用 .

    您可以使用.Net类来获取这些已保存的事件 . 喜欢获得系统事件

    EventLog log = new EventLog("System");
    

相关问题