Как определить, сколько времени прошло с тех пор, как пользователь с файлами, открытыми на моем сервере, активно использовал свою рабочую станцию в среде Windows Active Directory (клиенты XP, 7, 8 и Server 2008, 2012)?
Перед перезагрузкой файлового сервера я проверяю, есть ли у кого-нибудь открытые файлы на сервере, поэтому проверяю Открыть файлы панель MMC общих папок:
Поскольку перенаправленные папки используются, вошедший в систему пользователь будет иметь открытые файлы, даже если прошло некоторое время с тех пор, как они были на своем компьютере. Я замечаю Idle Time
колонка на Сессии панель MMC:
Насколько я понимаю, это время простоя SMB-сессии между рабочей станцией и сервером. Может ли это указать, сколько времени прошло с тех пор, как пользователь был активен? Или может рабочая станция, вошедшая в систему без активности пользователя, сбросить этот счетчик на 0:00?
Я также изучил вывод QWINSTA
бежать через PSEXEC
против рабочей станции пользователя. Это говорит мне, что состояние сеанса Active
, но я не знаю, то же самое, что "вошел в систему" или "был активен в последние X минут".
Итак, есть ли способ определить, сколько времени прошло с тех пор, как на рабочей станции был активный пользователь? Возможно, другим способом, чем эти два, которые я пробовал?
Время простоя, показанное на ваших скриншотах жестяная банка указывают на бездействие пользователя. Если бы пользователь оставил программу, которая периодически обращается к файловому серверу, это число не будет указывать время, когда пользователь не присутствует, предоставляя данные компьютеру.
На ум приходит одна беспорядочная идея: использовать время создания заставки.
Предполагая, что пользователь запускает экранную заставку (или вы используете ее принудительно с помощью групповой политики), удаленно сканирует список процессов на наличие .SCR
и глядя на разницу между текущим временем настенных часов и временем создания процесса, можно получить представление о продолжительности времени, в течение которого ПК не получал ввод от мыши или клавиатуры.