Я пытаюсь идентифицировать зарегистрированные сеансы с помощью запроса WMI с помощью PowerShell с:
$logon_sess = @(gwmi win32_logonsession -ComputerName $computername)
Но я вижу, что эта команда также сообщает о более старых сеансах, они все еще активны? Как его сбросить?
И когда я сравниваю результаты с командой «query user», я вижу разные результаты, потому что команда «Query user» возвращает только текущие сеансы.
Тогда как я могу получить реальный результат существующих сеансов с помощью метода WMI Win32_LogonSession?
Вы наблюдаете такое поведение, потому что Бюллетень по безопасности Microsoft MS16-111 содержит обновление, которое изменило способ обработки Windows объектов сеанса входа в систему. Теперь любая служба или приложение, будь то Microsoft или стороннее лицо, которое пропускает токены доступа, теперь также пропускает объекты сеанса входа в систему.
Вы пропускаете объекты сеанса входа в систему каждый раз, когда пользователь выходит из системы, и вы ничего не можете с этим поделать, кроме как попросить поставщика службы или приложения исправить их код, чтобы он больше не пропускал токены.