eismanhobbit 10 Geschrieben 27. Februar 2008 Melden Teilen Geschrieben 27. Februar 2008 Hallo ich weiß nicht mehr weiter. Ich habe ein Script, das mir ein Eventlog auf einem Win2000Server ausliest und auf einem lokalen Pfad ablegt. Das funktioniert bestens. Hier das Script welches funktioniert. ' Dieser Code archiviert ein Ereignisprotokoll in der angegebenen Datei. ' ------ Skript-Konfiguration ------ strLog = "application" ' z.B. application strdate = date strBackupFile = "c:\app_back.evt" ' z.B. c:\app_back.evt strServer = "." ' z.B. servername (verwenden Sie "." für den lokalen Server) ' ------ ENDE DER KONFIGURATION ------ set objWMI = GetObject(_ "winmgmts:{impersonationLevel=impersonate,(Backup)}!\\" & _ strServer & "\root\cimv2") set colLogs = objWMI.ExecQuery("Select * from Win32_NTEventlogFile Where " & _ " Logfilename = '" & strLog & "'") if colLogs.Count <> 1 then WScript.Echo "Fataler Fehler. Anzahl gefundener Ereigniosprotokolle: " & colLogs.Count WScript.Quit end if for each objLog in colLogs objLog.BackupEventlog strBackupFile next So, nun möchte ich das Script so schreiben, das er das Log von einem anderen Server holt Dieses Script funktioniert nicht - aber es kommt auch keine Fehlermeldung - es passiert einfach nichts. Ich habe einfach strServer = "servername" geändert. Auch mit dem fullqualified Domainname habe ich es versucht. An den Berechtigungen kann es nicht liegen, da ich das Log dort per Hand auslesen kann. Kann mir jemand helfen ?? ' Dieser Code archiviert ein Ereignisprotokoll in der angegebenen Datei. ' ------ Skript-Konfiguration ------ strLog = "application" ' z.B. application strdate = date strBackupFile = "c:\app_back.evt" ' z.B. c:\app_back.evt strServer = "servername" ' z.B. servername (verwenden Sie "." für den lokalen Server) ' ------ ENDE DER KONFIGURATION ------ set objWMI = GetObject(_ "winmgmts:{impersonationLevel=impersonate,(Backup)}!\\" & _ strServer & "\root\cimv2") set colLogs = objWMI.ExecQuery("Select * from Win32_NTEventlogFile Where " & _ " Logfilename = '" & strLog & "'") if colLogs.Count <> 1 then WScript.Echo "Fataler Fehler. Anzahl gefundener Ereigniosprotokolle: " & colLogs.Count WScript.Quit end if for each objLog in colLogs objLog.BackupEventlog strBackupFile next Was leider auch nicht funktioniert ist das Lokale Logfile auf einer Share abzulegen. Hier das Script ' Dieser Code archiviert ein Ereignisprotokoll in der angegebenen Datei. ' ------ Skript-Konfiguration ------ strLog = "application" ' z.B. application strdate = date strBackupFile = "\\servername\share\app_back.evt" ' z.B. c:\app_back.evt strServer = "." ' z.B. servername (verwenden Sie "." für den lokalen Server) ' ------ ENDE DER KONFIGURATION ------ set objWMI = GetObject(_ "winmgmts:{impersonationLevel=impersonate,(Backup)}!\\" & _ strServer & "\root\cimv2") set colLogs = objWMI.ExecQuery("Select * from Win32_NTEventlogFile Where " & _ " Logfilename = '" & strLog & "'") if colLogs.Count <> 1 then WScript.Echo "Fataler Fehler. Anzahl gefundener Ereigniosprotokolle: " & colLogs.Count WScript.Quit end if for each objLog in colLogs objLog.BackupEventlog strBackupFile next Danke schonmal vorab eismanhobbit Zitieren Link zu diesem Kommentar
eismanhobbit 10 Geschrieben 10. März 2008 Autor Melden Teilen Geschrieben 10. März 2008 Hallo vielleicht kann mir doch jemand helfen, wenn ich es einfacher erkläre ich gebe zu das ist alles etwas kompliziert erklärt, obwohl es das gar nicht ist. Also: Ich möchte die original Logfiles von allen Servern jede Nacht auslesen und zentral abspeichern. Es ist mir bereits gelungen die Files jede Nacht in eine Datenbank bzw. in eine *.csv-Datei zu schreiben. Was ich nicht hinbekomme ist (um doppöelte Einträge zu vermeiden) das Logfile nach dem Export zu löschen bzw. es vorher auch nochmal in das *.evt-Format zu exportieren. Wenn ich die Scripts lokal auf dem Server ausführe, auf dem das Logfile ausgelesen wird und auch geschrieben wird, dann funktioniert es. (also alles lokal) Ich möchte aber von einem Server alle anderen auslesen und auf diesen einen Server alle Logfiles speichern - und das gelingt mir nicht. (also das Script läuft auf einem Server, der die Logfiles über Netzwerk ausliest und bei auf einem anderen Server´über Netzwerk abspeichert) Hier nochmals die Scripts: auslesen ' Dieser Code archiviert ein Ereignisprotokoll in der angegebenen Datei.' ------ Skript-Konfiguration ------ strLog = "Application" ' z.B. Anwendung strdate = date strBackupFile = "c:\app_" & year(strdate) & right("0" & month(strdate),2) & right("0" & day(strdate),2) & ".evt" ' z.B. c:\app_back.evt strServer = "Servername" ' z.B. tokyo (verwenden Sie "." für den lokalen Server) ' ------ ENDE DER KONFIGURATION ------ set objWMI = GetObject(_ "winmgmts:{impersonationLevel=impersonate,(Backup)}!\\" & _ strServer & "\root\cimv2") set colLogs = objWMI.ExecQuery("Select * from Win32_NTEventlogFile Where " & _ " Logfilename = '" & strLog & "'") if colLogs.Count <> 1 then WScript.Echo "Fataler Fehler. Anzahl gefundener Ereigniosprotokolle: " & colLogs.Count WScript.Quit end if for each objLog in colLogs objLog.BackupEventlog strBackupFile WScript.Echo strLog & " gesichert in " & strBackupFile next löschen: ' Dieser Code löscht alle Ereignisse im festgelegten Ereignisprotokoll' ------ Skript-Konfiguration ------ strLog = "system" ' z.B. Application strServer = "Servername" ' z.B. tokyo (verwenden Sie "." für den lokalen Server) ' ------ ENDE DER KONFIGURATION ------ set objWMI = GetObject("winmgmts:\\" & strServer & "\root\cimv2") set colLogs = objWMI.ExecQuery("Select * from Win32_NTEventlogFile Where " & _ "Logfilename = '" & strLog & "'") if colLogs.Count <> 1 then WScript.Echo "Fataler Fehler. Anzahl gefundener Ereignisprotokolle: " & colLogs.Count WScript.Quit end if for each objLog in colLogs objLog.ClearEventLog next Es funktioniert also lokal aber nicht übers Netzwerk Kann mir jemand helfen Danke eismanhobbit Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 10. März 2008 Melden Teilen Geschrieben 10. März 2008 Hier... Connecting to WMI on a Remote Computer (Windows) schon nachgesehen? Zitieren Link zu diesem Kommentar
tacher 10 Geschrieben 20. März 2008 Melden Teilen Geschrieben 20. März 2008 edit: oh mist ich sollte erst lesen dan schreiben :) Zitieren Link zu diesem Kommentar
schmitty 10 Geschrieben 25. März 2008 Melden Teilen Geschrieben 25. März 2008 Also ich würde dir dafür das Programm EventSave empfehlen. Es ist absolut zuverlässig und ohne Probleme zu benützen. Mit dem Programm kannst du alle Eventeinträge des Servers oder Pcs in einen geeigneten Platz sichern. LG Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.