Logo faq-o-matic.net
Logo faq-o-matic.net

AD-Anmeldedatum per csvde exportieren und in Excel darstellen

von veröffentlicht am2. Mai 2013, 06:36 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: AD: Erweiterte Abfragen, Excel   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Active Directory speichert das Anmeldedatum eines Benutzers (bzw. eines Computers) in einem etwas eigenwilligen Format. Dieses gibt die Anzahl der 100-Nanosekunden-Intervalle an, die seit dem 1. Januar 1601 vergangen sind. Dies ergibt dann Werte wie 130104058290831818 (die technisch noch dazu in mehreren Einträgen hinterlegt sind, aber das führt an dieser Stelle zu weit).

Viele Anzeige-Werkzeuge konvertieren diese Einträge wieder in lesbare Daten. Nicht so csvde.exe, ein Dienstprogramm, das seit Windows 2000 in den Adminwerkzeugen für das AD enthalten ist. Hier bekommt man einfach den Wert im obigen Format zurück. Möchte man nun etwa in einer Excel-Übersicht ein lesbares Datum daraus machen, geht das folgendermaßen.

Tun wir so, als hätten wir Anmeldedaten mit folgendem csvde-Kommando exportiert:

csvde -u -f comp.txt -r "(objectClass=computer)" -l name,operatingSystem,lastLogonTimestamp

Die so erzeugte Ausgabedatei comp.txt lässt sich mit Excel öffnen. Hierbei ist es von Vorteil, wenn die Dateiendung “txt” lautet und nicht “csv”, denn so startet Excel den Import-Assistenten und man kann das Komma als Trennzeichen auswählen.

image

In Excels Import-Assistenten sollte man das Komma als Trennzeichen angeben, um die CSV-Datei zu öffnen.

Jedenfalls enthält die Spalte lastLogonTimestamp das Datum in der oben gezeigten Form. Um es lesbar zu machen, eignet sich – in einem deutschen Excel – die folgende Formel:

=WENN(D2>0;D2/(8,64*10^11)-109205;"")

Excel schreibt nun einen numerischen Wert in die Zielzelle. Diesen formatiert man als “Datum, kurz”, wenn das reine Datum ausreicht. Oder man nutzt ein benutzerdefiniertes Format, um das Datum mit der Uhrzeit auszugeben, etwa dieses hier:

TT.MM.JJJJ hh:mm:ss

image

Die Formel zeigt das AD-Anmeldedatum korrekt an.

Ein Hinweis noch zu dem Feld lastLogonTimestamp: Es gibt nicht (bzw. nicht unbedingt) das tatsächliche letzte Anmeldedatum zurück, sondern nur einen “ungefähren” Wert, der bis zu einer Woche alt sein kann. Das reicht für viele Auswertungen völlig aus. Der Wert dieses Feldes wird zwischen allen Domänencontrollern der Domäne repliziert und lässt sich daher einfach abfragen. Der “Schwesterwert” lastLogon hingegen speichert zwar immer das letzte Anmeldedatum, aber nur für den jeweiligen Domänencontroller, und er wird nicht repliziert – hierfür müsste man also alle DCs einer Domäne abfragen, um den “tatsächlichen” Anmeldezeitpunkt zu erhalten (auch bekannt als “real last logon date”).

© 2005-2017 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!