Wie kann ich eine Remotedesktopsitzung auf der lokalen Konsole wiederherstellen?

15

Nachdem ich mit einer Remotedesktopverbindung fertig bin, möchte ich den Remotedesktop auf der lokalen Konsole wiederherstellen können, damit der Benutzer das Kennwort nicht erneut eingeben und sich erneut anmelden muss.

Wie kann ich eine Desktop-Verknüpfung erstellen, um dies zu tun?

Glenviewjeff
quelle

Antworten:

15
  1. Erstellen Sie eine Desktopverknüpfung, indem Sie mit der rechten Maustaste auf den Desktop klicken und Neu auswählen und dann die Verknüpfung auswählen.
  2. Geben Sie in das Textfeld Folgendes ein:

    %windir%\System32\tscon.exe 0 /dest:console (Siehe unten)

  3. Klicken Sie mit der rechten Maustaste auf die neu erstellte Verknüpfung und klicken Sie auf Eigenschaften.
  4. Klicken Sie auf die Registerkarte Verknüpfung und dann auf die Schaltfläche Erweitert.
  5. Aktivieren Sie das Kontrollkästchen "Als Administrator ausführen" und klicken Sie auf "OK".

Wenn dies nicht funktioniert, versuchen Sie, die Nummer Null ( tscon.exe 0 /dest...) in Schritt 2 in die Nummer Eins zu ändern. Wenn dies nicht funktioniert, erhöhen Sie die Anzahl , bis der Remotedesktop freigegeben wird.

Alternativ öffnen Sie eine Schale mit Startmenü, Lauf cmd. Geben Sie ein qwinsta Enterund suchen Sie nach der ID der Sitzung, die sich im aktiven Status befindet ( >am Anfang des Sitzungsnamens wird ein Zeichen angezeigt). Das ist die Nummer, die Sie in Schritt 2 verwenden müssen.

Wenn Sie den Konsolendesktop wiederherstellen möchten, doppelklicken Sie einfach auf die Verknüpfung und gewähren Sie dem Administrator Zugriff.

Glenviewjeff
quelle
Sehr gut gemacht :)
JD
da wir aufgrund dieses Problems darauf gestoßen sind : Denken Sie daran, dass die Sitzung bei der Verwendung des Workarounds mit tscon ohne Sperre geöffnet bleibt! das bedeutet , dass jeder, der eine Verbindung zur Konsole (zB über Virtual Machine Manager - Konsole oder vsphere) die offene Sitzung von einem anderen Benutzer ohne Anmeldung hat auch in Also in dem verwendeten Skript sollte auch eine Sitzung lcok da sein kann.
rominator007
8

Hier ist eine Version, die die Abhängigkeit von GNU-Tools vermeidet. Es wird findstr verwendet, das im Lieferumfang von Windows enthalten ist.

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
quelle
7
Hier ist meine Version von, optimiert auf einen Einzeiler, um eine Verknüpfung zu ermöglichen: %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"Sie ersetzt das >Ersetzen von Umgebungsvariablen durch zusätzliche forParsing-Tricks und fügt cmdOptionen (für die Verknüpfung) hinzu. Wenn es mit einem richtigen Symbol kombiniert (ich das Abmeldesymbol verwendet Shell32.dll), wird es auf ähnliches dies .
Helder Magalhães
Ich musste diese Verknüpfung als Administrator ausführen, damit sie funktioniert. Rechtsklick> Eigenschaften> Erweitert
James Esh
2

Durch die Antwort von glenviewjeff habe ich den größten Teil des Weges dorthin zurückgelegt, aber die Sitzungs-ID ist nicht immer 1. Wenn Sie versuchen, die Abhör- oder Konsolensitzung wie folgt zu trennen, wird der "Fehler 7045" angezeigt - der angeforderte Sitzungszugriff wird verweigert, oder die Sitzungs-ID existiert nicht. Ein Fehler mit der Sitzungs-ID wurde nicht gefunden.

Ich habe eine kleine Batch-Datei erstellt, um die aktuelle Sitzung abzurufen. Da ich dies unter Windows XP getan habe, musste ich eher qwinsta als eine Sitzung abfragen, um die aktuelle ID herauszufinden. Diese Batch-Datei verwendet Unix-Befehlszeilendienstprogramme. Ich verwende Gnu unter Windows ( https://github.com/bmatzelle/gow/downloads ), um auf diese zuzugreifen. Die aktuelle Sitzung wird durch Suchen nach einem ">" - Zeichen abgerufen und anschließend wieder der Konsolensitzung zugewiesen.

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

Ich brauchte dies für einen Computer, der an einen Fujitsu IX500-Scanner angeschlossen ist. Der Scanner scannt nur, wenn sich der Bildschirm nicht auf dem Auswahlbildschirm für Benutzername / Anmeldung in Windows befindet. Dies wird angezeigt, wenn Sie sich abmelden oder eine Sitzung normal trennen. Da der Computer ohne Bildschirm ausgeführt wird, möchte ich eine Verbindung über RDP herstellen können. Andernfalls könnte ich die Hardware-Scan-Schaltfläche erst verwenden, wenn ich mich manuell angemeldet oder neu gestartet habe. Die obige Batchdatei löst dieses Problem.

Simon D
quelle
0

Ich konnte den Batchdateibefehl von Simon D nicht zum Laufen bringen. Das hat bei mir unter Windows 7 x64 funktioniert:

for /f %%i in ('qwinsta ^| grep "^>" ^| awk "{print $3}"') do tscon %%i /dest:console
Dralthiace
quelle