LDAP AD Login-Statistik
Hallo zusammen,
gibt es eine Möglichkeit auf Windows Server 2019 die Logins von Nutzern zu tracken?
Ziel:
- Erzeugung einer Anzeige aller aktuell eingeloggten Domänenbenutzer
- Erzeugung einer Statistik von Uhrzeit und Anzahl Nutzer
Am liebsten wäre mir hierbei eine API, auf welche ich via z.B. AJAX zugreifen kann.
Falls das nicht per default möglich ist wäre ich bereit eine entsprechende API zu entwickeln.
Gibt es irgendeinen best practice wie ich am besten auf solche LDAP-Events zugreife um diese dann zu verarbeiten (in diesem Fall in eine Datenbank zu schreiben)?
Danke!
gibt es eine Möglichkeit auf Windows Server 2019 die Logins von Nutzern zu tracken?
Ziel:
- Erzeugung einer Anzeige aller aktuell eingeloggten Domänenbenutzer
- Erzeugung einer Statistik von Uhrzeit und Anzahl Nutzer
Am liebsten wäre mir hierbei eine API, auf welche ich via z.B. AJAX zugreifen kann.
Falls das nicht per default möglich ist wäre ich bereit eine entsprechende API zu entwickeln.
Gibt es irgendeinen best practice wie ich am besten auf solche LDAP-Events zugreife um diese dann zu verarbeiten (in diesem Fall in eine Datenbank zu schreiben)?
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 611187
Url: https://administrator.de/forum/ldap-ad-login-statistik-611187.html
Ausgedruckt am: 20.05.2025 um 05:05 Uhr
3 Kommentare
Neuester Kommentar
Hi,
weil es meines Wissens kein Logout-Event gibt, kannst Du das so erstmal vergessen.
Im AD wird zwar gespeichert, wann der Benutzer das letzte Mal irgendwo angemeldet wurde, aber das sagt nicht aus, ob diese Anmeldung interaktiv war oder nicht, ob es eine Desktopsitzung auf einem Client oder z.B. eine SMB-Sitzung auf einem Fileserver war. Usw. Weiterhin kann es sein, dass die Anmeldung am AD auch in einer durchgängig laufenden interaktiven Sitzung immer mal wieder erfolgt, weil z.B. irgendwelche Anwendungen aus dieser Desktopsitzung das immer mal wieder tun.
Was Du machen könntest und kein Hexenwerk ist:
Per GPO Login- und Logout-Scripte laufen lassen, welche irgendwo protokollieren, dass sich ein Benutzer interaktiv an einer Sitzung an- oder abgemeldet hat.
Oder Du könntest permanent von allen laufenden Computern die gerade angemeldeten Sitzungen abfragen und das irgendwo protokollieren. Wenn Du dann eine Sitzung nicht mehr "wiederfindest", dann kannst Du davon ausgehen, dass der Benutzer da abgemeldet wurde. Dafür müsstest Du Dir für jede Sitzung irgendein Flag setzen, damit Du diese zweifelsfrei wiedererkennen kannst.
Oder so ähnlich.
E.
Edit:
Oder Du schreibst Dir in .Net einen Dienst, welchen Du auf allen Computern laufen lässt. Und dieser wertet dann die Sitzungen aus. Aber auch dabei musst Du an alles in Frage kommende denken: Desktopsitzungen, Fileserversitzungen, Exchange, SQL Server, Drittanbieter (z.B. LDAP-Anbindungen der diversen Linux Systeme) und und und
Edit 2:
Ich habe gerade mal geschaut: Es gibt jetzt auch ein AD Attribut "LastSuccessfulInteractiveLogonTime".
z.B. Hier beschrieben: https://www.active-directory-faq.de/2012/01/lastlogontimestamp-vs-msds-l ...
Aber eben kein Logout.
weil es meines Wissens kein Logout-Event gibt, kannst Du das so erstmal vergessen.
Im AD wird zwar gespeichert, wann der Benutzer das letzte Mal irgendwo angemeldet wurde, aber das sagt nicht aus, ob diese Anmeldung interaktiv war oder nicht, ob es eine Desktopsitzung auf einem Client oder z.B. eine SMB-Sitzung auf einem Fileserver war. Usw. Weiterhin kann es sein, dass die Anmeldung am AD auch in einer durchgängig laufenden interaktiven Sitzung immer mal wieder erfolgt, weil z.B. irgendwelche Anwendungen aus dieser Desktopsitzung das immer mal wieder tun.
Was Du machen könntest und kein Hexenwerk ist:
Per GPO Login- und Logout-Scripte laufen lassen, welche irgendwo protokollieren, dass sich ein Benutzer interaktiv an einer Sitzung an- oder abgemeldet hat.
Oder Du könntest permanent von allen laufenden Computern die gerade angemeldeten Sitzungen abfragen und das irgendwo protokollieren. Wenn Du dann eine Sitzung nicht mehr "wiederfindest", dann kannst Du davon ausgehen, dass der Benutzer da abgemeldet wurde. Dafür müsstest Du Dir für jede Sitzung irgendein Flag setzen, damit Du diese zweifelsfrei wiedererkennen kannst.
Oder so ähnlich.
E.
Edit:
Oder Du schreibst Dir in .Net einen Dienst, welchen Du auf allen Computern laufen lässt. Und dieser wertet dann die Sitzungen aus. Aber auch dabei musst Du an alles in Frage kommende denken: Desktopsitzungen, Fileserversitzungen, Exchange, SQL Server, Drittanbieter (z.B. LDAP-Anbindungen der diversen Linux Systeme) und und und
Edit 2:
Ich habe gerade mal geschaut: Es gibt jetzt auch ein AD Attribut "LastSuccessfulInteractiveLogonTime".
z.B. Hier beschrieben: https://www.active-directory-faq.de/2012/01/lastlogontimestamp-vs-msds-l ...
Aber eben kein Logout.
Hi,
wie emeriks schon sagt nicht ganz einfach. Die Logins findest du als Ereignisse in den Security Protokollen der DCs. Um zu wissen ob die Sitzung noch aktiv ist musst du dann die Sessions an den Computern abfragen. Und dann gibts da natürlich noch Unmengen an Sonderfällen, Stolpersteinen usw., zum Beispiel wenn ein Mitarbeiter sein Notebook in den Besprechungsraum mitnimmt und nicht ans Netz verbindet. Und zu guter letzt ist da dann noch der Datenschutz den du klären solltest...
Grüße
wie emeriks schon sagt nicht ganz einfach. Die Logins findest du als Ereignisse in den Security Protokollen der DCs. Um zu wissen ob die Sitzung noch aktiv ist musst du dann die Sessions an den Computern abfragen. Und dann gibts da natürlich noch Unmengen an Sonderfällen, Stolpersteinen usw., zum Beispiel wenn ein Mitarbeiter sein Notebook in den Besprechungsraum mitnimmt und nicht ans Netz verbindet. Und zu guter letzt ist da dann noch der Datenschutz den du klären solltest...
Grüße