Erro "Session Not Found" ao Usar Script de Startup para Desconectar Sessão

Erro "Session Not Found" ao Usar Script de Startup para Desconectar Sessão

Descrição do Problema

Ao utilizar um script de startup ou logout para desconectar sessões de usuários no Windows, alguns usuários enfrentam o seguinte erro:

WarningSession not found
Esse problema geralmente ocorre quando o nome de usuário contém espaços, como em: USER NAME

Nesses casos, o comando query user não consegue localizar corretamente a sessão do usuário, impedindo a execução do script de forma esperada.


Solução

Para contornar o problema causado pelo espaço no nome de usuário, utilize a variável como coringa %User*Name% em vez de %USERNAME% diretamente.
Isso permite capturar corretamente a sessão mesmo quando o nome do usuário possui espaços.

Exemplo de Script Corrigido
Quote
for /f "skip=1 tokens=3" %%s in ('query user %User*Name%') do (%windir%\System32\tscon.exe %%s /dest:console)

Esse script executa os seguintes passos:

  1. Query user busca a sessão do usuário atual com wildcard.

  2. O comando tscon desconecta a sessão e a redireciona para o console.


Observações

  • O for /f com "skip=1 tokens=3" serve para extrair o ID da sessão da saída do query user.

  • O uso de %User*Name% garante maior compatibilidade com nomes de usuário que contêm espaços ou outros caracteres especiais.


Conclusão

Se o seu script de desconexão não funciona devido a um erro de "Session not found", e o nome do usuário contém espaços, substitua %USERNAME% por %User*Name%.
Essa simples alteração garante que o script funcione corretamente mesmo com nomes compostos.