
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.