Riga di command di Windows 7 Timed Log Off

Questo command disconnette immediatamente l'utente:

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.

Poiché non riesco ad usare i tasti /t /c , non posso scaricare il log.

Nota: Dovrebbe annullare anche dopo aver chiuso il command.

Qualsiasi modi alternativi?

È ansible creare un'operazione pianificata utilizzando schtasks :

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

Ciò creerebbe un nuovo task pianificato alle 09:50, che viene eseguito una volta. Esegue la richiesta di scadenza (la scadenza dovrebbe fare lo stesso come shutdown /l /f ) e l'attività sarà denominata "LogOff".

Modifica: soluzione completa. Tuttavia gli schtasks non supportno la pianificazione nei prossimi 10 secondi. Il presto programma successivo è quando è un nuovo minuto.

 @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" 

È ansible eseguire uno script AutoIt per ritardare l'esecuzione del command:

 ; 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") 

Dopo aver compilato lo script in un programma, è ansible chiamarlo da un file batch:

 @echo off start "" DelayLogoff.exe 10 pause 

Suggerimento : Potresti mettere tutto questo in un file batch, ma utilizzando uno script nascosto AutoIt evita i problemi del programma di Windows Timeout altrimenti molto bello.