Тайм-аут сеанса пользователя, принудительный выход из системы

#vbscript #batch-file #session-timeout #logoff

#vbscript #пакетный файл #тайм-аут сеанса #выход из системы

Вопрос:

Я провел небольшое исследование о том, как создать скрипт с использованием vbs или batch, чтобы установить ограничение по времени сеанса для пользователей, регистрирующихся на определенном наборе компьютеров, связанных через групповую политику. Я не знаком с сценариями выхода из системы или тайминга, я могу создать простейший пакетный скрипт для выхода текущего пользователя с компьютера. Проблема, с которой я сталкиваюсь, заключается в невозможности установить сеанс по расписанию или запустить скрипт выхода из системы из-за ограничения по времени. Я исследовал его настройку с помощью групповой политики, затем пришла идея связать скрипт с групповой политикой при запуске для пользователей на определенном наборе компьютеров. Я нашел vbs, погуглив ключевые фразы, но я не уверен точно, как реализовать его с помощью сценария выхода из системы или как заставить его начать обратный отсчет

 echo.
echo Waiting For thirty minutes...     
TIMEOUT /T 1800 /NOBREAKS    
echo.    
echo (logoff)    
echo.
pause >nul
  

Сценарий выхода из системы, который я планировал использовать, выглядит следующим образом:

 shutdown -l -f -t 30 -c "Your 30 minute session is over."
  

Но я не могу отобразить комментарий, и 30-секундное время не влияет.

Любая помощь была бы высоко оценена. Спасибо за чтение.

Комментарии:

1. Спасибо, rd1966, я смог придумать небольшой пакетный скрипт, единственная проблема, с которой я сейчас сталкиваюсь, — это связать его с объектом групповой политики для запуска при входе пользователя в систему / выходе из системы. Для тех, кто ищет что-то вроде того, что мне было нужно, вот способ запланировать выполнение задачи через 30 минут, чтобы перезагрузить компьютер, если пользователь не выйдет из системы. Вот что я придумал: Сначала отключите скрипт, чтобы включить службу и создать задачу- schtasks /delete / tn Logoff /f sc config schedule start= автоматическое расписание запуска sc schedules /create /tn «Logoff» /tr E:Logoff.bat / sc минута /mo 30 /ru SYSTEM

2. —Мне пришлось добавить удаление задачи в начале на случай, если кто-то другой вошел в систему до того, как она остановила задачу. Затем, чтобы перезагрузить компьютер- schtasks / delete / tn Logoff / f shutdown -r -t 25 -f — Еще раз я добавил удаление задачи, чтобы компьютер не продолжал перезагружаться. Что я хочу сделать с объектом групповой политики, так это поместить первый скрипт, связанный с входом пользователя в систему, затем поместить удаление задачи при выходе из системы, единственное, что я не могу сделать, это выяснить, что указать в параметрах …. любая помощь была бы с благодарностью!pprreciated!

Ответ №1:

Как насчет чего-то подобного?

 Set oSystems = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true") 
For Each oSystem in oSystems    
    oSystem.Win32ShutdownTracker 3600,"Logging off...",0,4
Next 
  

Ответ №2:

Я знаю, что этот вопрос старый, но здесь вы все равно идете:

создайте файл .vbs с именем invis.vbs и поместите его в каталог запуска пользователя, которого вы хотите ограничить.

Он должен содержать следующее (замените #username# на имя пользователя):

 wscript.exe “C:Users#username#AppDataRoamingMicrosoftWindowsStart MenuProgramsStart-upinvis.vbs” “C:SessionLimit.bat”
  

Теперь сохраните приведенное ниже в виде командного файла с именем SessionLimit.bat в каталоге C: .
Он должен содержать следующее:

 @echo off
timeout 1800 /nobreak 
shutdown /l ;;Replace this comment with /f if you want the log off to be forced without the Do you want to save your work interruption window.