Win32_LogonSessions返回较旧的会话

我试图使用PowerShell使用WMI查询来识别logging的会话:

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

但是我看到这个命令也报告了较旧的会话,这些还是活动的吗? 我怎样才能重置它?

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

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

您正在观察此行为,因为Microsoft安全公告MS16-111包含一个更新,它更改了Windows处理login会话对象的方式。 现在,任何泄露访问令牌的服务或应用程序(Microsoft或第三方)现在也会泄露login会话对象。

每当用户注销系统时,都会泄漏login会话对象,除了让服务或应用程序供应商修复代码以便不再泄漏令牌之外,您无法做任何事情。

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