alehof
Goto Top

Windows XP Remotedesktop (MSTSC) Verbindungsclient abfragen

Windows XP Remotedesktop (MSTSC) – Verbindungsclient abfragen


Hallo zusammen,

ich möchte auf einem Windows XP Client abfragen, ob ich direkt daran arbeite oder ob ich per RDP verbunden bin. Das Script/die Abfrage soll auf dem aufgeschalteten Client ausgeführt werden.
Ich weiß, dass es eine Möglichkeit geben muss jedoch habe ich zurzeit keinen Ansatz.

Im Schritt zwei möchte ich noch wissen, wie bei einer Remotesession der Computer heißt von dem die Verbindung aufgebaut wurde.

Hat jemand von euch da Erfahrung?


Vielen Dank für eure Hilfe

Content-ID: 72613

Url: https://administrator.de/contentid/72613

Ausgedruckt am: 26.11.2024 um 09:11 Uhr

TuXHunt3R
TuXHunt3R 03.11.2007 um 13:59:16 Uhr
Goto Top
Im Taskmanager im Reiter "Benutzer" sieht man alle aktuell angemeldeten User, den Sessiontyp (Console oder RDP) sowie bei RDP-Verbindungen den Client, von dem die Verbindung hergestellt wurde.

Edit: "Console" bedeutet, dass dieser Benutzer direkt an der Kiste angemeldet ist. Die anderen Verbindungen sind RDP-Verbindungen
alehof
alehof 03.11.2007 um 14:12:53 Uhr
Goto Top
Hallo TuXHunt3R,

vielen Dank für deine Antwort leider gibt es den Reiter "Benutzer" bei Windows XP nicht. Ich kenne diesen Reiter nur aus den Server-Varianten.

Besser wäre sogar ein Befehl oder Umgebungsvariable weil ich diese Abfrage ja in einem Script verarbeiten möchte.
TuXHunt3R
TuXHunt3R 03.11.2007 um 14:29:00 Uhr
Goto Top
Besser wäre sogar ein Befehl oder Umgebungsvariable weil ich diese Abfrage ja in einem Script > verarbeiten möchte.

Ich nehme an, du redest von einem Batchfile?


Unter Vista gibts den Reiter "Benutzer", ich habe aber gerade mal auf einem XPPro-PC nachgeschaut. Den gibts dort tatsächlich nicht, ich entschuldige mich für die Falschaussage.

Folgende Möglichkeiten hast du per Batch:

  1. Das Kommandozeilen-Tool "qwinsta". Gib dazu einfach "qwinsta" in der CMD-Konsole des entsprechenden PCs ein. Das Tool ist auf jeder XP-Pro Kiste drauf. Mit "qwinsta /?" wird die Hilfe zu diesem Tool ausgegeben.
  2. Die Umgebungsvariable %sessionname%. Diese wird beim Login je nach Sessiontyp anders gesetzt.
alehof
alehof 03.11.2007 um 15:11:28 Uhr
Goto Top
Super, das ist genau das was ich brauche.

Das i-Tüpfelchen wäre jetzt noch wenn ich den Clientname herausbekomme, von welchem die RDP-Session gestartet wird.

Hast du da auch eine Idee?
TuXHunt3R
TuXHunt3R 03.11.2007 um 16:29:57 Uhr
Goto Top
Da fällt mir spontan nichts ein. Eventuell kommt mir mal was in den Sinn.

Noch was, hab ich gerade rausgefunden:

Mit dem Befehl "query session" kannst du präzisere Abfragen zu den Sessions eines beliebigen Rechners machen. Das Help vom Befehl "query session":

Informationen über Terminalsitzungen anzeigen.

QUERY SESSION [Sitzungsname | Benutzername | Sitzungskennung]
              [/SERVER:Servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER]

  Sitzungsname        Gibt die Sitzung an.
  Benutzername        Gibt den Benutzernamen an.
  Sitzungskennung     Gibt die Sitzungskennung an.
  /SERVER:Servername  Abzufragende Server (Standard ist der aktuelle Server).
  /MODE               Zeigt aktuelle Leitungseinstellungen an.
  /FLOW               Zeigt aktuelle Flusssteuerungseinstellungen an.
  /CONNECT            Zeigt aktuelle Verbindungseinstellungen an.
  /COUNTER            Aktuelle Zählerinformationen für die Terminaldienste.

Betreffend der Abfrage des PCs, vom dem die Verbindung hergestellt wurde, muss ich schauen. Eventuell fällt mir wirklich noch was ein.

Edit: Mir fällt gerade auf, dass "query" ein sehr interessanter Befehl ist. Gib doch mal "query /?" ein. Da kann man einen Haufen Zeugs abfragen.

Edit 2: Wieviele Clients hat dein Netzwerk, d.h. von wievielen Clients aus könnte ein User auf deine Kiste eine Verbindung herstellen?
alehof
alehof 04.11.2007 um 10:38:30 Uhr
Goto Top
Hallo TuXHunt3R,

Vielen Dank für deine Antworten und über den Befehl "qwinsta" kann ich auch die Auswertung machen.

Den Befehl "query session" gibt es leider unter Windows XP nicht.


Trotzdem muss es doch eine Möglichkeit geben mit Bordmitteln auch den Clientnamen abfragen zu können, von welchem die Session aufgebaut wurde.


Hat jemand noch eine Idee?
fritzo
fritzo 06.11.2007 um 11:37:16 Uhr
Goto Top
Hi,

ist ganz einfach, das ist eine bereits vorgegebene Systemvariable, die Du auch sehen kannst, wenn Du Dir in der Dosbox mit "set" die Variablen anzeigen lässt. Führ in der Sitzung den folgenden Befehl aus:

echo %clientname%

Wenn Du alle RDP-Verbindungen loggen willst, pipe die Ausgabe in ein Logfile:

@echo %clientname% >> c:\windows\tsconnects.log

Das kannst Du zB in die Datei c:\windows\usrlogon.cmd einfügen - dieses Batchfile wird bei jedem RDP-Connect gestartet.

Grüße,
fritzo
alehof
alehof 06.11.2007 um 14:04:43 Uhr
Goto Top
Hallo fritzo,

Vielen Dank für deine Antwort leider funktioniert diese Lösung nicht stabil.

Wenn ich mich per RDP auf einem Client einlogge (d. h. direkt einen Benutzer anmelde) wird die Umgebungsvariable erzeugt und ich kann sie auswerten. Anders sieht es jedoch aus, wenn ich bestehende Sessions übernehme, in beide Richtung (Console -> Remote; Remote -> Console) da wird die Variable nicht erzeugt bzw. nicht überschrieben/angepasst und deswegen ist das keine gesicherte Lösung.


Ich habe auch einen weiteren Ansatz gefunden und zwar frage ich den Port 3389 ab.

netstat | find "3389"


Das Problem hier ist allerdings nur sehe welcher von welchem Client aus die Remotesession initiiert wurde aber nicht unter welchem Account der Benutzer abgemeldet ist. Auch weiß ich nicht wie sich das bei einem Windows 2003 Server verhält da ja hier standardmäßig 3 parallele Sessions möglich sind.


Was gibt es hier noch für Möglichkeiten?


Viele Grüße