Как я могу автоматически выйти из системы с компьютера с Windows?
Я хотел бы удостовериться, что люди вышли из системы, как только они закончили работать на одной, определенной многопользовательской машине. В настоящее время следующий пользователь просто "поменяет пользователя" и продолжит работу, но, по-видимому, одновременное подключение многих пользователей с открытыми программами израсходует ресурсы.
Можно ли автоматически выходить из системы с пользователей, если они не были активными в течение 24 часов?
Или же можно выйти из системы, кроме текущего пользователя, в полночь?
Компьютер находится в доменной сети Windows - хотя я хочу, чтобы автоматический выход из системы работал только на одном компьютере (и я не являюсь сетевым администратором)
,
3 ответа
Чтобы выйти из системы отключенных пользователей, оставив текущего пользователя подключенным, скопируйте следующий код сценария в файл.cmd, например "LogOffUsers.cmd", а затем запустите его как службу в полночь:
@echo off
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do logoff %%b
Сценарий работает с помощью команды запроса, чтобы найти отключенных пользователей, выполнив поиск по фразе "диск", а затем выйдя из системы.
Если вы хотите, чтобы скрипт вместо этого работал непрерывно как служба, регистрируя пользователей, когда они были отключены / неактивны в течение определенного периода времени, вы должны использовать:
@echo off
:Top
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do if %%d GTR 32 (logoff %%b) else %%e GTR 32 (logoff %%b)
choice /T 120 /C 1 /D 1 /N
goto top
Этот сценарий использует ту же команду запроса, но дополнительно проверяет часть результатов "ВРЕМЯ ПРОДОЛЖЕНИЯ", регистрируя пользователя, если время простоя превышает 32 ( "GTR 32"). Эта фраза встречается дважды, потому что жетон "ВРЕМЯ ПРОДОЛЖЕНИЯ" может встречаться в двух разных позициях Затем строка, начинающаяся с "выбора", ждет 2 минуты, а затем снова выполняет операцию, возвращаясь к началу. Вы можете увеличить или уменьшить значение "32" в соответствии с вашими потребностями.
Нашел здесь.
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do if %%d GTR 32 (logoff %%b) else (if %%e GTR 35 (logoff %%b))
Обратите внимание, что вышеперечисленное будет работать только в течение минут простоя, вам нужно внести в него небольшую поправку, если вы хотите использовать часы простоя перед выходом из системы отключенного сеанса.
for /f "tokens=1-8 delims=,:/ " %%a in ('query user ^| find /i "disc"') do if %%d GTR 23 (if %%h GTR 2012 (logoff %%b))
Измените 23, чтобы настроить часы, выше будет работать в течение 24 часов или более простоя. %%h 2012 гарантирует, что значение %% d является часом, а не минутным значением.
Я бы искал способ отключить функцию "Сменить пользователя". Это может помочь.