Zum Hauptinhalt springen
  1. Braindump/

Windows Event Log in MySQL importieren

2 min
Marcel Ryser
Autor
Marcel Ryser
Softwarearchitekt und Tech-Enthusiast aus Bern
Inhaltsverzeichnis

Manchmal ist es praktisch, Windows Events in eine SQL-Datenbank zu importieren. Das lässt sich auf jede Datenbank als Ziel übertragen (MySQL dient hier nur als Beispiel).

In diesem Beispiel importieren wir das Security-Log in die Datenbank.

Update 13. Februar 2019: Ich weiss nicht, ob das mit neueren Windows-Versionen als XP oder 7 noch funktioniert.

Voraussetzungen
#

Vorgehen
#

  1. Stelle sicher, dass du alle Voraussetzungen erfüllst

  2. Lege eine neue Datenbank in MySQL an, oder nutze bei Bedarf eine bestehende.

  3. Lege diese Datenbankverbindung im 32-Bit-ODBC-Manager (c:\windows\SysWOW64\odbcad32.exe) als Datenquelle an (hier nennen wir sie WindowsLog32). Achtung: Nutze auf 64-Bit-Systemen nicht den ODBC-Manager aus den Systemtools, das würde Probleme geben.

  4. Versuche nun, die Daten zu importieren mit

    logparser "SELECT * FROM Security TO seclog" -i:EVT -o:SQL -createTable:ON -dsn:WindowsLog32 -server:localhost

    Mit dem Parameter -createTable:ON versucht Logparser, das Tabellen-Schema anzulegen; manchmal sind die erzeugten Spalten aber zu kurz, weil Logparser MySQL nicht kennt. Dann bekommst du Fehler wie “Data too long for column ‘Strings’ at row 1”. Du musst dann selbst ein paar ALTER TABLE ausführen, um die Spalten lang genug zu machen.

  5. Da die Tabelle nun in deiner Datenbank existiert, kannst du den Parameter -createTable:ON weglassen, und der Import sollte gelingen. Diesen Parameter brauchst du nur beim ersten Mal, spätere Importe kommen ohne ihn aus.