Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Eventlog - bestimmte Events exportieren und Eventlog leeren

Frage Microsoft Windows Server

Mitglied: Xaero1982

Xaero1982 (Level 3) - Jetzt verbinden

12.06.2014, aktualisiert 09:11 Uhr, 1485 Aufrufe, 8 Kommentare, 1 Danke

Moin Zusammen,

aufgrund eines ziemlichen GAUs (Ein unbekannter Nutzer hat die Daten aus einem Verzeichnis gelöscht) bin ich gezwungen die Überwachung einzustellen.
Da dieser Ordner einem ziemlichen Zugriff unterliegt hab ich es zunächst auch nur auf Löschvorgänge und Änderungen der Berechtigungen (da spielt auch immer jemand rum) beschränkt - dennoch viel.

Da ich sonst eigentlich nichts aus dem Security Eventlog benötige will ich ein mal am Tag das Eventlog löschen, aber zunächst sollen die relevanten Events extrahiert werden.

Die IDs sind:
4656
4658
4664
4660
4670

Die Events will ich in eine txt exportieren mit dem Datum versehen.

Anschließend soll das Security Log geleert werden.

Batch oder vbs wäre wünschenswert.

Hat da zufällig jemand was parat? Finde leider nur was zu kompletten Exports.

Gruß
Mitglied: Xaero1982
12.06.2014 um 09:01 Uhr
01.
On Error Resume Next 
02.
 
03.
Const wbemFlagReturnImmediately = &h10 
04.
Const wbemFlagForwardOnly = &h20 
05.
 
06.
 
07.
strComputer = "localhost" 
08.
 
09.
Set fso = CreateObject("Scripting.FileSystemObject") 
10.
 
11.
filename = "Security.txt" 
12.
 
13.
'======================================================== 
14.
Set filesys = CreateObject("Scripting.FileSystemObject") 
15.
If filesys.FileExists(filename) Then 
16.
	filesys.DeleteFile filename 
17.
End If 
18.
 
19.
SET fsoFile = fso.OpenTextFile(filename,8,true) 
20.
'======================================================== 
21.
 
22.
   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
23.
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NTLogEvent WHERE EventCode = '4656' OR EventCode = '4658' OR EventCode = '4664' OR EventCode = '4660' OR EventCode = '4670'", "WQL", _ 
24.
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly) 
25.
 
26.
   For Each objItem In colItems 
27.
      str = Str & ("EventCode: " & objItem.EventCode) &vbcrlf 
28.
      str = Str & ("Message: " & objItem.Message) &vbcrlf 
29.
      str = Str & ("TimeGenerated: " & WMIDateStringToDate(objItem.TimeGenerated)) &vbcrlf 
30.
      str = Str & ("User: " & objItem.User) &vbcrlf 
31.
      str = Str & ("------------------------------------------------------------------------------") &vbcrlf 
32.
   Next 
33.
 
34.
fsoFile.Writeline(str)
spuckt mir nicht das gewünschte aus - nämlich nix :/ Jemand eine Idee?

Gruß
Bitte warten ..
Mitglied: colinardo
LÖSUNG 12.06.2014, aktualisiert um 09:11 Uhr
Moin Xaero,
also mit Powershell z.B. kein Hexenwerk:
01.
# Events in CSV-Datei exportieren 
02.
Get-WinEvent -LogName Security | ?{$_.ID -eq 4656 -or $_.ID -eq 4658 -or $_.ID -eq 4664 -or $_.ID -eq 4660 -or $_.ID -eq 4670} | export-csv "C:\events.csv" -NoTypeInformation -Delimiter ";" 
03.
# Eventlog löschen 
04.
Clear-EventLog -LogName Security -Confirm:$false
Mehr zur exakteren Event-Filterung kannst du hier nachlesen:

Grüße Uwe
Bitte warten ..
Mitglied: Xaero1982
12.06.2014 um 09:07 Uhr
Moin Uwe,

danke erst mal.

Ich hab noch nicht wirklich viel mit PS gemacht.

Kann ich das auch einfach in den Taskplaner einfügen und er ruft die PS-Datei entsprechend auf?

Gruß
Bitte warten ..
Mitglied: colinardo
LÖSUNG 12.06.2014, aktualisiert 27.06.2014
Zitat von Xaero1982:
Kann ich das auch einfach in den Taskplaner einfügen und er ruft die PS-Datei entsprechend auf?
Sicher kein Problem aber vorher solltest du zuerst die Execution-Policy prüfen.

Hier mal alles für den Anfang mit Powershell:

Anleitung: Wie starte ich Powershell-Scripte
  • Zuerst speicherst man den Code in einer Textdatei mit der Endung .ps1.
  • Wenn man zum ersten mal Powershell-Scripte ausführt, musst man einmalig vorher noch das Ausführen von Scripten im User-Account freischalten. Dazu öffnet man eine Powershell-Konsole und gibt dort den Befehl Set-ExecutionPolicy RemoteSigned -Force ein. Um diese Policy für alle User auf dem Rechner zu setzen muss man diesen Befehl in einer Powershell-Konsole mit Admin-Rechten starten. Noch ein Hinweis für 64-Bit-Systeme: Hier sollte sowohl für die 32bit und 64Bit Variante der Powershell die Policy in einer Admin-Konsole gesetzt werden: Set-ExecutionPolicy RemoteSigned -Force; start-job { Set-ExecutionPolicy RemoteSigned -Force } -RunAs32
  • Jetzt kann das Powershell-Script in der Konsole mit Eingabe des Pfades der Scriptdatei, oder mit einem Rechtsklick auf die Script-Datei :Mit Powershell ausführen gestartet werden.

Im Taskplaner setzt du dann unter Auszuführendes Programm den Pfad zur Powershell-EXE ("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe") und unter Argumente dann den Pfad zum Script.
Bitte warten ..
Mitglied: Xaero1982
12.06.2014 um 09:11 Uhr
Hach du bist einfach ...


Gruß
Bitte warten ..
Mitglied: colinardo
12.06.2014, aktualisiert um 09:40 Uhr
Zitat von Xaero1982:
spuckt mir nicht das gewünschte aus - nämlich nix :/ Jemand eine Idee?
dir fehlt hier noch die Funktion zur Umwandlung des WMI-Datums(UTC) WMIDateStringToDate():
http://gallery.technet.microsoft.com/scriptcenter/03a18f58-0e13-47d1-88 ...
01.
Function WMIDateStringToDate(wmiDate)  
02.
    WMIDateStringToDate = CDate(Mid(wmiDate, 5, 2) & "/" & _  
03.
        Mid(wmiDate, 7, 2) & "/" & Left(wmiDate, 4) _  
04.
            & " " & Mid (wmiDate, 9, 2) & ":" & _  
05.
                Mid(wmiDate, 11, 2) & ":" & Mid(wmiDate, _  
06.
                    13, 2))  
07.
End Function
Und zum testen mal das On Error Resume Next rausnehmen, dann meldet sich das Script wenn Fehler auftauchen, fürs Debugging von Vorteil

Zum Löschen des Eventlogs kannst du mit VBS dann noch das hier hernehmen:
01.
'Clear Security Eventlog 
02.
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Backup)}!\\.\root\cimv2") 
03.
Set colLogFiles = objWMIService.ExecQuery _ 
04.
    ("Select * from Win32_NTEventLogFile where LogFileName='Security'") 
05.
 
06.
For Each objLogfile in colLogFiles 
07.
        objLogFile.ClearEventLog() 
08.
Next
Grüße Uwe
Bitte warten ..
Mitglied: Xaero1982
30.06.2014 um 21:52 Uhr
Also das mit dem Powershellscript haut irgendwie nicht so hin. Die Daten die im Eventlog stehen sind andere als die Log hergibt...

Ich bekomme leider keinen Usernamen raus der im Eventlog vorhanden ist... sondern offenbar nur die ID. Auch nicht auf welche Datei zugegriffen wurde...

Gruß
Bitte warten ..
Mitglied: colinardo
30.06.2014 um 22:10 Uhr
Zitat von Xaero1982:
Also das mit dem Powershellscript haut irgendwie nicht so hin. Die Daten die im Eventlog stehen sind andere als die Log
hergibt...
Kann ich nicht feststellen!
Ich bekomme leider keinen Usernamen raus der im Eventlog vorhanden ist... sondern offenbar nur die ID. Auch nicht auf welche Datei
zugegriffen wurde...
Dazu musst du wie oben verlinkt mit XPath Filtern und dann den Namen und Datei aus dem Message-Body extrahieren. Melde mich morgen nochmal...

Heut is Ende Gelände

Schönen Abend
Uwe
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Exchange Server
EDB Postfach in PST Exportieren (33)

Frage von Herbrich19 zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...