Come posso ripristinare una sessione di desktop remoto sulla console locale?


15

Dopo aver finito con una connessione desktop remoto, vorrei essere in grado di ripristinare il desktop remoto sulla console locale in modo che l'utente non debba reinserire la password e accedere nuovamente.

Come posso creare un collegamento sul desktop per fare questo?

Risposte:


15
  1. Crea un collegamento sul desktop facendo clic con il tasto destro sul desktop e selezionando nuovo, quindi seleziona il collegamento.
  2. Nel campo di testo inserisci:

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

  3. Fare clic con il tasto destro del mouse sul collegamento appena creato, fare clic su Proprietà.
  4. Fai clic sulla scheda scorciatoia e fai clic sul pulsante Avanzate.
  5. Seleziona la casella "Esegui come amministratore" e fai clic su OK.

Se non funziona, prova a cambiare il numero zero ( tscon.exe 0 /dest...) nel passaggio 2 con il numero uno e, se non funziona, continua ad incrementarlo fino al rilascio del desktop remoto.

In alternativa, aprire una shell con il menu Start, Esegui, cmd. Digita qwinsta Entere cerca l'ID della sessione che si trova nello stato attivo (avrà un >carattere all'inizio del nome della sessione). Questo è il numero che devi usare nel passaggio 2.

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


molto ben fatto :)
JD

poiché ci siamo imbattuti in questo a causa di questo problema : tenere presente che quando si utilizza la soluzione alternativa con tscon, la sessione rimane aperta senza blocco! ciò significa che chiunque abbia una connessione alla console (ad esempio tramite la console di gestione della macchina virtuale o vsphere) può utilizzare la sessione aperta anche da un altro utente senza effettuare l'accesso. Quindi nello script utilizzato dovrebbe esserci anche una sessione lcok
rominator007

8

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

7
Ecco la mia versione di, ottimizzata per una linea per essere intuitiva: %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"sostituisce >la sostituzione della variabile d'ambiente con ulteriori fortrucchi di analisi, oltre ad aggiungere cmdopzioni (per la scorciatoia). Se combinato con un'icona corretta (ho usato l'icona di disconnessione da Shell32.dll), diventa simile a questo .
Helder Magalhães,

Ho dovuto far funzionare questo collegamento come amministratore per farlo funzionare. Fare clic destro> Proprietà> Avanzate
James Esh

2

La risposta di glenviewjeff mi ha portato per lo più lì, ma l'id della sessione non è sempre 1. Se si tenta di disconnettere la sessione di ascolto o console in questo modo, si ottiene un "Errore 7045" - l'accesso alla sessione richiesto viene negato o se il ID sessione non esiste un errore SessionID non trovato.

Ho creato un piccolo file batch per estrarre la sessione corrente. Mentre lo facevo su Windows XP, avevo bisogno di qwinsta piuttosto che eseguire una query per capire l'ID corrente. Questo file batch utilizza utility della riga di comando di unix, io uso Gnu su Windows ( https://github.com/bmatzelle/gow/downloads ) per avere accesso a questi. Estrae la sessione corrente cercando un segno ">" e quindi lo riassegna alla sessione della console.

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

Ne avevo bisogno per una macchina collegata a uno scanner Fujitsu IX500, lo scanner esegue la scansione solo se lo schermo non è nella schermata di selezione del nome utente / accesso in Windows, che è quello che ottieni quando ti disconnetti o disconnetti una sessione normalmente. Dato che la macchina funziona senza schermo, voglio essere in grado di connettermi tramite rdp, ma se lo facessi non potrei usare il pulsante di scansione hardware fino a quando non ho effettuato l'accesso manualmente o riavviato. Il file batch sopra risolve questo problema.


0

Non sono riuscito a far funzionare il comando del file batch di Simon D. 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.