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:
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):
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) |