Jump to content

RDP Client Namen auslesen


Direkt zur Lösung Gelöst von cj_berlin,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo.

Irgendwie heute mal wieder Brett vorm Kopf...

mit "qwinsta" kann ich die verbunden RDP-Sitzungen auslesen. Soweit gut.

 

Nur muss ich den RDP-Client-Namen, wenn es geht mit dem Zugehörigen Benutzer, anzeigen/auslesen.

 

Hier komme ich nicht weiter... Hat da jemand eine Idee oder Script?!?!

 

VG, Lars

Geschrieben

Hi,

 

möchtest du als Admin eine (einmalige) Übersicht oder willst du das in der Session des Users verwenden?

  • Als Admin einmalig: Task Manager und die Spalte Clientname einblenden
  • Als Admin per Script bspw.: In HKEY_USERS die SIDs der angemeldeten User durchlaufen und unter "HKEY_USERS\<SID>\Volatile Environment\<Session-Id>" den "Clientname" auslesen
  • Als User
    • bspw. in der Registry: "HKEY_CURRENT_USER\Volatile Environment\<Session-Id>"  den "Clientname" auslesen
    • bspw. in "%CLIENTNAME%"

 

HTH

Jan

Geschrieben (bearbeitet)

Hi.

Ja, hätte ich auch gleich schreiben können. Sorry....

Ich habe eine kleinen Terminalserver.

 

Hier habe ich 20 angemeldete Benutzer die ich mit "qwinsta" (Powershell) auslesen kann.

Und hier, wenn es denn geht würde ich gerne ein Powershell script nutzen um den Hostnamen auch gleich anzuzeigen, in den idetischen Tabelle.

Also möchte ich den Befehl gerne als Admin, auf dem Server ausführen.

 

Sollte das so nicht gehen, auch jeder andere Weg per Powershell oder CMD.

 

 

 

 

 

bearbeitet von Quickly1971
Geschrieben

Wenn es erstmal nur ein Terminalserver ist, wäre das ein quick and dirty Ansatz, der beendet werden könnte/möchte:

$objRegPaths = Get-Item -Path Registry::HKEY_USERS\S-1-5-21* |
    Where-Object { -not $_.Name.ToLower().EndsWith("classes") }

foreach($r in $objRegPaths){
    $curSID = New-Object System.Security.Principal.SecurityIdentifier($r.PSChildName)
    $curUser = $curSID.Translate([System.Security.Principal.NTAccount])
    $curPath = Join-Path -Path $r.PSPath `
        -ChildPath "Volatile Environment"
    $curPath = Get-ChildItem -Path "$curPath"
    $curClientName = Get-ItemPropertyValue -Path $curPath.PSPath `
        -Name "CLIENTNAME"
    Write-Host "User: $curUser; Client $curClientName"
}

 

Geschrieben (bearbeitet)

Das Problem mit Registry und Umgebungsvariable ist, dass es den Client beinhaltet, mit dem die Sitzung ursprünglich aufgebaut wurde, nicht den aktuellen Client.

Falls sie nicht identisch sind, natürlich 🤣

bearbeitet von cj_berlin
  • Danke 1
Geschrieben (bearbeitet)

xxx

vor 7 Minuten schrieb cj_berlin:

Das ist neu. Welche Server-Version?

Was ist neu?!?!?

Nur zum Verständnis: Ich habe Deinen Vorschlag als "beste Lösung" markiert.

Oder wie jetzt?!?!?

 

Microsoft Windows Server 2019 Standard x64
Leider habe ich gerade keinen 2022er als TS zur Hand...
bearbeitet von Quickly1971
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...