Jump to content

Script funktioniert im Netzwerk nicht


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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

  • 2 Wochen später...
Geschrieben

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

  • 2 Wochen später...
Geschrieben

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

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...