Jak mogę przywrócić sesję pulpitu zdalnego do lokalnej konsoli?

15

Po zakończeniu połączenia ze zdalnym pulpitem chciałbym móc przywrócić pulpit zdalny do lokalnej konsoli, aby użytkownik nie musiał ponownie wpisywać hasła i logować się ponownie.

Jak mogę utworzyć skrót na pulpicie, aby to zrobić?

glenviewjeff
źródło

Odpowiedzi:

15
  1. Utwórz skrót na pulpicie, klikając pulpit prawym przyciskiem myszy i wybierając nowy, a następnie wybierz skrót.
  2. W polu tekstowym wpisz:

    %windir%\System32\tscon.exe 0 /dest:console (Patrz poniżej)

  3. Kliknij prawym przyciskiem myszy nowo utworzony skrót, kliknij właściwości.
  4. Kliknij kartę skrótu i ​​kliknij przycisk Zaawansowane.
  5. Zaznacz pole „Uruchom jako administrator” i kliknij OK.

Jeśli to nie zadziała, spróbuj zmienić cyfrę zero ( tscon.exe 0 /dest...) w kroku 2 na numer jeden, a jeśli to nie zadziała, zwiększaj ją do momentu zwolnienia pulpitu zdalnego.

Alternatywnie, otwórz powłokę z menu start, metę cmd. Wpisz qwinsta Enteri wyszukaj identyfikator sesji, która jest w stanie aktywnym (będzie miała >znak na początku nazwy sesji). To numer, którego musisz użyć w kroku 2.

Aby przywrócić pulpit konsoli, wystarczy dwukrotnie kliknąć skrót i zezwolić administratorowi na dostęp.

glenviewjeff
źródło
bardzo dobrze zrobione :)
JD
ponieważ natknęliśmy się na to z powodu tego problemu : pamiętaj, że podczas korzystania z obejścia z tscon sesja pozostaje otwarta bez blokady! oznacza to, że każdy, kto ma połączenie z konsolą (na przykład za pośrednictwem konsoli menedżera maszyn wirtualnych lub vsphere), może korzystać z otwartej sesji nawet od innego użytkownika bez logowania. Tak więc w używanym skrypcie powinna być także sesja lcok
rominator007
8

Oto wersja, która pozwala uniknąć zależności od narzędzi GNU. Wykorzystuje findstr, który jest dostarczany z systemem 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
Kim
źródło
7
Oto moja wersja, zoptymalizowana pod kątem jednowierszowej, aby była przyjazna dla skrótów: %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"zastępuje zastępowanie >zmiennych środowiskowych dodatkowym forprzetwarzaniem składni, a także dodaje cmdopcje (dla skrótu). W połączeniu z odpowiednią ikoną (użyłem ikony wylogowania z Shell32.dll), staje się podobna do tej .
Helder Magalhães,
Musiałem uruchomić ten skrót jako administrator, aby działał. Kliknij prawym przyciskiem myszy> Właściwości> Zaawansowane
James Esh
2

Odpowiedź glenviewjeffa doprowadziła mnie do końca, ale identyfikator sesji nie zawsze 1. Jeśli spróbujesz odłączyć sesję nasłuchiwania lub konsoli w ten sposób, pojawi się komunikat „Błąd 7045” - żądany dostęp do sesji zostanie odrzucony lub jeśli identyfikator sesji nie istnieje błąd SessionID nie został znaleziony.

Zrobiłem mały plik wsadowy, aby wyciągnąć bieżącą sesję. Podczas gdy robiłem to w systemie Windows XP, musiałem qwinsta zamiast zapytania o sesję, aby ustalić aktualny identyfikator. Ten plik wsadowy korzysta z narzędzi wiersza polecenia unix, używam Gnu w systemie Windows ( https://github.com/bmatzelle/gow/downloads ), aby mieć do nich dostęp. Wyciąga bieżącą sesję, wyszukując znak „>”, a następnie ponownie przypisuje ją do sesji konsoli.

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

Potrzebowałem tego dla maszyny podłączonej do skanera Fujitsu IX500, skaner skanuje tylko, jeśli ekran nie znajduje się na ekranie wyboru nazwy użytkownika / logowania w systemie Windows, co dostajesz, gdy wylogujesz się lub rozłączysz sesję normalnie. Ponieważ maszyna działa bez ekranu, chcę móc łączyć się przez rdp, ale jeśli to zrobię, nie będę mógł użyć przycisku skanowania sprzętu, dopóki nie zaloguję się ręcznie lub nie uruchomię ponownie. Powyższy plik wsadowy rozwiązuje ten problem.

Simon D.
źródło
0

Nie mogłem uruchomić polecenia pliku wsadowego Simona D. Oto, co działało dla mnie w systemie Windows 7 x64:

for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $3}"') do tscon %%i /dest:console
dralthiace
źródło