如何根据 Windows 事件日志查找用户在计算机上启动和结束会话的时间?

如何根据 Windows 事件日志查找用户在计算机上启动和结束会话的时间?

作为研究的一部分,我需要收集公司所有员工的工作时间。我没有执行他们电脑的代码,但我可以从他们的电脑上收集任何类型的事件日志。

我需要确定用户何时登录(开始会话)以及会话何时结束。

我相信这与Security.evtx日志有关。

经过一番谷歌搜索后,我发现我可以通过以下方式确定会话启动(登录)4624事件日志 ID,所以这部分相当简单。当我试图找出用户会话何时关闭时,问题就出现了。

我发现有 3 个主要原因可能导致会话断开 -

  1. 屏幕超时然后电脑自动锁定。
  2. 手动 WinKey + L。
  3. 系统关机/睡眠(根据安全日志这部分很容易确定)。

经过谷歌搜索,我发现相关事件 IDlogoff4634,但查看了我的安全日志后,我发现这是非常常见的日志,而且没有什么指示意义,例如 - 当我解锁我的窗口时,出现 2 个 4624 日志,然后出现一个 4634 日志(??)而没有任何原因。

因此,经过更多的谷歌搜索后,我发现我可以 WinKey + L4647事件 ID。

经过大量的研究和谷歌搜索,我仍然没有找到一个解决方案来找出用户会话何时超时并​​且桌面自动锁定...而且这部分非常重要,因为工作人员从不锁定他们的计算机,只是将其打开,经过一段时间超时(15分钟+-)后,计算机会自动锁定,我需要弄清楚如何从事件日志中看到这一点(我的想法之一是检查是否有关于LogonUI.exe创建的日志,但不幸的是默认审核配置没有显示这样的日志。

有什么想法我如何从事件日志中看到用户何时空闲且桌面自动锁定?

我可以获取任何事件日志,但无法更改审计配置,也无法在他们的计算机上执行代码。

答案1

即使您无法记录何时LogonUI.exe出现,您也可以观察它触发的安全事件。具体来说,当锁定屏幕出现时,它会枚举每个本地用户的本地组成员身份。因此,您可以查找带有名为值的Data标签的事件 4798 ,以识别锁定屏幕何时显示。CallerProcessNameC:\Windows\System32\LogonUI.exe

不幸的是,如果不活动的用户有屏幕保护程序,则锁定屏幕将不会显示,直到计算机被唤醒。在此之前,安全日志中不会出现任何事件。Microsoft-Windows-Winlogon/Operational但是,至少在 Windows 10 Pro/Enterprise 上,日志默认启用,并记录许多相关事件。方便的是,它是登录会话方面的,比安全日志跟踪的令牌级别更高。事件以开始/结束对的形式出现,因此您可以过滤到事件 811 或 812。UserID标准Security标签下的属性System提供受影响用户的 SID。Data名为的标签Event指定会话事件类型:

  1. 登录
  2. 注销
  3. 锁定(无论自动或手动)
  4. 开锁
  5. 屏幕保护程序启动
  6. 屏幕保护程序停止

如果有屏幕保护程序,则在检测到不活动时将记录会话事件 6,当计算机唤醒到锁定屏幕时将记录事件 7 和事件 4,除非用户在几秒钟的宽限期内唤醒计算机,在这种情况下只会记录事件 7,并且计算机不会锁定。如果没有屏幕保护程序,则在检测到不活动且计算机锁定时将立即记录事件 4。

相关内容