Log de linha de comando do Windows 7 com logoff

4

Este comando desconecta imediatamente o usuário:

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.

Como não posso usar /t /c switches, não posso tempo o log off.

Nota: Deve terminar mesmo depois de fechar o comando.

Algum modo alternativo?

    
por user243868 13.08.2013 / 09:19

4 respostas

2

Você pode criar uma tarefa agendada usando schtasks :

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

Isso criaria uma nova tarefa agendada às 09:50, que é executada uma vez. Ele executará logoff ( logoff deve fazer o mesmo que shutdown /l /f ) e a tarefa será chamada de "LogOff".

    
por 13.08.2013 / 09:50
1

Editar: Solução completa. No entanto, schtasks não suporta agendamento nos próximos 10 segundos. O horário mais próximo é quando é um novo 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"
    
por 14.08.2013 / 10:22
0

Você pode fazer um script AutoIt para atrasar a execução do comando:

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

Depois de compilar o script em um programa, você pode chamá-lo de um arquivo em lotes:

@echo off
start "" DelayLogoff.exe 10
pause

Dica : Você pode colocar tudo isso em um arquivo de lote, mas usar um script AutoIt oculto evita os problemas do Windows, que de outra forma seria muito bom Timeout .

    
por 16.08.2017 / 20:56
0

Não foi possível encontrar nada nas pesquisas do Google, então ...

Eu fiz isso com um GPO do Vista / Server 2008R2: Crie e edite um GPO por meio do GPMC em um DC 2008R2 ou posterior. Vá para Computador / Preferências / Painel de Controle / Tarefas Agendadas. Agende duas tarefas, uma para 15 min. aviso, um para logoff. Para cada atribuir a tarefa a ser executada por usuários do domínio (verificar grupos para ativar). Executar somente quando o usuário estiver logado. Executar com maior prioridade. Agende a tarefa de mensagem 15 min antes da tarefa de desligamento. Ações Respectivas são Executar: Exibir uma Mensagem e Executar uma Ação: Execute um Programa: C: \ windows \ system32 \ logoff.exe.

Certifique-se de que a mensagem esteja configurada para ser executada primeiro.

Atenciosamente.

    
por 19.02.2018 / 14:55