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ć?
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ć?
Odpowiedzi:
W polu tekstowym wpisz:
%windir%\System32\tscon.exe 0 /dest:console
(Patrz poniżej)
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.
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
%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 for
przetwarzaniem składni, a także dodaje cmd
opcje (dla skrótu). W połączeniu z odpowiednią ikoną (użyłem ikony wylogowania z Shell32.dll
), staje się podobna do tej .
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.
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