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

For Schleife mit der Variable im Dateinamen

Mitglied: Helix2648

Helix2648 (Level 1) - Jetzt verbinden

01.05.2011 um 10:01 Uhr, 3818 Aufrufe, 7 Kommentare

Guten Morgen,

ich habe das unten genannte Problem und bekomme es nicht gelöst. Ich würde mich über einen Denkanstoß sehr freuen

Das Problem ist, dass ich eine Batch Datei schreiben möchte, die mir automatisch die ereignissanzeige komplett protokolliert und dann löscht.

Nun benötige ich ja variable Dateinamen für den Log und diesen möchte ich mit Hilfe der FOR Variable anlegen.

Beispiel:
01.
@ECHO OFF 
02.
ECHO Protokolliere Ereignissanzeige-Protokoll... 
03.
FOR /F "USEBACKQ DELIMS=" %%l IN (`WEVTUTIL EL`) DO WEVTUTIL EPL "%%l" "C:\Ablage\Temp\Wevtutil\" && "%%l" && ".evtx" 
04.
ECHO Loesche Ereignissanzeige-Protokoll... 
05.
FOR /F "USEBACKQ DELIMS=" %%l IN (`WEVTUTIL EL`) DO WEVTUTIL CL "%%l" 
06.
@ECHO ON
Die Schleife soll also jeden Log-Type durchgehen und dann diesen mit dem entsprechenden Namen ablegen. Sprich, er archiviert den Log-Typ SYSTEM unter C:\Ablage\Temp\System.evtx".

Wie geht das?

Vielen lieben Dank!

Gruß,
Hleix
Mitglied: Skyemugen
01.05.2011 um 10:18 Uhr
Aloha,

nun es scheint mir fast, als hättest du sonst mit VisualBasic zu tun *gg*
FOR /F "USEBACKQ DELIMS=" %%l IN (`WEVTUTIL EL`) DO WEVTUTIL EPL "%%l" "C:\Ablage\Temp\Wevtutil\%%l.evtx"
könnte dein Problem eventuell lösen ;)

mit deinen genutzen Befehlen kann ich sonst nichts anfangen, daher gehe ich davon aus, dass die sonstige Reihenfolge in der Abarbeitung korrekt sein wird, sollte dem nicht so sein ... dann wäre da noch Platz für einen Wurm der mir ohne Frühstück verborgen bleibt

oh noch etwas: was machen die accent graves dort in der Schleife? Das sollten doch eigentlich Apostrophe werden ... ?

greetz André

P.S.: alles nach && wird als zusätzlicher Befehl ausgeführt
Bitte warten ..
Mitglied: 99045
01.05.2011 um 10:32 Uhr
Moin,

falscher Ansatz, daher gelöscht

Was dein Tool WEVTUtil anstellt, weiß wusste ich leider nicht, jetzt weiß ich es.

Gruß
Bitte warten ..
Mitglied: Helix2648
01.05.2011 um 10:47 Uhr
Hallo zusammen,

vielen Dank erst einmal für die Antworten.

Bzgl. der Frage von Skyemugen: Die Accent Graves brauchst du, damit die FOR Schleife "wevtutil epl" als Befehl ausführt (usebackq). Aber leider funktioniert dein Tip nicht. Er meckert immer rum, dass er den Pfad nicht findet.

Also kurz mal generell zur Erklärung was ich vor habe... Das Tool wevtutil dient zum Verwalten der Ereignissanzeige auf Kommandozeilenebene. Der Befehl "wevtutil el" z.B. listet alle Channels auf, die protokolliert werden. Das heisst, dass ich mit der zweiten Schleife das Programm aufrufe und jeden Channel der Variable %l zuordne und dann mit "wevtutil cl [Variable]" lösche.

Wenn ich nun vorher den Channel sichern will, dann müsste ich z.B. den folgenden Befehl benutzen:

01.
wevtutil epl SYSTEM C:Ablage\Temp\System.evtx
Da ich ja aber nun mit der Schleife alle Channels sichern möchte (jeweils eine Datei pro Channel) muss ich also den Dateinamen anhand der Variable definieren.

01.
wevtutil epl [Variable] C:\Ablage\Temp\[Variable].evtx
Somit wäre der Ansatz von Kaputtnick (toller Name übrigens ) nicht notwendig.

Ich hoffe, dass ich das soweit verständlich rüber bringen konnte.
Bitte warten ..
Mitglied: bastla
01.05.2011 um 11:56 Uhr
Hallo Helix2648!

Vielleicht solltest Du die Ausgabe von "wevtutil el" (einmal genauer betrachten und dann) etwas einschränken (dann natürlich auch in Zeile 5) - ungetestet:
FOR /F "DELIMS=" %%I IN ('WEVTUTIL EL^|FINDSTR /V "\/"') DO WEVTUTIL EPL "%%I" "C:\Ablage\Temp\Wevtutil\%%I.evtx"
Falls aber tatsächlich alle angeboteten Logs gespeichert werdem sollen, müssten die in den Namen enthaltenen "/" in etwas "Dateinamentauglicheres" umgewandelt werden.
BTW:
Die Accent Graves brauchst du, damit die FOR Schleife "wevtutil epl" als Befehl ausführt (usebackq).
... aber da Du hier "usebackq" nicht benötigst ...

Grüße
bastla

[Edit] "Escapen" von "/" nachgetragen und Anzahl der "'" auf 2 reduziert [/Edit]
Bitte warten ..
Mitglied: Skyemugen
01.05.2011 um 13:35 Uhr
Zitat von Helix2648:
Die Accent Graves brauchst du, damit die FOR Schleife "wevtutil epl" als Befehl ausführt (usebackq).

Aloha,

ich seh schon: Vor dem Frühstück arbeitet mein Hirn nur auf Standby ... ich habe doch allen Ernstes usebackq völlig ausgeblendet beim Denken *pfeif* - Sonntagvormittag eben *gg*

greetz André
Bitte warten ..
Mitglied: Friemler
01.05.2011 um 13:59 Uhr
Hallo Helix2648,

wie bastla schon bemerkt hat, müssen die Namen der Event Channels, die das Zeichen / enthalten, angepasst werden, da Datei- und Verzeichnisnamen dieses Zeichen nicht enthalten dürfen. Hier mein Vorschlag, der das umsetzt:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
set "OutputPath=C:\Ablage\Temp\Wevtutil" 
06.
 
07.
 
08.
echo Protokolliere Ereignissanzeige-Protokoll... 
09.
 
10.
for /f "delims=" %%l in ('wevtutil el') do ( 
11.
  call :ProcessChannel "%%l" 
12.
13.
 
14.
echo Loesche Ereignissanzeige-Protokoll... 
15.
 
16.
for /f "delims=" %%l in ('wevtutil el') do ( 
17.
  echo wevtutil cl "%%l" 
18.
19.
 
20.
exit /b 
21.
 
22.
 
23.
 
24.
:ProcessChannel 
25.
  set "Param=%~1" 
26.
  set "SubChannel=%Param:*/=%" 
27.
  call set "Channel=%%Param:/%SubChannel%=%%" 
28.
 
29.
  if "%SubChannel%" neq "" if "%SubChannel%" neq "%Channel%" ( 
30.
    echo md "%OutputPath%\%Channel%" 
31.
    echo wevtutil epl "%~1" "%OutputPath%\%Channel%\%SubChannel%.evtx" 
32.
  ) else ( 
33.
    echo wevtutil epl "%~1" "%OutputPath%\%Channel%.evtx" 
34.
35.
exit /b
Kurze Erläuterung:
Für jeden Channel, der das Zeichen / enthält, wird im Zielverzeichnis ein Unterverzeichnis erstellt. Der eigentliche Eventprotokoll-Export wird dann nach dem benannt, was nach dem / kommt.

Das ganze wird durch die Stringersetzungen in Zeile 26 und 27 erreicht. Zeile 26 schreibt in die Variable SubChannel alles, was hinter dem / kommt. Zeile 26 maskiert in der Variablen Param den Teil, der der Variablen SubChannel mit voranstehendem / entspricht und weist den Rest der Variablen Channel zu. Siehe dazu auch die Hilfe zum SET-Befehl.

Zeile 29 ist praktisch eine AND-Operation auf die zwei IF-Befehle.

Das ganze funktioniert nur, wenn, wie bei meinen Eventprotokollen, das Zeichen / nur einmal im Namen eines Channels vorkommt.

Die ECHO-Befehle in den Zeilen 17, 30, 31 und 33 dienen nur zur Ausgabe dessen, was passieren würde und müssen entfernt werden, damit das Script seinen Job macht.

Gruß
Friemler
Bitte warten ..
Mitglied: bastla
01.05.2011 um 14:47 Uhr
@Friemler
Wenn wirklich sämtliche Logs gespeichert werden sollen, würde ich einfach "/" durch zB "_" ersetzen (dann spielt auch die Anzahl enthaltener "/" keine Rolle) und mir damit auch die Unterordner ersparen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Dateinamen auslesen und in einer Schleife benutzen

gelöst Frage von TeholBeddictBatch & Shell12 Kommentare

Hallo Experten, ich kämpfe derzeit mit folgender Aufgabenstellung, welche ich per Batchskript lösen möchte: In einem Ordner sind 1 ...

Batch & Shell

Weitergabe von Variablen in for-Schleifen

Frage von MFJustBatch & Shell1 Kommentar

Hallo, Ich versuche HTML Dateien in PDFs umzuwandeln (dies funktioniert) und diese dabei nach Teilen dieser HTML Datei umzubenennen ...

Batch & Shell

Batch Variablen in for-Schleife

gelöst Frage von Dacki1107Batch & Shell2 Kommentare

Hallo Liebe Administratoren Ich kämpfe mit einem kleinen Problemchen und hoffe das Ihr mir helfen könnt. Ich versuche eine ...

Batch & Shell

For schleife mit variablem inhalt

gelöst Frage von Tealk144Batch & Shell5 Kommentare

Hallo zusammen, kann ich in einer Batch Datei folgendes schreiben? for Variable in Satz do ( if exist %buchstabe%: ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 19 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 22 StundenAdministrator.de Feedback16 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...