Como posso fazer logout de usuários automaticamente de uma máquina Windows?

8

Eu gostaria de ter certeza de que as pessoas estão desconectadas assim que terminarem de trabalhar em uma única máquina multiusuário específica. Atualmente, o próximo usuário apenas "alterna o usuário" e continua trabalhando, mas ter muitos usuários conectados ao mesmo tempo com programas abertos parece esgotar os recursos.

É possível desconectar usuários automaticamente de uma máquina se eles não estiverem ativos por 24 horas?

Como alternativa, é possível desconectar todos, exceto o usuário atual, à meia-noite?

O computador está em uma rede de domínio do Windows - embora eu queira que o auto-logout funcione somente para a única máquina (e não sou o administrador da rede)

.

    
por Jonas 11.04.2011 / 22:09

3 respostas

5

Para desconectar usuários desconectados enquanto deixa o usuário atual conectado, copie o seguinte código de script em um arquivo .cmd, como "LogOffUsers.cmd", e execute-o como um serviço à meia-noite:

@echo off
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do logoff %%b

O script funciona usando o comando de consulta para localizar usuários desconectados pesquisando a frase "disco". registrando-os.

Se você quisesse que o script fosse executado continuamente como um serviço, desconectando usuários quando eles estivessem desconectados / inativos por um determinado período de tempo, você usaria:

@echo off
:Top
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do if %%d GTR 32 (logoff %%b) else %%e GTR 32 (logoff %%b)
choice /T 120 /C 1 /D 1 /N
goto top

Este script usa o mesmo comando de consulta, mas adicionalmente verifica a porção "IDLE TIME" dos resultados, registrando o usuário desligado se o tempo inativo for maior que 32 ("GTR 32"). Essa frase ocorre duas vezes porque o token "IDLE TIME" pode ocorrer em duas posições ligeiramente diferentes. Em seguida, a linha que começa com "escolha" aguarda 2 minutos antes de executar a operação novamente por meio de um loop para o início. Você pode aumentar ou diminuir o valor "32" de acordo com suas necessidades.

Encontrado aqui .

    
por 11.04.2011 / 22:21
1
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do if %%d GTR 32 (logoff %%b) else (if %%e GTR 35 (logoff %%b))

Note que o acima só funcionará para minutos ociosos, você precisa fazer uma ligeira alteração se quiser usar horas de tempo ocioso antes de sair da sessão desconectada.

for /f "tokens=1-8 delims=,:/ " %%a in ('query user ^| find /i "disc"') do if %%d GTR 23 (if %%h GTR 2012 (logoff %%b))

Altere o 23 para ajustar as horas, o acima irá funcionar em 24 horas ou mais de tempo ocioso. O %% h 2012 garante que o valor %% d seja uma hora e não um valor de minuto.

    
por 26.01.2012 / 19:08
0

Eu procuraria uma maneira de desativar o recurso "Alternar usuário". Isso pode ajudar.

    
por 20.03.2013 / 16:43