Auch ohne den Einsatz von Drittanbieter Software ist es möglich, Anmeldungen am Terminalserver protokollieren zu können. Alles was hierfür benötigt wird, sind ein paar vordefinierte Variablen und das Auslesen eines Wertes aus der Windows Registry. Wie einfach das Ganze funktioniert, beschreibe ich in diesem Artikel.

Benutzer Anmeldungen am Terminalserver protokollieren

Zunächst sei gesagt, dass Du Dich rechtlich absichern solltest, bevor Du damit beginnst die Anmeldezeiten von Anwendern mitzuschreiben. Frage im Zweifel beim Betriebsrat und / oder dem Datenschutzbeauftragten nach. Auch, wenn Du die Anmeldezeiten nur für eine Auswertung oder für das Troubleshooting benötigst.

Nachdem Du das geklärt hast, kannst Du die folgenden Schritte anwenden und somit die Anmeldungen am Terminalserver protokollieren:

Das Ermitteln der Werte ist dabei sogar ziemlich einfach. Du benötigst das aktuelle Datum, den Zeitpunkt der Anmeldung und den Benutzernamen des Anwenders, der sich am Terminalserver anmeldet. Auch den Clientnamen, von welchem die Verbindung aufgebaut wurde, lässt sich ausgeben.  Diese Werte kannst Du jederzeit über den folgenden Befehl ermitteln:

echo Der Benutzer %username% hat sich am %date% um %time% Uhr am Server %computername% angemeldet (Client: %clientname%).
Anmeldungen am Terminalserver protokollieren
Die Ausgabe der Variablen liefert Dir bereits alles was Du benötigst.

Mit Hilfe dieser einen Zeile kannst Du Dir nun ein Skript schreiben, welches Du bei der Benutzeranmeldung im Hintergrund ausführen kannst. Die Ergebnisse werden allesamt in eine Textdatei geschrieben, in der Du alle Anmeldeergebnisse fortlaufend aufgelistet bekommst. Das Skript sieht folgendermaßen aus:

@echo off
echo Der Benutzer %username% hat sich am %date% um %time% Uhr am Server %computername% angemeldet (Client: %clientname%). >> C:\Temp\Anmeldungen-protokollieren.txt

Skript bei jeder Anmeldung eines Benutzers ausführen

Diese Zeilen kopierst Du Dir nun einfach in eine neue Datei und benennst diese z.B. mit „Benutzernameldungen-protokollieren.cmd“. Mit der Dateiendung CMD wird Dein Skript ausführbar und Du kannst dieses damit per Doppelklick ausführen. Jedes Mal, wenn dieses Skript nun gestartet wird, schreibt es Dir die jeweiligen Daten des ausführenden Benutzers in die angegebene Textdatei. Dabei wird die Textdatei nicht überschrieben, sondern immer wieder erweitert.

Nun musst Du nur noch die Benutzer dazu „überreden“, dieses Skript auch auszuführen, sobald sie sich angemeldet haben. Getreu dem Motto „Was er nicht weiß, …“ bauen wir das Skript nun einfach in die Anmeldung ein. Dies erfolgt am einfachsten über die lokalen Gruppenrichtlinien des Terminalservers (ist aber auch genauso über die Gruppenrichtlinienverwaltung der Domäne möglich).

Öffne hierfür den lokalen Gruppenrichtlinienclient („gpedit.msc“) und navigiere in der Benutzerkonfiguration in die Windows-Einstellungen. Hier findest Du den Punkt „Skripts (Anmelden/Abmelden)“ unter welchem Du nun Skripte für das jeweilige Ereignis festlegen kannst. Mit einem Doppelklick auf „Anmelden“ öffnest Du den Dialog für die Auswahl der Skripte.

Anmeldungen am Terminalserver protokollieren
Skripte lassen sich mittels Gruppenrichtlinien sehr leicht mit der Benutzeranmeldung an einem Server verknüpfen.
Benutzeranmeldungen am Terminalserver protokollieren
Das Skript „Anmeldung.cmd“ wird nun jedesmal ausgeführt, sobald sich ein Benutzer am Terminalserver anmeldet.

Sobald die lokale Gruppenrichtlinie aktiviert wurde, werden sämtliche Anmeldungen in die Textdatei geschrieben. Damit kannst Du jederzeit nachvollziehen, zu welchem Zeitpunkt sich welcher Benutzer am Terminalserver angemeldet hat. Damit aber nicht genug: Mit dem Skript kannst Du nicht nur Anmeldungen am Terminalserver protokollieren, sondern auch die Abmeldungen. Hierfür kopierst Du das Skript einfach, passt den Text darin an („hat sich abgemeldet“) und bindest dieses zusätzliche Skript bei der Abmeldung des Benutzers ein.

Auch Abmeldungen lassen sich protokollieren

Heraus kommt eine Protokollierung über die An- und Abmeldungen an einem Terminalserver:

Abmeldungen am Terminalserver protokollieren
Mit Hilfe von Skripten für die An- und Abmeldung erhälst Du einen kompletten Überblick darüber, welche Benutzer am Terminalserver angemeldet waren.

Abschließend noch ein paar Hinweise:

  • Alle Benutzer sollten Schreibrechte auf den Pfad haben, in welchem die Protokollierungsdatei gespeichert wird.
  • Das Skript funktioniert auch auf Nicht-Terminalservern, jedoch wird die Variable %clientname% dabei nicht gesetzt.
  • Getestet habe ich dieses Skript auf einem Windows Server 2016 mit installierten Remotedesktopdiensten.
  • Wie bereits erwähnt, sollte die Protokollierung vor Einsatz genehmigt worden sein und die Benutzer sollten davon in Kenntnis gesetzt werden.
  • Wie Du auf einem lokalen Client den letzten Login eines Benutzers ermittelst, habe ich in diesem Artikel beschrieben: Letzter Login eines Benutzers.

Auch interessant:

Dieser Artikel ist wie alle anderen auf dieser Seite kostenlos für Dich und ich hoffe, ich konnte Dir weiterhelfen. Wer möchte, kann diesem Blog eine kleine Aufmerksamkeit in Form einer kleinen Spende (PayPal) oder über die Amazon Wunschliste zukommen lassen.