Это попытка ответить на мои собственные вопросы, заданные почти 2 года назад. Я все еще использую RDP на ежедневной основе и потратил больше времени на чтение команды tsdiscon.
Более короткий ответ
Во-первых, позвольте мне ответить на оригинальный вопрос. Согласно документации, команда tsdiscon принимает диапазон параметров, включая SessionName и SessionId . Выполнение команды query session через командную строку должно открыть эти два поля.
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
За час до ввода этого ответа меня смутило, где следует вводить команду tsdiscon : первоначальная путаница в вопросе указывает на конкретное недопонимание ==> команда tsdiscon не должна выдаваться с локальной машины, когда эта локальная машина - персональный компьютер. Это более верно, когда я являюсь единственным пользователем этого локального персонального компьютера. Могу поспорить, что использование tsdiscon предназначено для администратора сервера, чтобы выгнать людей со своего сервера :)
Тем не менее, я думаю, что стоит обсудить, как правильно вернуться к удаленным сеансам RDP. Сейчас я использую подход AutoHotKey, который состоит из двух частей: 1. чтобы вернуться из сеанса RDP; а затем 2. убить локальный сеанс RDP с локальной машины.
Лучший выход
Часть 1: возвращение из удаленного сеанса RDP
На данный момент я разработал следующий ярлык, чтобы вернуть меня из сеанса RDP. При сохранении идентичного сценария на локальном компьютере и на удаленном компьютере, подключенном к RDP, нажатие Ctrl + CapsLock (сначала Ctrl , затем Capslock) должно "скрыть" сеанс RDP и почти всегда восстанавливать фокус клавиатуры + мыши обратно на локальный машина.
; 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
Простое решение "убить" сеанс RDP
Поскольку комбинация клавиш Ctrl + CapsLock должна работать в 99% случаев, я упростил задачу: убить существующий сеанс RDP. Опять же, AutoHotKey пригодится, так как у меня может быть несколько сеансов RDP на разных машинах, и мне нужно будет убить только одну из них.
#+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
Нужно тщательно заменить часть <Session 1...> скрипта AHK. Он должен соответствовать заголовку окна сеанса RDP, когда он активен. Я обычно смотрю это, используя следующие процедуры: 1. Откройте сеанс RDP в окне, т.е. не охватывая все активные мониторы. 2. Откройте "Windows Spy", AHK-утилиту, которая раскрывает все идентификаторы для "окна": полный набор идентификаторов включает в себя Window-Title, process_name и win_class_name.
PS: во время моего еженедельного домашнего улучшения (-code-) я собирался снова решить проблему с tsdiscon . С очень похожими условиями запроса я с удовольствием заново открою этот старый вопрос. После более внимательного прочтения документации стало очевидно, что я не должен делать ставку на одну единственную команду для обработки всего моего использования. Таким образом, приходит этот долгий ответ. Надеюсь, что это может помочь людям, которые играют с RDP много.