Encerrar uma sessão automaticamente - Logoff automaticamente

Cenário:
Imagine que em sua empresa foi instalado nos corredores vários computadores para visitantes e funcionários utilizarem; porem, tem usuário que depois de acessar o computador, sai e deixa a estação bloqueada impedido que outros usuários possam acessar o computador. 

Para resolver esse problema vamos fazer com um LOGOFF forçado - encerramento de sessão do usuário logado no micro  no intervalo de 20 minutos.

Para isso, será criado em VBScript uma rotina que “pega” a data e hora em que o usuário logou no micro e compara com a hora e minuto predefinido no script, se hora predefinida for menor que hora atual, o script encerra a cessão; enquanto não for conte + 1 até 2000 e então exiba a hora que a sessão será encerrada.

Verificamos que o script "Logout.vbs" é executado em uma janela permitido o usuário fechar e assim encerrar a execução do script. Para resolver esse problema foi criado uma BAT que executa o script Logout.vbs de forma oculta; impossibilitado que o usuário venha encerrar o script.

Antes de proseguir com o passo a passo, será necessário criar uma pasta no drive c:\ com o nome "Logouttimeoff". Exe: "c:\Logouttimeoff". 

Vide aqui o Passo a Passo

Passo a Passo para Configurar o Script de Logon que Encerra Sessão

Acesse o equipamento que receberá o serviço com uma chave Administrativa.
1. Copie o código abaixo, abra o bloco de notas, cole e salve em seguida no diretório "C:\Logouttimeoff" com o nome "Logout.vbs":

' VBScript                                     
' NAME: Logout                                
' VERSÃO: 1.0                                    
' AUTHOR: www.DicasQueFunfa.com.br                         
' DATE : 26/12/2011                                     
' O objetivo desse script é encerrar a cessão do usuário em um determinado tempo

On Error Resume Next
Set WshShell = WScript.CreateObject("WScript.Shell")

HoraPermitida = "0" 'Informe as HORAS em que a cessão será expirada
MinutoPermitido = "20" 'Informe os MINUTOS em que a cessão será expirada

cont = 1

'Pega a hora em que o usuário logou no computador
LogonHora = Now
LogonHora = DateAdd("h",HoraPermitida, LogonHora)
LogonHora = DateAdd("n",MinutoPermitido, LogonHora)
WScript.Echo "ATENÇÃO!! Você será automaticamente desconectado em: " &LogonHora

'verifica se o tempo e permitido
Do While Now < LogonHora       
    WScript.Sleep 300
    cont = cont + 1
    'vai apresentar a mensagem exibida abaixo sempre que cont = 1500
    do while cont = 1500
        WScript.Echo "ATENÇÃO!!! VOCÊ SERÁ AUTOMATICAMENTE DESCONECTADO EM " &LogonHora   
        cont = 0
        Loop
Loop

WshShell.Run("%windir%\system32\logoff.exe")
 



Repita os passos para criar a BAT Goto.bat no diretório C:\Documents and Settings\All Users\Menu Iniciar\Programas\Inicializar\Goto.bat

2. Copie o código abaixo, abra o bloco de notas, cole e salve em seguida no diretório "C:\Documents and Settings\All Users\Menu Iniciar\Programas\Inicializar" com o nome "Goto.bat":

@ECHO OFF
start /min WSCRIPT "c:\Logouttimeoff\logout.vbs"
cls
exit


Dessa forma, toda fez que os usuários fizerem logon a BAT Goto.bat será inicializada e executará de forma ocuta o script Logut.vbs
      1. Obs.: A BAT Goto.bat é necessário para executar de forma oculta o script Logut.vbs

    Especificando o tempo em que o Terminal de Consulta (ou semelhante) será encerrado

    1. Abra o script “C:\Logouttimeoff\Logout.vbs” e edite as linhas 12 e 13

    HoraPermitida = "0" 'Informe as HORAS em que a sessão será expirada
    MinutoPermitido = "20" 'Informe os MINUTOS em que a sessão será expirada

    Nesse exemplo, a sessão será encerrada em 20 minutos.

    1. Configurando na linha 28 o intervalo em que será exibida uma mensagem para o usuário informado que sua sessão será encerrada.

    do while cont = 1500 Esse contador foi baseado no tempo de 20 minutos; depois de 10 minutos será exibido uma mensagem para o usuário informado que sua Sessão será encerrada; Cada vez que cont=150 é o mesmo que dizer que cont=1 minuto;
    Exemplo:
    se cont=150 > 1 minuto
    se cont=300 > 2 minuto
    se cont=450 > 3 minuto
    se cont=600 > 4 minuto
    se cont=750 > 5 minuto
    se cont=900 > 6 minuto
    se cont=1050 > 7 minuto
    se cont=1200 > 7 minuto
    se cont=1350 > 9 minuto
    se cont=1500 > 10 minuto

    Agora é só testar e pronto

    Comentários

    1. Boa tarde amigos, poderia fazer a gentileza de corrigir o link de downloads dos arquivos?

      ResponderExcluir
      Respostas
      1. Olá, Acir Peixoto, o post foi atualizado. Se tiver mais alguma dúvida para realizar o procedimento acima, basta postar sua dúvida ou problema aqui.
        Abraço!

        Excluir
    2. Muito bom, gostei muito. Tem como modificar esse script para fazer logoff em uma determinada hora do dia?

      ResponderExcluir
      Respostas
      1. Olá Nenay, olhe aqui uma opção para o que você precisa:
        http://www.dicasquefunfa.com.br/2012/04/desligar-automatizado.html

        Excluir
      2. Estou querendo utilizar essa opção para caso algum usuário esqueça de fazer logoff, o windows forçará o usuário a sair, para que outras pessoas não utilizem esse usuário.
        Essa outra opção até dá certo, mas porem ele vai fazer logoff até se o usuário certo estiver logado.
        Tentei utilizar a GPO que faz logoff forçado quando termina o horário de logon, mas não funciona.

        Excluir
    3. tive um problema com o script... ele requer uma ação do usuário... então mesmo funcionando, o usuário deve clicar ou no "ok" ou no "x" para fechar a mensagem para que o vbs funcione... OOOUUU vc pode remover essas linhas q funciona sem necessitar ação do usuário! Mas acho q seria interessante dar uma mensagem pro usuário!!! Sabem como resolver isto?

      ResponderExcluir
      Respostas
      1. Olá Abel! Desculpa pela demora. Tente substituir a linha:
        WScript.Echo "ATENÇÃO!!! VOCÊ SERÁ AUTOMATICAMENTE DESCONECTADO EM " &LogonHora
        por esse aqui:
        msgbox"VOCÊ SERÁ AUTOMATICAMENTE DESCONECTADO EM " &LogonHora,vbInformation,"ATENÇÃO!!!"

        Excluir
    4. Anônimo24/10/16

      Eu preciso de um script que desligue a maquina em um determinado horário.
      Quando o usuário logar ele já programe a maquina para desligar as 18h por exemplo.

      ResponderExcluir
      Respostas
      1. É o usuário que vai informar o horário que o pc será desligado ou para a máquina desligar em um determinado horário automaticamente? Se for pra desligar automaticamente, olhe aqui se essa dica lhe ajuda:
        http://www.dicasquefunfa.com.br/2012/04/desligar-automatizado.html

        Excluir
    5. Tem como eu programar para forçar o logoff do usuário, quando ele não estiver usando o PC por aproximadamente 20 minutos?

      ResponderExcluir
      Respostas
      1. Sim, vamos criar um post lhe mostrando o passo a passo. Aguarde algumas horas!

        Excluir
      2. Luciano, como prometido, segue a solução para o seu caso: http://www.dicasquefunfa.com.br/2018/05/como-forcar-o-logoff-do-usuario-quando.html

        Excluir
    6. Ricardo tudo bem? Legal seu site, ajuda muito. Vc tem um script que força o logoff de todos os usuários conectados em um servidor? Obrigado.

      ResponderExcluir

    Postar um comentário

    ATENÇÃO!

    É de inteira responsabilidade dos usuários seguirem as dicas postadas no Blog DicasQueFunfa.

    Assim que possível, responderemos sua pergunta.
    Seguir DicasQueFunfa no Facebook e no Google+:
    facebook.com/DicasQueFunfa
    https://plus.google.com/+DicasQueFunfaBr

    LEIA-ME

    Criar ferramentas e scripts que facilitam seu trabalho no dia a dia, solucionar problemas, documentar tudo e criar o passo a passo de como resolver, é uma tarefa que requer tempo e disposição. Por esse motivo, precisamos de sua contribuição.




    Apesar de não ser obrigatória, a sua doação é muito importante para continuarmos criando ferramentas, scripts e procedimentos!
    Com sua contribuição manteremos o funcionamento e desenvolvimento dessas e outras soluções.