Win32_LogonSessions 返回较旧的会话

Win32_LogonSessions 返回较旧的会话

我正在尝试使用 PowerShell 的 WMI 查询来识别已记录的会话:

$logon_sess = @(gwmi win32_logonsession -ComputerName $computername)

但我发现这个命令还报告了较旧的会话,这些会话是否仍处于活动状态?我该如何重置它?

当我将结果与“查询用户”命令进行比较时,我看到不同的结果,因为“查询用户”命令仅返回当前会话。

那么,如何使用 WMI Win32_LogonSession 方法获取现有会话的真实结果?

答案1

你观察到这种行为是因为Microsoft 安全公告 MS16-111包含一个更新,该更新改变了 Windows 处理登录会话对象的方式。现在,任何泄漏访问令牌的服务或应用程序(无论是 Microsoft 还是第三方)现在也会泄漏登录会话对象。

每次用户注销系统时,您都会泄漏登录会话对象,并且您对此无能为力,只能让您的服务或应用程序供应商修复其代码以使其不再泄漏令牌。

https://blogs.technet.microsoft.com/askds/2017/04/05/using-debugging-tools-to-find-token-and-session-leaks/

相关内容