Bu neredeyse 2 yıl önce sorduğum kendi sorularıma cevap verme girişimi. Hâlâ günlük RDP kullanıyorum ve bu tsdiscon
komutu okumak için daha fazla zaman harcadım .
Daha kısa cevap
İlk önce, asıl soruya cevap vereyim. Belgelerine göre , tsdiscon
komut, SessionName
ve dahil olmak üzere çeşitli parametreleri alır SessionId
. query session
Komut isteminden komut verilmesi , bu iki alanı ortaya çıkarır.
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
Bu yanıt yukarı yazmadan önce bir saat kadar, ben bir sorunu nereye tarafından şaşırtmamışımdır tsdiscon
komutu: Söz konusu orijinal karışıklık ==> Belirli yanlış anlama anlamına tsdiscon
komut zaman bu yerel bir yerel makineden çıkarılacak gerekiyordu değil Makine kişisel bir bilgisayardır. Bu yerel kişisel bilgisayarın tek kullanıcısı olduğumda bu daha doğrudur. Bahse girerim kullanım amacı tsdiscon
sunucu yöneticisinin insanları sunucularından kovmasıdır :)
Yine de, uzak RDP oturumlarından nasıl düzgün şekilde geri dönüleceğini tartışmanın zaman alacağını düşünüyorum. Şimdilik iki bölümden oluşan bir AutoHotKey yaklaşımı alıyorum: 1. RDP oturumundan geri dönmek için; ve ardından 2. yerel RDP'nin yerel oturumunu yerel makineden öldürmek için.
Daha iyi bir çıkış yolu
Bölüm 1: Uzak RDP oturumundan geri dönüş
Şimdilik, beni bir RDP oturumundan geri almak için aşağıdaki kısayolu tasarladım. Aynı betiği hem yerel makinede hem de uzak RDP bağlantılı makinede çalıştırırken, Ctrl+ CapsLock( Ctrlilk önce Capslock) düğmesine basmak , RDP oturumunu "gizleyecek" ve klavye odağı + fare odağını hemen hemen yerel makineye geri yükleyecektir.
; 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 oturumunu "öldürmek" için basit bir çözüm
As Ctrl+ CapsLockkısayol kez% 99 çalışma olmalıdır, o zaman olduğu gibi işini kolaylaştıracak: Varolan RDP oturumu öldürmek . Yine, AutoHotKey kullanışlıdır, çünkü çalışan farklı makinelerde birden fazla RDP oturumu olabilir ve bunlardan sadece birini öldürmem gerekir.
#+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 betiğinin bölümünü dikkatlice ikame etmek gerekir . Etkin olduğunda RDP oturumunun Pencere Başlığı ile eşleşmesi gerekir. Genelde aşağıdaki prosedürleri kullanarak aradım: 1. Bir Pencerede bir RDP oturumu açın, yani tüm aktif monitörleri yaymadan 2. Bir "pencere" için tüm tanımlayıcıları gösteren bir AHK yardımcı programı olan "Windows Spy" 'ı açın: tanımlayıcıların tam kümesi Pencere Başlığı, işlem_adı ve win_class_name içerir.
Not: Haftalık ev (-kodu) iyileştirme oturumu sırasında , tsdiscon
sorunu tekrar çözmek için yola çıktım . Çok benzer sorgu terimleriyle, bu eski soruyu yeniden keşfettiğim için mutluyum. Belgeleri biraz daha dikkatlice okuduğumda, benim tüm kullanımları için tek bir komutta bahse girmemem gerektiği açıkça ortaya çıktı. Böylece bu uzun soluklu cevap gel. Umarım RDP ile oynayan insanlara çok yardımcı olabilir.