RDSMan

Mit Windows Server 2012 wurde auf Terminalservern der Remote Desktop Services Manager oder auch Terminal Services Manager, den viele Benutzer unter Server 2008 noch genutzt haben, von Microsoft abgelöst. 

Seitdem erfolgt die Verwaltung von RDS-Sammlungen / RDS-Collections mit über den regulären Server Manager:

RDS Verwaltung via Server Manager

In vielen Umgebungen werden kleinere administrative Tätigkeiten, wie das Trennen oder Abmelden von Benutzer, sowie der Spiegelung von Sitzungen auch von ausgewählten „normalen“ Benutzern getätigt.
Bisher ließ sich dafür der Remote Desktop Services Manager auch auf einem RDS-Host direkt einem Benutzer zur Verfügung stellen – das ist nun mit dem Server-Manager in einer beschränkten Umgebung nicht mehr ohne weiteres möglich. Hier gibt es aber Alternativen.

Eine Kenntnis von aministrativen Anmeldedaten und die Verwaltung auf dem RD-Gateway über den Servermanager stellt wiederum ein höheres Sicherheitsrisiko und weniger Komfort dar. Zusätzlich sind die Ladezeiten bei geschlossenem Servermanager u.U. recht lang und es sind keine Mehrfachaktionen mit mehreren Benutzersitzungen möglich.

Auch aus administrativer Sicht – wenn z.B. noch angemeldete Benutzer schnell über einen bevorstehenden Neustart oder Wartungsarbeiten informiert werden sollen – ist der Servermanager häufig ein umständlicher Weg. Automatisierungen oder alternative Lösungen via PowerShell sind zwar möglich aber auch nicht komfortabel.

Lösungsmöglichkeit

Auch auf Terminalservern / RDS-Hosts mit Windows Server 2012-2019 lassen sich noch ohne vollständige lokale Administratorrechte, gezielt Berechtigungen für die Verwaltung von RD-Sessions setzen.

Via WMI kann dazu auf jedem Host/Terminalserver eine entsprechende Active Directory Gruppe hinterlegt werden (hier im Beispiel „ADGROUP\RDSFarm-Support“):

wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName="RDP-Tcp") CALL AddAccount "ADGROUP\RDSFarm-Support",2

Die Einstellungen greifen bei nächster Anmeldung der zu verwaltenden Benutzersitzung.

Damit ist die Grundlage mit den Berechtigungen gegeben, jedoch fehlt noch eine praktische Verwaltungsoberfläche.

Hierfür habe ich eine entsprechende Oberfläche in einem Tool entwickelt:

RDSMan

Der RDSMan lässt sich auf jedem PC oder auch auf einem Server oder RDS-Host/Terminalserver selbst ausführen und listet augenblicklich die derzeit aktiven Benutzer auf den angegebenen Servern (oder PCs) auf und stellt somit eine gute Alternative für diverse Anwendungen dar:

Unterhalb der Benutzerliste können auf Wunsch Statistiken zu aktiven/inaktiven und getrennten Sitzungen pro Server angezeigt werden.
Pro Sitzung werden neben Benutzername, Servername, Sitzungszustand, Anmelde- und Trennungszeit auch Werte für Inaktivität und Details zum verbundenen Client angezeigt.
Die Details helfen dabei alte oder inaktive Sitzungen schnell zu identifizieren.

Das Kontextmenü ermöglicht es sowohl einzelne als auch mehrere Benutzer verteilt über alle Server auszuwählen und alle gängigen Aktionen anzustoßen.

Auch und insbesondere Mehrfachauswahl ist hier im gegensatz zum Server-Manager möglich.

Neben der klassichen Nachrichten-Funktion kann zudem eine schnelle Umfrage mit Ja/Nein/Abbrechen unter den markierten Benutzern gestartet werden.

Das Statusfenster gibt dabei parallel stets an, ob alle Aktionen ausgeführt worden sind und mit welchem Ergebnis.

Vor allem bei Mehrfachauswahl ist es hilfreich zu sehen, ob z.B. die Nachricht jeden Benutzer auch erreicht hat.

In den Programmeinstellungen lassen sich beliebige Hosts via Name, FQDN oder IP-Adresse angeben. Diese werden bei jedem Abruf entsprechend berücksichtigt.

Die Hostdetails/-statistiken im unteren Bereich können ausgeblendet werden und jede einzelne Funktion kann einzeln aktiviert oder deaktiviert werden.

Je nach Benutzer können die Einstellungen innerhalb der Anwendung auch gesperrt oder vollständig ausgeblendet werden.

Umfragen

Als praktische Zusatzfunktion neben dem klassischen senden von Nachrichten an Sitzungen, können auch kleine Umfragen erstellt werden.

Die Antworten/Rückmeldungen einer Umfrage können in einem seperaten Fenster im Anschluss gesammelt und ausgewertet werden:

Konfiguration

Alle Einstellungen werden in einer config.ini Datei gespeichert und können folglich auch manuell bearbeitet werden. 

Derzeit sind die folgenden Einstellungen möglich:

[RDSMan]
RDSHosts=RDSH1,RDSH2,RDSH3
AllowMessage=1
AllowQuestion=1
AllowShadow=1
AllowDisconnect=1
AllowLogoff=1
ShadowConsentPrompt=0
HideHostList=0
ShowSettings=1
AllowSettingsChange=1
ShowStatusWindow=1

Voraussetzungen

Für das Spiegeln von Sitzungen (Ansicht/Steuerung) müssen die enstprechenden Gruppenrichtlininen auf den RDS-Hosts gesetzt sein.

Wichtig ist hier die Richtlinie „Regeln für Remotesteuerung von Remotedesktopdienste-Benutzersitzungen festlegen“:  Benutzerkonfiguration → Administrative Vorlagen → Windows-Komponenten → Remotedesktopdienste → Remotedesktopsitzungs-Host → Verbindungen

RDSman ist bisher in Umgebungen mit bis zu 10 RDSHosts und 200 aktiven Benutzern getestet.
Als Betriebssysteme funktionieren: 

  • Windows 7 / 8 / 10
  • Windows Server 2008 R2
  • Windows Server 2012 R2
  • Windows Server 2016
  • Windows Server 2019

Ein installiertes .NET-Framework 4.7 wird vorausgesetzt.

Changelog

Version 3.0.0.0

  • Ergänzung der Umfragefunktion

Download

RDSMan steht derzeit nicht zum freien Download zur Verfügung, sondern kann per Mail individuell angefragt werden.

Gern unterstütze ich dann bei Test und Inbetriebnahme in der jeweiligen Umgebung.