Как завершить сеанс пользователя автоматически через 30 мин. после его входа в систему? Несохр. данные - не интересуют..
Нужно, чтобы на компьютере с установленной Windows XP, пользователь, после входа со своим именем и паролем мог поработать n минут. Например, 30. Если у него появились несохраненные файлы - не важно, - нужно завершить сеанс.
Я пробовал через автоматический запуск bat-файла с содержимым
ping localhost -n 30 'для пробы - 30 сек
logoff
Но тут будет выдан запрос на сохранение файла, если он был открыт пользователем, изменен и не сохранен. И выхода не произойдет, пока пользователь не отреагирует на вопрос на экране. А нужен беспрекословный выход.
Просто logoff - не подходит, так как на экране появляется запрос о сохранении открытого для редактирования файла. В моем случае - excel файл.
timeout - явно не входит в комплект windows XP. Это сторонняя программка?
Если сделать только лишь shutdown /l /f - выхода из системы не будет, так как был открыт и изменен файл в excel.
Так что пока вопрос остается не решенным.
Ответы Капитан Гугл и Александр Фортэ вопрос не решают.
--
Раз xp - то паузу делай ping-ом.. . или добавь в планировщик, так правильнее.
И /f - как раз чтобы не спрашивал.
Нет, не годится...
А если пользователь открыл Word, или еще что-то... .
Кстати, NirCmd ведет себя так же, как и logoff.
Использовал
nircmd.exe exitwin logoff
Не помогает.
Нашел решение
http://forum.codeby.net/topic25175.html
Буду использовать vbs-скрипт:
'Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
strClass = "Win32_OperatingSystem"
'Получаем указатель на класс WMI
Set objClass = GetObject("WinMgmts:\\" & strComputer & _
"\" & strNamespace & ":" & strClass)
'Создаем коллекцию экземпляров класса Win32_OperatingSystem
Set colInstances = objClass.Instances_
'Перебираем элементы коллекции
For Each objInstance In colInstances
'Для каждого экземпляра вызываем метод Win32Shutdown
objInstance.Win32Shutdown(0)
Next