Questo è un tentativo di rispondere alle mie domande poste quasi 2 anni fa. Sto ancora usando RDP su base giornaliera e ho trascorso più tempo a leggere il tsdisconcomando .
Risposta più breve
Innanzitutto, lasciami rispondere alla domanda originale. Secondo la sua documentazione , il tsdisconcomando accetta una serie di parametri, tra cui SessionNamee SessionId. L'emissione del query sessioncomando tramite il prompt dei comandi deve rivelare questi due campi.
PS C:\WINDOWS\system32> query session
SESSIONNAME USERNAME ID STATE TYPE DEVICE
services 0 Disc
>rdp-tcp#84 Your_Username 1 Active
console 3 Conn
rdp-tcp 65536 Listen
Fino a un'ora prima di digitare questa risposta, sono stato confuso da dove si dovrebbe emettere il tsdisconcomando: la confusione originale nella domanda indica un particolare fraintendimento ==> il tsdisconcomando non dovrebbe essere emesso da un computer locale quando questo locale la macchina è un personal computer. Questo è più vero quando sono il singolo utente di questo personal computer locale. Scommetto che l'uso previsto tsdisconè per l'amministratore del server per dare il via alle persone dal loro server :)
Tuttavia, penso che valga la pena discutere il modo di tornare correttamente dalle sessioni RDP remote. Per ora, sto adottando un approccio AutoHotKey che si presenta in due parti: 1. per tornare dalla sessione RDP; e quindi 2. per terminare la sessione locale di RDP dal computer locale.
Uscita migliore
Parte 1: tornare dalla sessione RDP remota
Per ora, ho ideato la seguente scorciatoia per riprendermi da una sessione RDP. Pur mantenendo lo stesso script in esecuzione sia la macchina locale che la macchina connessa RDP remota, premendo Ctrl+ CapsLock( Ctrlprima, quindi Capslock) si "nasconde" la sessione RDP e quasi sempre si ripristina la messa a fuoco della tastiera + la messa a fuoco del mouse sulla macchina locale.
; The following are AutoHotKey scripts.
#IfWinActive ahk_class TscShellContainerClass
^Capslock::
Sleep 50
WinMinimize
return
#IfWinActive
; Make-shift script as suggested by: https://autohotkey.com/boards/viewtopic.php?t=25432
; May solve the awkward loss-of-focus when returning back from RDP
^Capslock::
WinGetClass activeclass, A
WinGetTitle activetitle, A
MsgBox, 48, Warning, %activetitle% ahk_class %activeclass%, 0.666666
return
Semplice soluzione per "uccidere" la sessione RDP
Poiché il collegamento Ctrl+ CapsLockdovrebbe funzionare il 99% delle volte, semplifico quindi l'attività come: uccidere la sessione RDP esistente . Ancora una volta, AutoHotKey è utile, poiché potrei avere più sessioni RDP su macchine diverse in esecuzione e dovrò solo uccidere una di esse.
#+y::
WinClose, <Session 1: name_of_the_saved_RDP_config_file> - Remote Desktop Connection
WinClose, <Session 2: name_of_the_saved_RDP_config_file> - Remote Desktop Connection
return
Bisognerebbe sostituire con cura la <Session 1...>parte dello script AHK. Deve corrispondere al titolo finestra della sessione RDP quando è attivo. Di solito lo cerco usando le seguenti procedure: 1. Apri una sessione RDP in una finestra, cioè senza che abbia tutti i monitor attivi 2. Apri "Windows Spy", un'utilità AHK che rivela tutti gli identificatori per una "finestra": set completo di identificatori include Window-Title, process_name e win_class_name.
PS: durante la mia sessione di miglioramento settimanale (-code-) , sono uscito per risolvere tsdisconnuovamente il problema. Con termini di ricerca molto simili, sono felice di riscoprire questa vecchia domanda. Con una lettura un po 'più attenta della documentazione, è diventato evidente che non avrei dovuto scommettere su un singolo comando per gestire tutti i miei usi. Quindi arriva questa risposta ambita. Spero che possa aiutare le persone che giocano molto con RDP.