Como posso desconectar automaticamente os usuários de uma máquina Windows?

Como posso desconectar automaticamente os usuários de uma máquina Windows?

Gostaria de ter certeza de que as pessoas serão desconectadas assim que terminarem de trabalhar em uma única máquina multiusuário específica. Atualmente, o próximo usuário irá apenas “trocar de usuário” e continuar trabalhando, mas ter muitos usuários conectados ao mesmo tempo com programas abertos parece consumir recursos.

É possível desconectar automaticamente usuários de uma máquina se eles não estiverem ativos há 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 logout automático funcione apenas para uma única máquina (e não sou o administrador da rede)

.

Responder1

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 ocomando de consultapara encontrar usuários desconectados pesquisando a frase "disco" e desconectando-os.

Se você quiser que o script seja executado continuamente como um serviço, desconectando os usuários quando eles estiverem 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 verifica adicionalmente a parte "IDLE TIME" dos resultados, desconectando o usuário se o tempo ocioso 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 "choice" espera 2 minutos antes de realizar a operação novamente, retornando ao início. Você pode aumentar ou diminuir o valor “32” de acordo com suas necessidades.

Encontradoaqui.

Responder2

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

Observe que o procedimento acima só funcionará durante minutos ociosos; você precisará fazer uma pequena 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 23 para ajustar as horas, o acima 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.

Responder3

Eu procuraria uma maneira de desativar o recurso "Trocar usuário".Essepode ajudar.

informação relacionada