4

Эта команда сразу выходит из системы:

shutdown /l /f

/l = This option will immediately log off the current user on the current machine. You can not use the /l option with the /m option to log off a remote computer. The /d, /t, and /c options are also not available with /l.

Поскольку я не могу использовать ключи /t /c , я не могу рассчитать время выхода из системы.

Примечание: он должен выйти из системы даже после закрытия команды.

Есть альтернативные способы?

4 ответа4

2

Вы можете создать запланированное задание, используя schtasks:

schtasks /create /st 09:50 /sc once /tr logoff /tn LogOff

Это создаст новую запланированную задачу в 09:50, которая запускается один раз. Он выполнит logoff logoff системы ( выход из системы должен выполнить то же, что и shutdown /l /f), и задача будет называться "LogOff".

1

Изменить: полное решение. Однако schtasks не поддерживает планирование в следующие 10 секунд. Ближайший следующий график - это новая минута.

@echo on

for /F "tokens=1-3 delims=:." %%a in ("%time%") do (
set Hour=%%a
set Minute=%%b
set Seconds=%%c
)

set /A newTime=(Hour*3600) + (Minute*60) + (Seconds + 60)
set /A Hour=newTime/3600
set /A Minute=(newTime %% 3600) / 60
set /A Seconds=(newTime %% 3600) %% 60

if %Hour% gtr 23 (set Hour=0) ELSE (IF %Hour% lss 10 set Hour=0%Hour%)
IF %Minute% lss 10 set Minute=0%Minute%
IF %Seconds% lss 10 set Seconds=0%Seconds%

Set TaskTime=%Hour%:%Minute%:%Seconds%
Echo %Time%
Echo %TaskTime%

schtasks /delete /tn "LogOff" /f

schtasks /create /st %TaskTime% /sc once /tr logoff /tn "LogOff"
0

Вы можете создать скрипт AutoIt, чтобы отложить запуск команды:

; Initialize variables
$second = 1000

; Script options
Opt("TrayAutoPause", 0) ; 0 = no pause, 1 = pause
Opt("TrayIconHide", 1)  ; 0 = show, 1 = hide tray icon

; Optionally, sleep for a number of seconds before starting the process
If 0 < $CmdLine[0] Then
    Sleep( $CmdLine[1] * $second )
EndIf

Run("shutdown /l /f")

После того, как вы скомпилируете скрипт в программу, вы можете вызвать его из командного файла:

@echo off
start "" DelayLogoff.exe 10
pause

Совет: Вы могли бы просто поместить все это в пакетный файл, но использование скрытого сценария AutoIt позволяет избежать проблем с очень хорошей программой Windows Timeout .

0

Не могу найти ничего в поиске Google, так что ....

Я сделал это с Vista/Server 2008R2 GPO: создание и редактирование GPO через GPMC на DC 2008R2 или более поздней версии. Перейдите в раздел «Компьютер» /«Установки» /«Панель управления» /«Запланированные задачи». Расписание двух заданий, одно на 15 мин. предупреждение, один для выхода. Для каждого назначьте задачу, которую будут запускать пользователи домена (установите флажки для групп). Запускать только когда пользователь вошел в систему. Запустите с наивысшим приоритетом. Запланируйте задачу сообщения за 15 минут до завершения задачи. Соответствующие действия: Выполнить действие: отобразить сообщение и выполнить действие: Запустить программу: C:\windows\system32\logoff.exe.

Убедитесь, что сообщение настроено для запуска в первую очередь.

С уважением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .