kscholz 10 Geschrieben 13. November 2008 Melden Teilen Geschrieben 13. November 2008 Hallo zusammen, Ich habe hier mehrere 100 Server von denen ich per VB-Script die Eventlogs abhole, und in spezielle Verzeichnisse kopiere. Jetzt haben wir das Problem das wir die ersten Windows Server 2008 einsetzen, und dabei geht das Script nur noch teilweise. Es holt nur noch das Application und System log ab. Ich weiss das unter W2K8 die Events jetzt die Endung evtx haben. Das Script was die Logs abholt sieht so aus: strComputer = "localhost"strDate = DateSet objFSO = CreateObject("Scripting.FileSystemObject")Rem Set objFolder = objFSO.CreateFolder("d:\eventlogs\events\")Set objWMIService = GetObject("winmgmts:" _& "{impersonationLevel=impersonate,(Security,Backup)}!\\" & _strComputer & "\root\cimv2")Set colLogFilesA = objWMIService.ExecQuery _("Select * from Win32_NTEventLogFile where LogFileName='Application'")Set colLogFilesS = objWMIService.ExecQuery _("Select * from Win32_NTEventLogFile where LogFileName='System'")Set colLogFilesSec = objWMIService.ExecQuery _("Select * from Win32_NTEventLogFile where LogFileName='Security'")For Each objLogfile in colLogFilesAerrBackupLog = objLogFile.BackupEventLog("d:\eventlogs\events\application.evt")If errBackupLog <> 0 Then Wscript.Echo "The Application event log could not be backed up."ElseobjLogFile.ClearEventLog()End IfNextFor Each objLogfile in colLogFilesSerrBackupLog = objLogFile.BackupEventLog("d:\eventlogs\events\system.evt")If errBackupLog <> 0 Then Wscript.Echo "The System event log could not be backed up."ElseobjLogFile.ClearEventLog()End IfNextFor Each objLogfile in colLogFilesSecerrBackupLog = objLogFile.BackupEventLog("d:\eventlogs\events\security.evt")If errBackupLog <> 0 Then Wscript.Echo "The Security event log could not be backed up."ElseobjLogFile.ClearEventLog()End IfNext[/Code] kann mir dabei jemand helfen, ich habe zur Zeit einen Blackout in der Sache ? Schönen Dank schon mal im vorraus Karsten Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 13. November 2008 Melden Teilen Geschrieben 13. November 2008 Hi Karsten For Each objLogfile in colLogFilesSecerrBackupLog = objLogFile.BackupEventLog("d:\eventlogs\events\security.evt") If errBackupLog <> 0 Then Wscript.Echo "The Security event log could not be backed up." Else objLogFile.ClearEventLog() End If Next Bekommst du in diesem Block einen Fehler zurück oder geht der vermeintlich sauber durch? Gruß Carsten Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 13. November 2008 Melden Teilen Geschrieben 13. November 2008 Hi Karsten und willkommen im Forum, zusätzlich zu Carstens Frage: Mit welchen Rechten führst Du das Script aus? Du mußt IMHO lokaler Administrator auf der Maschine sein (bzw. muß das Script in diesem Kontext ausgeführt werden), um das Security Eventlog auslesen zu können. Viele Grüße olc Zitieren Link zu diesem Kommentar
kscholz 10 Geschrieben 14. November 2008 Autor Melden Teilen Geschrieben 14. November 2008 @ Carsten: nein, ich bekomme weder eine Fehlermeldung noch macht der Server was im Script steht. Es geht vermeindlich sauber durch, nur das er in dem angebenem Verzeichnis nicht reinschreibt... @OLC: mit lokalen Adminrechten wird das Script ausgeführt.... Schon mal vielen dank für eure Antworten... Karsten Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 14. November 2008 Melden Teilen Geschrieben 14. November 2008 Moin Set colLogFilesSec = objWMIService.ExecQuery _("Select * from Win32_NTEventLogFile where LogFileName='Security'")[/Code] Hast du diese Query schonmal mit nem reinen WMI-Browser ausgeführt? Hab leider keinen 2008er zum Testen zur Verfügung, aber nicht das die in Win32_NTEventLogFile das LogFile umbenannt haben... Zitieren Link zu diesem Kommentar
kscholz 10 Geschrieben 14. November 2008 Autor Melden Teilen Geschrieben 14. November 2008 Hallo Carsten, ich kann das erst am Montag testen, da wir hier noch ein paar andere Probleme haben... Ich werde Dir am Montag dazu mehr berichten, schon mal herzlichen dank... Karsten Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 14. November 2008 Melden Teilen Geschrieben 14. November 2008 Hi, nein, ich bekomme weder eine Fehlermeldung noch macht der Server was im Script steht.Es geht vermeindlich sauber durch, nur das er in dem angebenem Verzeichnis nicht reinschreibt... @OLC: mit lokalen Adminrechten wird das Script ausgeführt.... Genau das ist der Punkt: Du benötigst eine "elevated cmd", um das Security Eventlog überhaupt zu sehen - das ist nicht unbedingt gleichbedeutend mit normalen "Administrator"-Rechten. Wenn Du einmal die von Carsten angesprochene WMI Abfrage in dem gleichen Sicherheitskontext ausführst, wie Dein Script ausgeführt wird, dann wirst Du wahrscheinlich sehen, daß das Security Eventlog schlichtweg gar nicht angezeigt wird. Daher werden auch die anderen Logs gesichert, das Security Eventlog jedoch nicht - würde zumindest zu meiner Vermutung passen. ;) :D Versuche es einmal direkt am System, indem Du per Rechtsklick auf den "Command Prompt" --> "Run as Administrator" wählst. Dann landest Du in der "elevated cmd" und wirst das Script in dieser CMD aller Wahrscheinlichkeit nach korrekt ausführen können. Davon einmal ab könntest Du noch eine Überprüfung einbauen, ob es sich bei dem Zielsystem um ein Vista / 2008 System handelt. Falls ja, speicherst Du die Eventlogs gleich mit der Dateiendung "EVTX" ab. Viele Grüße olc Zitieren Link zu diesem Kommentar
kscholz 10 Geschrieben 18. November 2008 Autor Melden Teilen Geschrieben 18. November 2008 Hi, Versuche es einmal direkt am System, indem Du per Rechtsklick auf den "Command Prompt" --> "Run as Administrator" wählst. Dann landest Du in der "elevated cmd" und wirst das Script in dieser CMD aller Wahrscheinlichkeit nach korrekt ausführen können. Davon einmal ab könntest Du noch eine Überprüfung einbauen, ob es sich bei dem Zielsystem um ein Vista / 2008 System handelt. Falls ja, speicherst Du die Eventlogs gleich mit der Dateiendung "EVTX" ab. Viele Grüße olc Das Script wird mit Domänen-Admin-Rechten ausgeführt. Ich habe aber mal das Script in einer "elevated cmd" ausgeführt. Leider muß ich sagen, das das Ergebniss das selbe sit, sprich es wird kein security-Log gesichert, obwohl es aber als File im Windows Verzeichnis liegt. Bye the way, was mir noch einfällt. es war auch nichtganz einfach das Security-Log unter W2K3 zu sichern, erst der Zusatz "....=impersonate,(Security,Backup)}!" in der 2ten Zeile meines Scriptes veranlasste W2K3 dazu mir auch das Security-Log zu sichern..... Vielleicht hilft das ja weiter, ich habe so langsam keine Ideen mehr dazu. Karsten Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 18. November 2008 Melden Teilen Geschrieben 18. November 2008 Mal ganz quer gedacht: Kommentier mal die Impersonation aus und lass das Ding in der elevated cmd laufen. Mein Verdacht: elevated cmd ==> impersonation in den Kontext Security / Backup damit wäre dann der Kontext der elevated cmd wieder verloren. Just try it... maybe it works. Zitieren Link zu diesem Kommentar
NilsK 2.961 Geschrieben 18. November 2008 Melden Teilen Geschrieben 18. November 2008 Mal anders gedacht: 1. Windows Server 2008 bringt einen eigenen Dienst mit, der das Einsammeln von Events zentral ermöglicht 2. Vielleicht wäre auch das Einsammeln mit Log Parser eine Idee. Ich fand das immer viel einfacher als per WMI Gruß, Nils Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 18. November 2008 Melden Teilen Geschrieben 18. November 2008 Mal anders gedacht: 1. Windows Server 2008 bringt einen eigenen Dienst mit, der das Einsammeln von Events zentral ermöglicht 2. Vielleicht wäre auch das Einsammeln mit Log Parser eine Idee. Ich fand das immer viel einfacher als per WMI Gruß, Nils Hi Nils Da ich die Umgebung in der sich Karsten bewegt aus der Historie ein wenig kenne, kann ich dir schonmal folgenden Fakt nennen, der Option 1 unmöglich macht: momentan ist das noch ne komplett gemischte Umgebung, mit W2k3 und W2k8-Servern, evtl. dümpeln auch noch ein paar W2k-Server vor sich hin. Und durch die Größe der Umgebung ist Variante 2 auch nicht unbedingt so toll. Lässt die sich überhaupt automatisieren? mfg Carsten Zitieren Link zu diesem Kommentar
NilsK 2.961 Geschrieben 18. November 2008 Melden Teilen Geschrieben 18. November 2008 Moin, momentan ist das noch ne komplett gemischte Umgebung, mit W2k3 und W2k8-Servern, evtl. dümpeln auch noch ein paar W2k-Server vor sich hin. ich meinte das auch nicht als vollständigen Ersatz, sondern als Ergänzung für die 2008-Server. Und durch die Größe der Umgebung ist Variante 2 auch nicht unbedingt so toll. Lässt die sich überhaupt automatisieren? Sagen wir es so: Ich habe damit ein automatisches Event-Monitoring in einer weltweiten Umgebung mit 20 Standorten, 30+ DCs und 20+ Exchange-Servern gemacht. Mit stündlich erzeugten Drill-Down-Reports in HTML und vielem mehr. Dazu braucht man kein Entwickler zu sein, und wenn man Log Parser einmal verstanden hat (was zugegebenermaßen ein wenig Liebe erfordert), kommt man schnell zu guten Ergebnissen. Gruß, Nils Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 18. November 2008 Melden Teilen Geschrieben 18. November 2008 Sagen wir es so: Ich habe damit ein automatisches Event-Monitoring in einer weltweiten Umgebung mit 20 Standorten, 30+ DCs und 20+ Exchange-Servern gemacht. Mit stündlich erzeugten Drill-Down-Reports in HTML und vielem mehr. Dazu braucht man kein Entwickler zu sein, und wenn man Log Parser einmal verstanden hat (was zugegebenermaßen ein wenig Liebe erfordert), kommt man schnell zu guten Ergebnissen. Klingt spannend. Vielleicht kann man sich zu diesem Thema ja irgendwann mal noch etwas mehr Input in deinem Blog abholen? ;) ich meinte das auch nicht als vollständigen Ersatz, sondern als Ergänzung für die 2008-Server Auf der anderen Seite versteh ich auch das Bestreben nach "One For All". Zitieren Link zu diesem Kommentar
olc 18 Geschrieben 18. November 2008 Melden Teilen Geschrieben 18. November 2008 Hi, einmal abgesehen davon, daß ich den Vorschlag gut finde, das gesamte Konzept zu überdenken... ;) : Ich habe es gerade mal auf meiner VISTA Kiste getestet - bei mir wird wie besprochen nur in einer elevated cmd das Security Eventlog angezeigt. Jedoch kann ich weder das System- noch das Security Eventlog mit dem Script sichern. Nicht einmal mit SYSTEM-Rechten. Auch das Entfernen der Impersonation half nichts. Die Methode ist jedoch auf jeden Fall korrekt, denn in der PowerShell funktioniert es für alle Logs problemlos: PS C:\> $security = Get-WMIObject -query "Select * from Win32_NTEventLogFile where LogFileName='Security'" PS C:\> $security.backupEventLog("d:\eventlogs\events\security.evtx") Da ich kein VBScript Spezi bin, kann ich mit der Ursache nicht dienen. Ich würde weiterhin auf irgendwelche Rechteprobleme tippen (unter Umständen wird auch die impersonation unter Vista / 2008 anders gehandhabt). Nimm die PowerShell. :D Sorry und Gruß olc Zitieren Link zu diesem Kommentar
NilsK 2.961 Geschrieben 20. November 2008 Melden Teilen Geschrieben 20. November 2008 Moin, Klingt spannend. Vielleicht kann man sich zu diesem Thema ja irgendwann mal noch etwas mehr Input in deinem Blog abholen? ;) ich plane das schon länger. Aber zum einen wird das ein aufwändiger Artikel (und je größer die Arbeit, desto länger schiebt man sie :rolleyes:) und zum anderen war das eine Kundenlösung, die ich noch abspecken und verändern müsste, um sie öffentlich zu machen. Kommt Zeit, kommt Rat. ;) Gruß, Nils 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.