iconAlle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr. | Welcome to Forum, please register to access all of our features.

» sWiZz-eL!Te-bo@rd » talk about tech » coding » per VBA Eventlog auslesen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 10.04.2008, 14:30
Benutzerbild von tschitscho
Registrierter Benutzer
 
Registriert seit: 05.2002
Ort: Züri
Beiträge: 586
per VBA Eventlog auslesen

Ich code wiedermal ein wenig rum und möchte ein tool zur einfacheren Serveradministrierung basteln. (Netzlaufwerke connecten, pingen, eventviewer überwachen usw.)
Da ich in der Bude keine schlaue Software habe, muss halt MS-Access 2003 herhalten. . .
Nur, wie kann ich die Werte des Eventviewers auslesen? (Ich brauche nur das Application -und Systemlog)
Mit Zitat antworten
  #2 (permalink)  
Alt 10.04.2008, 16:39
Benutzerbild von hellcat
Moderator
 
Registriert seit: 05.2002
Ort: Schweiz
Beiträge: 697
MS-Access? warum nicht:
http://www.oracle.com/technology/pro.../xe/index.html
free & easy to use...
__________________
"Text messaging being a modern technology that allows average people to display their functional illiteracy in a much more compact format."
Mit Zitat antworten
  #3 (permalink)  
Alt 10.04.2008, 20:31
Benutzerbild von tschitscho
Registrierter Benutzer
 
Registriert seit: 05.2002
Ort: Züri
Beiträge: 586
Das Problem ist, ich darf nichts installieren und hab' nicht mal die Berechtigung dazu, darum geht eigentlich nur Access
Mit Zitat antworten
  #4 (permalink)  
Alt 11.04.2008, 11:16
Benutzerbild von hellcat
Moderator
 
Registriert seit: 05.2002
Ort: Schweiz
Beiträge: 697
ah, na dann mein herzliches beileid...
hier ein link zur eigentlichen frage:
Query the Event Log (VB.NET)
__________________
"Text messaging being a modern technology that allows average people to display their functional illiteracy in a much more compact format."
Mit Zitat antworten
  #5 (permalink)  
Alt 11.04.2008, 12:18
Benutzerbild von tschitscho
Registrierter Benutzer
 
Registriert seit: 05.2002
Ort: Züri
Beiträge: 586
Danke das habich auch gefunden.
WSH wär allerdings auch noch ne Variante...
Mit Zitat antworten
  #6 (permalink)  
Alt 13.04.2008, 11:41
Benutzerbild von voodoo
Moderator
 
Registriert seit: 11.2001
Ort: Bern
Beiträge: 1.388
beim scripten ist wohl wmi die schnittstelle deiner wahl.
hier ein beispielscript: http://www.softwarepoetry.com/downlo...entlog.vbs.txt
habe nicht geprüft ob und wie es funktioniert. falls du noch fragen zu wmi hast kann ich dir eventuell weiterhelfen.
__________________
-----------------------------~*voodoo*~-----------------------------

Gewalt ist das Mittel des geistig Schwachen
My sWiZz eL!Te bLOg
Mod - sWiZz eL!Te Bo@rD
Mit Zitat antworten
  #7 (permalink)  
Alt 21.04.2008, 07:49
Benutzerbild von tschitscho
Registrierter Benutzer
 
Registriert seit: 05.2002
Ort: Züri
Beiträge: 586
So, um das Thema abzuschliessen, hier der Code den ich im VBA verwende:
Zitat:
Function getEventCacheUpdate(strComputer As String, strUsername As String, strPassword As String, intErrorNo As Integer)

Dim objWMIService As Object
Dim colLoggedEvents As Object
Dim objEvent As Object
Dim i As Integer
Dim FILTERED As Boolean
Dim dtmDate As String
Dim dtmTime As String
Dim dtmsTime As String
Dim dtmdatetime As String
Dim dtmTimeminus1minute As String
Dim DeinArrayMitEventTypeIntegers(0 To 1) As Integer

DeinArrayMitEventTypeIntegers(0) = 3
DeinArrayMitEventTypeIntegers(1) = 2

dtmDate = CDate(Date)
dtmTime = CDate(Time)
dtmDate = Year(dtmDate) & Right("00" & Month(dtmDate), 2) & Right("00" & Day(dtmDate), 2)
dtmsTime = Right("00" & Hour(dtmTime), 2) & Right("00" & Minute(dtmTime), 2) & Right("00" & Second(dtmTime), 2)
dtmsTimeminus1minute = Right("00" & Hour(dtmTime), 2) & Right("00" & (Minute(dtmTime) - 1), 2) & Right("00" & Second(dtmTime), 2)
dtmdatetime = dtmDate & dtmsTime
dtmsTimeminus1minute = dtmDate & dtmsTimeminus1minute & ".000000+120"

'*****************
'Beispielwerte
'strComputer = "s01b2sz7"

Set objSWbemLocator = CreateObject("WbemScripting.sWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "\root\CIMV2", strUsername, strPassword, "MS_409", "NTLMDomain:" + strComputer)

' Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent WHERE Logfile = 'Application' And TimeWritten >='" & dtmsTimeminus1minute & "' AND Eventcode=" & intErrorNo)


For Each objEvent In colLoggedEvents
For i = LBound(DeinArrayMitEventTypeIntegers) To UBound(DeinArrayMitEventTypeIntegers)
If (objEvent.EventType = DeinArrayMitEventTypeIntegers(i)) Then FILTERED = True
Debug.Print "Category: " & objEvent.Category
Debug.Print "Computer Name: " & objEvent.ComputerName
Debug.Print "Event Code: " & objEvent.EventCode
Debug.Print "Message: " & objEvent.Message
Debug.Print "Record Number: " & objEvent.RecordNumber
Debug.Print "Source Name: " & objEvent.SourceName
Debug.Print "Time Written: " & objEvent.TimeWritten
Debug.Print "Event Type: " & objEvent.Type
Debug.Print "User: " & objEvent.User
getEventCacheUpdate = objEvent.Message
Next i
If Not FILTERED Then
End If
FILTERED = False
Next objEvent

End Function
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an




Search Engine Optimization by vBSEO 3.2.0