是否有一种编程方式可以挂钩用户登录和注销(Windows SBS 2003),目标是简单记录?

Inv*_*ion 5 .net c# windows

我正在尝试编写一个中央报告工具,允许基于Windows用户登录域的时间跟踪.最初我打算创建一个小的可执行文件,它将在每台计算机上的"所有用户"启动时运行,跟踪登录的用户名并更新中央数据库.

这样做的主要问题是必须逐个机器地管理版本,并处理罕见但可能的工具在特定机器上失败的实例,而不是立即显而易见.

相反,我更愿意创建一个集中版本,但我发现MSDN和Windows SBS 2003文档很难找到答案.

基本上我想挂钩服务器上的"登录"和"注销"功能,并从那里跟踪所有信息.这里有自然延伸点吗?

很明显的替代可能是分析事件日志的信息(但是这一点我无法找到任何Windows日志,这些日志说"谁"中登录或退出).

任何有关方向或文档的指导都将非常感激.

Ric*_*ard 3

\n

这里有自然的延伸点吗?

\n
\n

不。或者更确切地说,除非您想替换登录模块(例如,对于不同的身份验证机制),否则您不会插入登录/注销:这不是一件微不足道的事情\xe2\x80\x94太容易打开安全漏洞(我认为在 .NET 中这不是一个好主意,即使不是不可能)。

\n

但由于 Windows(所有 NT 派生版本)包含记录所有登录和注销的功能,因此您需要的信息可以记录在安全事件日志中。然后有多种获取信息的选项。

\n

第一:启用登录/注销审核。

\n

这最好通过组策略来完成。对于本地计算机,启用(本地安全策略 MMC 管理单元)中的选项SecPol.msc:本地策略 | 审核政策

\n

第二:读取事件日志

\n

在安全事件日志中查找事件 (id 4624),这里logon有这些事件的一些文档。

\n

自动化(例如通过事件日志的预定读取)或转发事件应该足够容易。

\n