任务
我有一个在 Windows Server 2016 上运行的域控制器。每次用户使用域用户帐户登录或注销时,事件查看器都会显示 ID 为 4624 和 4634 的事件。(...也许,事件可能与用户注销并不真正匹配)。
使用 Powershell,我可以从单个事件中获取相关详细信息以创建报告。我想在他们登录机器时输出单个事件,在他们注销时输出另一个单个事件。例如
2023-09-14 09:37:56.889 - 用户1 已注销。
2023-09-14 07:44:58.888 - 用户 1 登录到 10.0.0.1
问题
当我解析域控制器上的所有事件时,我会获得同一次登录尝试的多个重复条目,其中有大量登录和注销,间隔都在几毫秒内。例如
2023-09-14 07:44:58.889 - 用户1 已注销。
2023-09-14 07:44:58.889 - 用户1 已注销。
2023-09-14 07:44:58.889 - 用户1 已注销。
2023-09-14 07:44:58.889 - 用户1 已注销。
2023-09-14 07:44:58.888 - 用户 1 登录到 10.0.0.1
2023-09-14 07:44:58.888 - 用户 1 登录到 10.0.0.1
2023-09-14 07:44:58.888 - 用户 1 登录到 10.0.0.1
2023-09-14 07:44:58.888 - 用户 1 登录到 10.0.0.1
尝试的解决方案
我尝试查看以下字段,但无法确定哪个事件是实际的初始用户登录事件,哪些是重复事件。它们似乎在所有同时发生的登录事件中都是相同的。
- 主题用户标识
- 主题用户名
- 目标用户名
- 登录类型
- IP地址
需要查看的注销事件细节就更少了。
我如何查看所有这些 4624 和 4634 事件并找出用户实际登录和注销的时间?
我曾考虑将同一秒或两秒内的所有登录/注销事件分组为单个登录事件,但这似乎太粗暴了。域控制器日志中的事件中是否有任何内容可以让我获取单个登录时间和单个注销时间?
答案1
据我所知,没有与您的要求相对应的“注销时间”事件。
在工作站登录的整个期间,AD 不会在域控制器上维持任何持久状态;DC 看到的所有注销都是与该 DC 的瞬时连接,例如 LDAP 查询或 Sysvol SMB 访问。
那里是当用户从 DC 获取 Kerberos TGT 时的一个独特的“登录时间”,它有自己的事件 ID (4768) - 尽管它不一定限于完全登录;它也可能是工作站解锁或其他类似事件。
但是,没有相应的“撤销票证”或类似事件。DC 不会主动跟踪签发的票证或其有效性(签发 10 小时的票证有效期为 10 小时);注销只是在客户端丢弃票证。