Questão Como posso restaurar uma sessão de área de trabalho remota para o console local?


Depois que eu terminar com uma conexão de área de trabalho remota, eu gostaria de poder restaurar a área de trabalho remota para o console local para que o usuário não precise redigitar a senha e fazer o login novamente.

Como posso criar um atalho na área de trabalho para fazer isso?


13


origem




Respostas:


  1. Crie um atalho na área de trabalho clicando com o botão direito do mouse na área de trabalho e selecionando novo e selecione atalho.
  2. No campo de texto, digite:

    %windir%\System32\tscon.exe 0 /dest:console (Ver abaixo)

  3. Clique com o botão direito do mouse no atalho recém-criado e clique em propriedades.
  4. Clique na guia de atalho e clique no botão Avançado.
  5. Marque a caixa "Executar como administrador" e clique em OK.

Se isso não funcionar, tente alterar o número zero (tscon.exe 0 /dest...) na etapa 2 para o número um, e se não funcionar, continue incrementando até que a área de trabalho remota seja liberada.

Alternativamente, abra um shell com o menu Iniciar, execute, cmd. Tipo qwinsta  Entrare procure a ID da sessão que está no estado ativo (ela terá um > caractere no início do nome da sessão). Esse é o número que você precisa usar na etapa 2.

Quando você quiser restaurar a área de trabalho do console, clique duas vezes no atalho e permita o acesso de administrador.


10



muito bem feito :) - J-D


Aqui está uma versão que evita a dependência das ferramentas GNU. Ele usa o findstr, que é fornecido com o Windows.

for /f %%i in ('qwinsta ^| findstr /C:">rdp-tcp#"') do set RDP_SESSION=%%i
:: Strip the >
set RDP_SESSION=%RDP_SESSION:>=%
tscon %RDP_SESSION% /dest:console

7



Aqui está minha versão de, otimizada para um one-liner, a fim de ser amigável ao atalho: %windir%\system32\cmd.exe /c "for /F "tokens=1 delims=^> " %i in ('""%windir%\system32\qwinsta.exe" | "%windir%\system32\find.exe" /I "^>rdp-tcp#""') do "%windir%\system32\tscon.exe" %i /dest:console" Substitui > substituição de variável de ambiente com adicional for análise de parsing, bem como adiciona cmd opções (para o atalho). Quando combinado com um ícone adequado (usei o ícone de logoff Shell32.dll), é semelhante a esta. - Helder Magalhães
Eu tive que fazer este atalho funcionar como administrador para funcionar. Clique com o botão direito> Propriedades> Avançado - James Esh


A resposta de glenviewjeff me pegou a maior parte do caminho, mas o ID da sessão nem sempre é 1. Se você tentar desconectar a sessão de escuta ou console, você receberá um "Erro 7045" - o acesso da sessão solicitada é negado, ou se o id de sessão não existe um erro SessionID não encontrado.

Eu fiz um pequeno arquivo de lote para retirar a sessão atual. Como eu fiz isso no Windows XP eu precisava qwinsta ao invés de consultar a sessão para descobrir o ID atual. Este arquivo de lote usa utilitários de linha de comando unix, eu uso o Gnu no Windows (https://github.com/bmatzelle/gow/downloads) para ter acesso a estes. Ele puxa a sessão atual procurando por um sinal ">" e reatribui-a novamente à sessão de console.

for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $4}"') do set VAR=%%i
tscon %var% /dest:console

Eu precisava disso para uma máquina que está conectada a um scanner Fujitsu IX500, o scanner só verifica se a tela não está na tela de seleção de nome de usuário / conexão no Windows, que é o que você obtém quando faz logoff ou desconecta uma sessão normalmente. Como a máquina funciona sem uma tela, eu quero ser capaz de conectar via rdp, mas se eu fiz isso eu não poderia usar o botão de verificação de hardware até que eu fiz o login manualmente ou reiniciei. O arquivo em lotes acima resolve esse problema.


1





Eu não consegui fazer com que o comando de arquivo batch do Simon D funcionasse. Isso é o que funcionou para mim no Windows 7 x64:

for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $3}"') do tscon %%i /dest:console

0