Top-Themen

Aktuelle Themen (A bis Z)

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

WinEvt-Logs auf SBS 2008 - System kann die angegebene Datei nicht finden

Frage Entwicklung Batch & Shell

Mitglied: Spitzending

Spitzending (Level 1) - Jetzt verbinden

22.12.2010, aktualisiert 18:29 Uhr, 5556 Aufrufe, 2 Kommentare

Guten Tag allerseits. Ich möchte auf einem SBS 2008 die Eventlogs von Windows an einen anderen Ort archivieren. Ich habe eine bestehende Batchdatei von http://www.dostips.com/DtTipsDateTime.php genommen und nach meinen Wünschen modifiziert, Quelltext siehe unten.

Ich durchlaufe den Ordner %windir%\System32\winevt\Logs, zippe alle Dateien älter als sieben Tage an einen anderen Ort und lösche das Original. Das klappt für die meisten *.evtx mit Ausnahme sämtlicher Archive-Security-*.evtx. Für jede dieser Dateien bekomme ich die Meldung "Das System kann die angegebene Datei nicht finden.", d.h. mein Skript kann kein ZIP-Archiv von diesen Protokollen erstellen. Diese Dateien sind sehr wohl vorhanden und zumeist sehr alt, so daß sie nicht mehr geöffnet sein sollten, weil längst mehrere neue Logs danach geschrieben wurden. Dafür spricht auch, daß ich bei anderen Dateien, die noch geöffnet sind, auch eine entsprechende Meldung erhalte: "WARNING: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.", so z.B. für das PowerShell.evtx. Bei den Archive-Security-*.evtx muß also ein anderer Grund vorliegen, der aber aus der Fehlermeldung nicht hervorgeht.

Die Berechtigungen auf die Dateien habe ich geprüft und nur Gemeinsamkeiten gefunden: selbe Zugriffsgruppen, selbe Rechte (SYSTEM, Administratoren, EventLog jeweils mit Vollzugriff). Alle Dateien haben in ihren Zeitstempeln jeweils das gleiche Datum und die gleiche Uhrzeit (Erstellt, Geändert, Letzter Zugriff). Die relevanten weiteren Dateiattribute (Schreibgeschützt ...) sind auch gleich. Hat jemand einen Tipp für mich? Mit der Hoffnung auf Erleuchtung, was ich tun muß, um auch die Sicherheitslogs mit archivieren zu können, nachfolgend das Skript:

01.
 
02.
SETLOCAL ENABLEEXTENSIONS 
03.
SETLOCAL ENABLEDELAYEDEXPANSION 
04.
 
05.
cd /d "%windir%\System32\winevt\Logs" 
06.
 
07.
call:jdate tnow "%date%" 
08.
for %%F in (*.*) do ( 
09.
	call:ftime tfile "%%F" 
10.
	set /a diff=tnow-tfile 
11.
	if !diff! LEQ 7 ( 
12.
	echo.%%~nxF ist !diff! <= 7 Tage alt und wird deshalb nicht archiviert. 
13.
	) else ( 
14.
	echo.%%~nxF ist !diff! Tage alt und wird als ZIP-Archiv nach D:\winevt\Logs\ archiviert. 
15.
	C:\Programme\7-Zip\7z.exe a -tzip D:\winevt\Logs\%%F.zip %%F 
16.
	del %%F 
17.
	echo %%F wurde nach "D:\winevt\Logs" archiviert. Das Original wurde geloescht. 
18.
19.
20.
echo %date% > D:\winevt\Logs\00-letztes-Archiv.txt 
21.
echo Die Archivierung ist abgeschlossen. Das Datum der letzten Archivierung wurde in der Datei "D:\winevt\Logs\00-letztes-Archiv.txt" gespeichert. 
22.
ECHO.&PAUSE&GOTO:EOF 
23.
 
24.
 
25.
::----------------------------------------------------------------------------------- 
26.
::-- Functions start below here 
27.
::----------------------------------------------------------------------------------- 
28.
 
29.
 
30.
:ftime JD filename attr -- returns the file time in julian days 
31.
::                      -- JD    [out]    - valref file time in julian days 
32.
::                      -- attr  [in,opt] - time field to be used, creation/last-access/last-write, see 'dir /?', i.e. /tc, /ta, /tw, default is /tw 
33.
:$created 20060101 :$changed 20090322 :$categories DateAndTime 
34.
:$source http://www.dostips.com 
35.
SETLOCAL 
36.
set file=%~2 
37.
set attr=%~3 
38.
if not defined attr (call:jdate JD "- %~t2" 
39.
) ELSE (for /f %%a in ('"dir %attr% /-c "%file%"|findstr "^^[0-9]""') do call:jdate JD "%%a") 
40.
( ENDLOCAL & REM RETURN VALUES 
41.
    IF "%~1" NEQ "" (SET %~1=%JD%) ELSE (echo.%JD%) 
42.
43.
EXIT /b 
44.
 
45.
 
46.
:jdate JD DateStr -- converts a date string to julian day number with respect to regional date format 
47.
::                -- JD      [out,opt] - julian days 
48.
::                -- DateStr [in,opt]  - date string, e.g. "03/31/2006" or "Fri 03/31/2006" or "31.3.2006" 
49.
:$reference http://groups.google.com/group/alt.msdos.batch.nt/browse_frm/thread/a0c34d593e782e94/50ed3430b6446af8#50ed3430b6446af8 
50.
:$created 20060101 :$changed 20080219 
51.
:$source http://www.dostips.com 
52.
SETLOCAL 
53.
set DateStr=%~2&if "%~2"=="" set DateStr=%date% 
54.
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('"echo.|date"') do ( 
55.
    for /f "tokens=1-3 delims=/.- " %%A in ("%DateStr:* =%") do ( 
56.
        set %%a=%%A&set %%b=%%B&set %%c=%%C)) 
57.
set /a "yy=10000%yy% %%10000,mm=100%mm% %% 100,dd=100%dd% %% 100" 
58.
set /a JD=dd-32075+1461*(yy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yy+4900+(mm-14)/12)/100)/4 
59.
ENDLOCAL & IF "%~1" NEQ "" (SET %~1=%JD%) ELSE (echo.%JD%) 
60.
EXIT /b
Mitglied: 60730
22.12.2010 um 17:09 Uhr
moin,

bitte schreibe deinen Quelltext zwischen <code> und </code> -denn so haben nicht nur meine Augen ein Problem mit dem lesen..

Dann nehme ich diese Vbs, die im "Zielordner" der logs sein sollte.
Das mit Datum beschriftete security.evt solltest du so auch wunderbar zippen und danach in die Tonne treten können.

01.
strComputer = "."        
02.
Set objWMIService = GetObject("winmgmts:" _ 
03.
    & "{impersonationLevel=impersonate, (Backup, Security)}!\\" _ 
04.
        & strComputer & "\root\cimv2") 
05.
Set colLogFiles = objWMIService.ExecQuery _ 
06.
    ("Select * from Win32_NTEventLogFile where LogFileName='Security'") 
07.
For Each objLogfile in colLogFiles 
08.
     OutputFile = "C:\script\eventlog\" & "Security " 
09.
     OutputFile = OutputFile & Day(Now) & "-" & month(now) & "-" & year(now) 
10.
     OutputFile = OutputFile & ".evt" 
11.
    errBackupLog = objLogFile.BackupEventLog(OutputFile) 
12.
    If errBackupLog = 0 Or errBackupLog = 183 Then 
13.
         objLogFile.ClearEventLog() 
14.
    End If 
15.
Next
btw: Eigentlich schreibe ich ja keine kompletten Scripte mehr, aber das lag eh fertig im SchnippselOrdner.
btw²: Eh klar, dass das nur ein Admin machen darf....

Gruß
Bitte warten ..
Mitglied: Spitzending
27.12.2010 um 16:57 Uhr
Danke für Dein Skript. Meins hatte ich zuerst in [code], [/code] gesetzt, kein Ergebnis gesehen und die Tags darum wieder entfernt. Künftig also in spitzen Klammern.

Dein Skript verstehe ich noch nicht vollständig. Da ich von VBS keine Ahnung habe, habe ich mir zeilenweise alles herausgesucht, bis ich schlüssige Erklärungen fand. Aus meiner Sicht nimmt Dein Skript zuerst die Rolle eines Backup-Admins an und liest alle Eventlogs, die mit 'Security' beginnen, nacheinander ein und schreibt sie in Dateien nach dem Muster c:\script\eventlog\Security-27-12-2010.evt. Wenn es kein .evtx gibt (Rückgabewert 0) oder die Zieldatei bereits exisitert (Rückgabewert 183), dann wird das entsprechende .evtx gelöscht. Ist das so richtig? Nur was passiert, wenn es mehrere Security-Logs vom gleichen Datum gibt? Dann ist die Zieldatei ja schon vorhanden. Und warum soll das Skript im Zielordner liegen und von dort aufgerufen werden, wenn die Dateien eh nach c:\script\eventlog geschrieben werden?

Ich habe Dein Skript in einem leeren Testordner abgelegt und von dort per Kommandozeile ausgeführt, doch beendet es sich gleich (offenbar ordentlich), so daß keine Dateien im Zielordner landen.

Für meine Lösung fehlen da außerdem noch ein paar Punkte. Deshalb wäre mir eine Lösung basierend auf meinem Skript oben lieber, weil ich dann nicht alles nochmal neu in einer anderen Sprache machen müßte, von der ich bisher keine Ahnung habe. Die ganze Arbeit würde von vorn beginnen. Vielleicht hat jemand einen plausiblen Grund, warum die Security-Logs als einzige nicht geöffnet werden können und wie ich das behebe. Zumindest hatte ich mit Deinem Skript da noch keinen Erfolg.
Bitte warten ..
Ähnliche Inhalte
Windows Server
Aufgabenplanung - Das System kann die angegebene Datei nicht finden
gelöst Frage von HenereWindows Server2 Kommentare

Servus zusammen, entweder ich seh den Wald vor lauter Bäumen nicht oder ? Server 2012 Ich habe in der ...

Batch & Shell
Robocopy - Das System kann die angegebene Datei nicht finden
gelöst Frage von imebroBatch & Shell15 Kommentare

Hallo, ich habe eine 1TB Festplatte in 2 Partitionen aufgeteilt (D und F). Nun möchte ich Daten von der ...

Windows Server
Robocopy Fehler 2 Das system kann die angegebene Datei nicht finden
Frage von winservohuWindows Server3 Kommentare

Hallo Zusammen, habe ein Problem mit Robocopy. Und zwar soll jede Nacht eine Batch ausgeführt werden die so aussieht: ...

Windows Server
Windows Server Sicherung (Fehler: Das System kann die angegebene Datei nicht finden.)
Frage von excedraWindows Server7 Kommentare

Hi, ich habe folgendes Problem mit der Windows Server Sicherung (Windows Server 2008R2): Die Sicherung beginnt normal, es soll ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 8 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 15 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 104 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless18 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...