RDExSessionInfo [DE]

RDExSessionInfo – Daten über RDP-Sitzungen gewinnen

Ob Bildschirmabmessungen, Farbrtiefe oder Idle Time – diese Daten über RDP- (oder auch Konsolen-)Sitzungen können sehr nützlich sein. Mit den herkömmlichen Skript-Mitteln sind solche Daten allerdings recht schwer zu bekommen. Geliefert werden sie von der nativen Windows-API „wtsapi32.dll“. RDExSessionInfo ist ein PowerShell-Wrapper über einen Teilbereich dieser API, den ich aus lauter Verzweiflung selbst geschrieben habe.

Status des Projektes

Work in Progress, folgendes ist geplant:

  • Aufruf über mehrere Hosts, womit z.B. auch das Pipen der Get-RDUserSession-Ausgabe in einem RDS-Deployment möglich wäre
  • Weitere Informationen über RemoteFX und einzelne Virtual Channels (hier muss ich noch in den APIs wühlen)
  • Ein zweites Cmdlet (der Vollständigkeit halber) zum Ermitteln der Server-Konfigurationen

Verwendung von RDExSessionInfo

Das Modul exportiert ein einzelnes Cmdlet:

Einen schnellen Überblick über die offenen Sitzungen kann man durch einen einfachen Aufruf gewinnen:

rdex_table

Auf gut besuchten Terminalservern kann es sich lohnen, durch Eingabe von UserName nach Namen zu filtern. Es sind mehrere Namen als Array sowohl über den Parameter als auch von der Pipeline möglich.

Läßt man den Parameter -HostServer weg, so wird die Maschine abgefragt, auf der das Cmdlet aufgerufen wird

Das Ausgabe-Objekt „RDEXSessionInformation“ umfasst folgende Eigenschaften (wobei EncryptionLevel derzeit noch nicht befüllt ist):rdex_member

Download

Das Modul ist in der PSGallery veröffentlicht (https://www.powershellgallery.com/packages/RDExSessionInfo) und auch hier zum Download verfügbar.

Versionsverlauf und Changelog

12.11.2016 1.1.0.0 Abfrage eines anderen Servers möglich (Parameter -HostServer)
Zeitwerte, die nicht gesetzt sind, liefern nun NULL zurück statt 01.01.1601 01:00:00
08.10.2016 1.0.0.0 (Initialversion)