Brainwalk 10 Geschrieben 16. Dezember 2010 Melden Teilen Geschrieben 16. Dezember 2010 Hi Leute, ich habe in einer Excel Tabelle Makros, mit deren Hilfe das EventLog eines MS Server 2003 den wir als Print-Server laufen hatten abgefragt wurde, um somit das Druckvolumen auszuwerten (je Drucker, je Mitarbeiter, usw.). Jetzt wurde der Server auf MS Server 2008 umgestellt und die Abfrage der EventLogs klappt nicht mehr, kann mir da vielleicht jemand helfen. Der alte Aufruf sah so aus: Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMIService = objSWbemLocator.ConnectServer(CompName, "\root\cimv2", UserName, UserPass) Set printEvents = objWMIService.ExecQuery _ ("SELECT * FROM Win32_NTLogEvent " _ & "WHERE Logfile = 'System' " _ & "AND SourceName = 'Print'" _ & "AND EventCode=10") Wie müsste das jetzt aussehen? Besten Dank. Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 18. Dezember 2010 Melden Teilen Geschrieben 18. Dezember 2010 Klappt der WMI-Zugriff denn grundsätzlich? Hat der User, der da bei "Connect" angegeben wird, auf dem Server die entspr. Rechte? Gibts irgend eine Fehlermeldung? Oder kommen nur einfach keine Daten? Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 19. Dezember 2010 Melden Teilen Geschrieben 19. Dezember 2010 Moin, die Ursache wird sein, dass ab 2008 die Print-Meldungen größtenteils in einem eigenen Protokoll landen. Wie man das anspricht, weiß ich aber nicht, weil ich mich mangels Bedarf noch nicht darum gekümmert habe. Gruß, Nils Zitieren Link zu diesem Kommentar
Brainwalk 10 Geschrieben 20. Dezember 2010 Autor Melden Teilen Geschrieben 20. Dezember 2010 Der User ist Domainadmin. Es kommt bei der Abfrage auch keine Fehlermeldung, d.h. der WMI-Zugriff scheint noch zu funktionieren. Es werden nur keine Events zurückgegeben. Nach dem hier: http://www.mcseboard.de/windows-forum-scripting-71/eventlog-abholung-windws-server-2008-a-143508.html scheinen sich ja die Filenames komplett geändert zu haben. :confused: Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 20. Dezember 2010 Melden Teilen Geschrieben 20. Dezember 2010 Moin, naja, sag ich doch ... wozu antwortet man dir denn? :suspect: Gruß, Nils Zitieren Link zu diesem Kommentar
Brainwalk 10 Geschrieben 21. Dezember 2010 Autor Melden Teilen Geschrieben 21. Dezember 2010 Nur leider funktioniert eine Änderung auf: Set printEvents = objWMIService.ExecQuery _ ("SELECT * FROM Win32_NTEventLogFile " _ & "WHERE LogfileName = 'System' " _ & "AND SourceName = 'PrintSpooler'" _ & "AND EventCode=10") ... dann gar nicht mehr! Zitieren Link zu diesem Kommentar
samsam 14 Geschrieben 21. Dezember 2010 Melden Teilen Geschrieben 21. Dezember 2010 Hallo Brainwalk, Möchtest du auch mit Powershell tun? Wenn ja, vielleicht hilft dir diese links: PowerShell Script to Audit Printer Queue Usage VB script or PowerShell script for auditing Win2k8 Print server mfg Zitieren Link zu diesem Kommentar
Brainwalk 10 Geschrieben 22. Dezember 2010 Autor Melden Teilen Geschrieben 22. Dezember 2010 Besten Dank samsam, die Links hatten den entscheidenden Tip: Set printEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent WHERE EventCode=10 And SourceName='Microsoft-Windows-PrintSpooler'") Jetzt kann ich wieder schön in einer Excel Tabelle mit Grafiken sehen, wieviel auf einem Drucker je Monat gedruckt wurde, wieviel jeder Mitarbeiter gedruckt hat und auf welchem Drucker er geduckt hat. :D Zitieren Link zu diesem Kommentar
samsam 14 Geschrieben 22. Dezember 2010 Melden Teilen Geschrieben 22. Dezember 2010 Hallo Brainwalk, Freut mich sehr. Wenn geht, schreib deine Komplete Script hier. Vielleicht ist nützlich für andere Leute. mfg Zitieren Link zu diesem Kommentar
Brainwalk 10 Geschrieben 23. Dezember 2010 Autor Melden Teilen Geschrieben 23. Dezember 2010 Das Ganze sieht jetzt so aus :): Private Function ReadEvents(Optional CompName As String = ".", _ Optional SheetName As String = "Eventlogdaten", _ Optional UserName As String = "", _ Optional UserPass As String = "") As Integer Dim printEvents As Object Dim printEvent As Variant Dim EventData As Collection Dim EventStructure As String Dim objSWbemLocator As Object Dim objWMIService As Object Dim myWS As Worksheet Dim offset As Long Set myWS = Worksheets(SheetName) Worksheets(SheetName).Range("A:I").ClearContents On Error GoTo ErrHand Application.StatusBar = "Initializing WMI..." Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objWMIService = objSWbemLocator.ConnectServer(CompName, "\root\cimv2", UserName, UserPass) Application.StatusBar = "Querying destination Event Log..." Set printEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent WHERE EventCode=10 And SourceName='Microsoft-Windows-PrintSpooler'") On Error GoTo 0 myWS.Cells(1, 1) = "Zeitpunkt" myWS.Cells(1, 2) = "Zeitquantum" myWS.Cells(1, 3) = "Dokumentnummer" myWS.Cells(1, 4) = "Dokumentname" myWS.Cells(1, 5) = "Besitzer" myWS.Cells(1, 6) = "Anschluss" myWS.Cells(1, 7) = "Drucker" myWS.Cells(1, 8) = "Größe" myWS.Cells(1, 9) = "Seiten" offset = 2 Application.StatusBar = "Processing events..." For Each printEvent In printEvents myWS.Cells(offset, 1) = DateValue(Format$( _ Left$(printEvent.TimeGenerated, 14), _ "&&&&-&&-&& &&:&&:&&")) + _ TimeValue(Format$( _ Left$(printEvent.TimeGenerated, 14), _ "&&&&-&&-&& &&:&&:&&")) myWS.Cells(offset, 2).Formula = "=Date(Year(A" & offset & ")," _ & "Month(A" & offset & "),1)" myWS.Cells(offset, 3) = CLng(printEvent.InsertionStrings(0)) myWS.Cells(offset, 4) = "'" & printEvent.InsertionStrings(1) myWS.Cells(offset, 5) = "'" & printEvent.InsertionStrings(2) myWS.Cells(offset, 6) = "'" & printEvent.InsertionStrings(4) myWS.Cells(offset, 7) = "'" & printEvent.InsertionStrings(3) myWS.Cells(offset, 8) = CLng(printEvent.InsertionStrings(5)) myWS.Cells(offset, 9) = CLng(printEvent.InsertionStrings(6)) offset = offset + 1 If (offset - 2) Mod 100 = 0 Then Application.StatusBar = offset - 2 & " Events processed..." End If Next Application.StatusBar = "Done processing " & offset - 2 & " events" ReadEvents = 0 Exit Function ErrHand: MsgBox "Bei der Verarbeitung der WMI-Abfrage ist ein Fehler aufgetreten:" & vbCrLf & _ Err.Description, vbExclamation, "Fehler bei Verarbeitung" ReadEvents = -1 End Function 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.