Come posso ripristinare una session desktop remota nella console locale?

Dopo che sono terminato con una connessione desktop remota, vorrei poter ripristinare il desktop remoto nella console locale in modo che l'utente non wheresse reinserire la password e accedere nuovamente.

Come posso creare un collegamento a tavoletta per farlo?

  1. Creare un collegamento a un desktop facendo clic destro sul desktop e selezionando nuovo, quindi seleziona il collegamento.
  2. Nel field di text immettere:

    %windir%\System32\tscon.exe 0 /dest:console (Vedere sotto)

  3. Fare clic con il button destro del mouse sulle properties; di scorciatoia appena creata.
  4. Fai clic sulla scheda di scelta rapida e fai clic sul button Avanzate.
  5. Controllare la casella "Esegui come amministratore" e fare clic su OK.

Se ciò non funziona, prova a cambiare il numero zero ( tscon.exe 0 /dest... ) nel passaggio 2 al numero uno e, se non funziona, continua a incrementarlo finché il desktop remoto non viene rilasciato.

In alternativa, apri una shell con il menu di avvio, eseguito, cmd . Digitare qwinsta Enter e cercare l'ID della session che è nello stato attivo (avrà un carattere > all'inizio del nome della session). Questo è il numero che devi utilizzare nel passaggio 2.

Quando si desidera ripristinare il desktop della console, basta fare doppio clic sul collegamento e consentire l'accesso dell'amministratore.

Ecco una versione che evita la dipendenza dagli strumenti GNU. Usa findstr, che viene fornito con 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 

La risposta di glenviewjeff mi ha fatto la maggior parte del modo, ma l'ID di session non è sempre 1. Se si tenta di disconnettere la session di ascolto o console, si otterrà un errore "7045". id di session non esiste un errore SessionID non trovato.

Ho fatto un piccolo file batch per estrarre la session corrente. Come ho fatto in Windows XP ho avuto bisogno di qwinsta piuttosto che session di query per calcolare l'ID corrente. Questo file batch utilizza utility di row di command unix, utilizzo Gnu su Windows ( https://github.com/bmatzelle/gow/downloads ) per accedere a questi. Estrae la session corrente cercando un segno ">" e poi la assegna nuovamente alla session della console.

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

Ho bisogno di questa per una macchina collegata a uno scanner Fujitsu IX500, lo scanner esegue solo la scansione se la schermata non è nella schermata di selezione nome / segno di utente in Windows che è ciò che si ottiene quando si disconnette o scollegano una session normalmente. Mentre la macchina funziona senza uno schermo che voglio essere in grado di connettersi tramite rdp, ma se l'ho fatto non ho potuto utilizzare il button di scansione hardware finché non mi sono registrato manualmente o riavviato. Il file batch precedente risolve questo problema.

Non ho potuto get il command di file batch di Simon D'oro per lavorare. Questo è ciò che ha funzionato per me su Windows 7 x64:

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