Windows 2012 R2 RDP-Server - Skript bei Disconnect und Reconnect

Mitglied: Der-Phil

Der-Phil (Level 3) - Jetzt verbinden

05.02.2016 um 14:15 Uhr, 4236 Aufrufe, 4 Kommentare, 2 Danke

Hallo!

Ich habe gerade zwei Anforderungen, bei denen ich einfach nicht weiterkomme...

Im Einsatz sind diverse Windows 2012 R2 Terminalserver. Was ich nun bräuchte sind zwei Funktionen:



1. Skript beim Disconnect
Findet ein Disconnect statt, soll ein Skript ausgeführt werden (keine Abmeldung, sondern Verbindungsunterbrechung oder ähnlich)

2. (noch wichtiger) Skript ausführen beim Reconnect
Wird der automatische Reconnect ausgeführt, soll auch hier ein Skript gestartet werden.


Habt ihr eine Idee, wie ich das umsetzen könnte?

Danke und Gruß
Phil
Mitglied: 126919
126919 (Level 1)
05.02.2016, aktualisiert um 14:18 Uhr
Eventlogtrigger auf die jeweiligen Connect- und Disconnect Events ?
https://ithompson.wordpress.com/2009/12/01/tracking-rdp-logons/

fk
Bitte warten ..
Mitglied: colinardo
05.02.2016, aktualisiert 15.03.2016
Hallo Phill,
ich würde es wie @126919 sagt über das Eventlog machen, leider ist der obige Link nicht mehr sehr aktuell und zeigt nicht die richtigen Eventlog-IDs.

Dazu gehst du wie folgt vor:
1. Aktivieren des Auditings für Anmeldeereignisse auf dem Server an dem sich die User anmelden
Dazu setzt man entweder per GPO die Überwachungsrichtlinie für Anmeldeereignisse:
Computerkonfiguration > Richtlinien > Windows-Einstellungen > Sicherheitseinstellungen > Lokale Richtlinien > Überwachungsrichtlinie > "Anmeldeereignisse überwachen" > Erfolg

Oder alternativ ohne GPO über die lokale Sicherheitsrichtline per secpol.msc
Sicherheitseinstellungen > Lokale Richtlinien > Überwachungsrichtlinie > "Anmeldeereignisse überwachen" > Erfolg

2. Anlegen der Eventlog-Trigger:
Dazu erstellst du jeweils einen Task für den Re- und den Disconnect und gibst unter Trigger einen neuen Ereignis-Trigger mit folgenden Eigenschaften an :

Für den Re-Connect eines Users
Eventlog-ID: 4778
0124f6dd7bb8b82518a7b7a7dc661db8 - Klicke auf das Bild, um es zu vergrößern

Für den Disconnect eines Users
Eventlog-ID: 4779
cedc0932d8801072e8af9eb46b9fcda3 - Klicke auf das Bild, um es zu vergrößern

Dann trägst du noch deine jeweiligen Scripte unter Aktion ein, fertig.
Alternativ dazu könntest du auch die vorhandenen Trigger im Task-Scheduler dazu benutzen:

0fc944ae9e034b90329e061e1a9c2d71 - Klicke auf das Bild, um es zu vergrößern

167db1c8169ad70fb6fb448f49534134 - Klicke auf das Bild, um es zu vergrößern

Achtung dazu noch dieser Hinweis: Mit der Methode hatte ich aber in manchen Situationen/Konfigurationen das Problem, dass sie zweimal kurz hintereinander triggert, gerade wenn man sich wieder mit einer Session verbindet. Das konnte ich mit obigem Workaround über die Eventlog-IDs erfolgreich umgehen, deswegen bevorzuge ich die erste Methode.

Zusätzliche Hinweise wenn man die Eigenschaften des Events an sein Skript weiterleiten möchte:
Man kann den jeweiligen User der sich angemeldet hat oder auch den Computer von dem aus sich dieser angemeldet hat aus dem Task an dein Script als Variable übergeben. Wie man dazu den Task anpassen muss habe ich in folgenden zwei Beiträgen schon mal beschrieben:
https://www.administrator.de/forum/wie-kann-ich-per-aufgabenplanung-eine ...
https://www.administrator.de/wissen/auf-geblockte-eingehende-oder-ausgeh ...
http://aymanstechblog.blogspot.de/2012/05/passing-event-details-as-argu ...

Kurzversion um die Tasks um die Variablen zu ergänzen:
  • Task als XML exportieren
  • XML-Datei öffnen und im Knoten EventTrigger folgendes XML-Schnippsel hinzufügen:
  • Task dann wieder in den Taskplaner importieren
  • Jetzt können die Variablen z.B. unter Argumente an dein PS Script übergeben werden indem man sie so schreibt $(AccountName)

Zur Veranschaulichung hier ein Beispiel für ein Powershell-Skript das diese Variablen benutzt um einen User nach dem Session-Disconnect direkt abzumelden:

Dazu erstellt man eine ps1-Datei mit folgendem Inhalt:
Alternativ für ältere Systeme (Server 2008R2) die das neue RemoteDesktop-Powershell-Modul nicht haben geht es auch mit folgendem Skript:
Und trägt dann im Task-Scheduler in den Task als Aktion folgendes ein:

Programm starten
Programm/Skript: powershell.exe
Argumente hinzufügen: -File "C:\Pfad\zum\Script\ForceLogoffAfterDisconnect.ps1" "$(AccountName)"

screenshot - Klicke auf das Bild, um es zu vergrößern

Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: 126919
126919 (Level 1)
05.02.2016, aktualisiert um 19:03 Uhr
@colinardo
Respekt - besser hätte man es nicht beschreiben können !

fk
Bitte warten ..
Mitglied: colinardo
15.03.2016 um 15:45 Uhr
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Bitte warten ..
Heiß diskutierte Inhalte
Exchange Server
Sicherheits-Update KB5001779 für Exchange 2013-2019
kgbornVor 1 TagInformationExchange Server9 Kommentare

Microsoft hat zum 13. April 2021 das Sicherheitsupdate KB5001779 für Exchange 2013-2019 veröffentlicht, um vier RCE-Schwachstellen zu schließen. Das Update sollte zeitnah installiert werden. ...

Datenschutz
Regierung testet Einsatz von Microsoft Azure-Cloud für die Bundescloud
VisuciusVor 1 TagInformationDatenschutz34 Kommentare

LÄUFT! Deutschland will Microsoft für die Bundescloud testen Ich hätts ja beinahe unter dem Topic "Humor" veröffentlicht. Aber der 1. April ist ja durch ...

Festplatten, SSD, Raid
Festplatte aus defekten Notebook ausgebaut - wird nicht erkannt - Wie gelange ich an meine Daten?
1nCoreVor 23 StundenFrageFestplatten, SSD, Raid13 Kommentare

Hallo liebe Community, nach 7 Jahren hat mein XMG Notebook seinen Geist aufgegeben In dem Notebook waren zwei Festplatten verbaut (eine für System und ...

Server
Server Anbieter mit 2 NICs gesucht
gelöst SilvergreenVor 1 TagFrageServer16 Kommentare

Hallo Community, ich bin auf der Suche nach einem Serveranbieter, der VPS/Cloud Server mit 2 Netzwerkkarten anbietet. Eine Internetsuche brache mich da leider nicht ...

Internet
Woher holt sich Android die Kontaktdaten von unbekannten Rufnummern?
gelöst anteNopeVor 1 TagFrageInternet8 Kommentare

Hallo zusammen, seit einiger Zeit merke ich, dass mir mein Android Gerät Namen und Informationen zu mir unbekannten Teilnehmern präsentiert. Soll heißen eine nicht ...

Windows Netzwerk
MS Lizenzierung - externe Scandienstleistung
monstermaniaVor 1 TagFrageWindows Netzwerk9 Kommentare

Hallo Allerseits, ich habe da mal eine Frage an die MS Lizenzspeziallisten. Eine externe Firma soll Scandienstleistungen für uns erledigen. Dazu ist angedacht, dass ...

Exchange Server
Exchange Update CU19 auf CU20 Fehler - Eine weitere Version dieses Produkts ist bereits installiert
gelöst StefanKittelVor 23 StundenFrageExchange Server6 Kommentare

Hallo, ich habe hier einen Exchange 2016 mit CU19 (15.1.2176.2). Darauf wollte ich nun CU20 installiert. Download Es erscheint Eine weitere Version dieses Produkts ...

Exchange Server
April 2021 Microsoft Exchange Server Security Updates
FrankVor 1 TagInformationExchange Server2 Kommentare

Microsoft has released security updates for vulnerabilities found in: Exchange Server 2013 Exchange Server 2016 Exchange Server 2019 These updates are available for the ...