VBscript ganz einfach, aber trotz google komme ich nicht auf die Lösung!

  • VBScript

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    VBscript ganz einfach, aber trotz google komme ich nicht auf die Lösung!

    Hallo zusammen

    Ich dachte immer so ein VBScript ist einfach und trotzdem komme ich einfach nicht auf die Lösung.

    Ich wollte ein Script schreiben, welches im Windows EventLog in der Rubrik Application die Anzahl der Einträge für die EventID 4101 zusammenzählt. Sollte das Event pro Tag mehr als ein Mal vorkommen, soll der Computer sofort heruntergefahren werden. Damit will ich verhindern, dass der Computer mehr als ein mal täglich verwendet wird. Ihr denkt jetzt vielleicht, da gibt es einfachere Lösungen dann nur zu :).

    Ich habe das Script im Inet zusammengepastet nur folgendes kapiere ich nicht, ich bin auch ein totaler Anfänger:

    Wie schränke ich das Select* Statement noch zusätzlich auf DATE = heute ein?

    Hier der Code:

    Quellcode

    1. strComputer = "."
    2. 'Den aktuellen Computer durchsuchen
    3. Set objWMIService = GetObject("winmgmts:" & "\\" & "localhost" & "\root\cimv2") 'WMI zum durchsuchen nutzen
    4. 'Auslesen der Nachricht der letzten Warnung bzw. des letzten Fehlers
    5. Set Login_Zahl = objWMIService.ExecQuery _
    6. ("Select * from Win32_NTLogEvent where (EventCode = '4101' AND [u][i][b]HIER SOLLTE DAS DATUMSTATEMENT KOMMEN ALSO Z.B. DATE=TODAY [/b][/i][/u])")
    7. txt=""
    8. For Each objEvent in Login_Zahl
    9. MsgBox "Ereignisdatum: " & objEvent.TimeGenerated & vbCrLf & "Beschreibung: " & objEvent.Message '
    10. 'Anzahl_Winlogons = Login_Zahl.count
    11. 'wscript.echo "Anzahl Logins: " & Anzahl_Winlogons
    12. Set ZugriffDatei = CreateObject("Scripting.FileSystemObject") 'Erzeugen eines Objekts für den Zugriff auf das Dateisystem
    13. Set Datei = ZugriffDatei.OpenTextFile("C:\Eventlg\event.txt",2) 'Textdatei C:\Eventlg\event.txt im Schreibmodus (2)
    14. 'öffnen (mit dem oben genannten Objekt)
    15. Datei.writeLine "Anzahl Fehler: " & Anzahl_Winlogons
    16. Datei.close 'C:\Eventlg\event.txt schließen
    17. next


    Danke
    Ahoi,

    da es sich um Windows handelt wird für ein SQL-Statement sicher MSSQL verwendet. Dabei holst du dir das aktuelle Datum mit GETDATE().
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de
    Naja, der Zweck ist etwas zweifelhaft. Was, wenn Windows wegen Updates ein Neustart haben will und der User ist bei der Meldung gerade am was tippen? Leertaste und Enter sind bei solchen Fragen immer gleich ein OK. Soll es für eine Einschränkung des Nachwuchses sein, wäre ein Zeitlimit besser.

    Ansonsten ist "So ein VB-Script" mal einfacher und mal komplizierter. Je nachdem, was es erledigen soll.
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    vbnewbi schrieb:

    Wie schränke ich das Select* Statement noch zusätzlich auf DATE = heute ein?
    Indem du die Zeit im WMI-Zeitformat angibst.


    Manü schrieb:

    wird für ein SQL-Statement sicher MSSQL verwendet
    Sicher nicht.
    Die Rede ist von WMI. Da wird WQL gesprochen.

    peterfido schrieb:

    der Zweck ist etwas zweifelhaft.
    Kann ich nur unterschreiben.
    Abgesehen davon, dass ich ebenfalls an der Sinnhaftigkeit zweifle, wird das Script sicher mit Minimalaufwand auszuhebeln sein.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --