AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Remote Desktop: Rechner eindeutig identifizieren

Ein Thema von Denkfehler · begonnen am 21. Sep 2021 · letzter Beitrag vom 21. Sep 2021
Antwort Antwort
Denkfehler

Registriert seit: 21. Sep 2021
4 Beiträge
 
#1

Remote Desktop: Rechner eindeutig identifizieren

  Alt 21. Sep 2021, 15:20
Hallo zusammen,

Szenario:
  • Remote Desktop Umgebung von Mircosoft
  • Arbeitsplatz Stationen (Fat Clients) greifen über die Anwendung "Remotedesktopverbindung" (mstsc.exe) auf einen Server zu
  • Auf dem Server wird von jedem zugreifenden PC eine Anwendung ausgeführt
  • Arbeitsplatz Stationen werden "auseinander gehalten" über den Computernamen, der ermittelt werden kann (Vgl. https://www.delphipraxis.net/35522-c...rausfiden.html) oder auch folgender Code
    Code:
             if WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, SessionInfoPtr^[i].SessionId, WTSUserName, acNameBuff, nByteCount) then begin
                     aWTSUsername:=StrPas(PChar(acNameBuff));
                    WTSFreeMemory(acNameBuff);
                 end;
                 if WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, SessionInfoPtr^[i].SessionId, WTSClientName, acNameBuff, nByteCount) then begin
                     aWTSClientname:=StrPas(PChar(acNameBuff));
                    WTSFreeMemory(acNameBuff);
                 end;

Problem: Der Computername des zugreifenden PCs ist nicht immer eindeutig. Manchmal haben Rechner den SELBEN Namen. Es entstehen Probleme.

Lösungsansatz: MAC Adresse auslesen -> geht aber nicht immer -> insb. wenn der zugreifende PC hinter einer Hardware Firewall steht!

Frage: Fallen Euch andere Lösungsansätze an, um zugreifende Rechner EINDEUTIG zu identifizieren wenn diese über RDP auf den Server zugreifen?

Danke für Input!

VG

Geändert von Denkfehler (21. Sep 2021 um 15:23 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#2

AW: Remote Desktop: Rechner eindeutig identifizieren

  Alt 21. Sep 2021, 15:39
WTSQuerySessionInformationA function (wtsapi32.h)

WTS_INFO_CLASS enumeration (wtsapi32.h)

WTS_CLIENT_ADDRESS structure (wtsapi32.h)
Code:
typedef struct _WTS_CLIENT_ADDRESS {
  DWORD AddressFamily;
  BYTE Address[20];
} WTS_CLIENT_ADDRESS, *PWTS_CLIENT_ADDRESS;
Wenn AddressFamily = AF_INET, enthält Address die IPV4-Adresse, bei AddressFamily = AF_INET6 bekommt man in Address die IPV6-Adresse.

Eventuell kannst Du dadraus ja einen Lösungsansatz bauen.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Remote Desktop: Rechner eindeutig identifizieren

  Alt 21. Sep 2021, 15:50
Ich hätte spontan einfach den Windows-Event-Viewer ausgelesen, da wird sowas doch geloggt.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
614 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Remote Desktop: Rechner eindeutig identifizieren

  Alt 21. Sep 2021, 16:14
Wir verwenden den Name des Nutzers der an dem Rechner angemeldet ist. Das hat bisher immer gereicht.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Denkfehler

Registriert seit: 21. Sep 2021
4 Beiträge
 
#5

AW: Remote Desktop: Rechner eindeutig identifizieren

  Alt 21. Sep 2021, 16:21
Ergänzung: Neben den Problemen technischer Natur durch mehrfach benutzte, identische Rechnernamen gibt es auch ein lizenztechnisches: es handelt sich um Device Client Lizenzen, d.h. nur lizensierte Rechner dürfen die Anwendung auf dem Server starten. Ein Rechner bekommt die Lizenz anhand des Rechnernames zugeteilt - das ist dann aber nicht der Weisheit letzter Schluss. Ein weiteres Merkmal wäre gut - damit wären beide Probleme gelöst!

Aus diesem Grund fallen die Lösungsvorschläge Nutzername und IP leider raus.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#6

AW: Remote Desktop: Rechner eindeutig identifizieren

  Alt 21. Sep 2021, 16:42
Warum scheidet die IP aus?

Mehrere Rechner haben den gleichen Namen, aber unterschiedliche IP-Adressen. Andernfalls würde das nicht funktionieren.

Mehrere Rechner mit gleichem Namen mag in 'nem Netzwerk noch irgendwie funktionieren, ok ein Ping auf 'nen Rechnernamen wird dann eher ein Zufallsergebnis liefern. Mehrere Rechner mit gleicher IP in einem Netz dürfte aber kaum funktionsfähig sein.

Den Rechnernamen kann man dann zur Lizenzzuteilung nutzen, die IP um eindeutig einen bestimmten Rechner, von mehreren Rechnern gleichen Namens, zu identifizieren.

WTS_INFO_CLASS enthält auch noch 'ne WTSClientHardwareId, hilft die eventuell weiter?
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#7

AW: Remote Desktop: Rechner eindeutig identifizieren

  Alt 21. Sep 2021, 17:19
Hmm..

Solange Server und Clients im selben (Firmen-) Netz/Domäne sind und nicht übers Internet getrennt, dann sollte der Name eindeutig sein.

Sobald aber Internet mit Router im Spiel sind, dann hast Du schlechte Karten..

Der Router hat für alle daran hängende Clients die gleiche IP/MAC und Namen, und zwar den des Routers selber.
Da die Clients, wenn sie z.B. über verschiedene Router kommen auch alle den gleichen Clientnamen haben können könnte auch dadurch keine Eindeutigkeit erzeugt werden.

Zusätzlich gibt es noch das Problem der Kaskadierung, spich vom Client per RDP auf einen PC und von dort nochmals per RDP auf deinen Server..
Dann können sich alle Clients über diesen PC mit dessen Namen/IP/MAC an deinem Server anmelden. Somit müsstest Du Doppeltanmeldungen vom gleichen Client (hier der ZwischenPC) unterbinden..

Somit sieht es schlecht für eine Eindeutigkeit aus..
Das Problem haben auch alle Mobilapps..
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz