Automatische Mailinfo wenn Disk oder Cdrom Fehler in Eventlog?
Hallo an alle
Wollte fragen, ob es eine Möglichkeit bzw ein Script oder Freewaretool gibt,
dass mir folgende Info mailt, falls vorhanden.
Eventlog - System
Error für disk & cdrom
Warning für disk & cdrom
am liebsten wäre es mir wenn das Tool einmal am Tag, bei anmelden checkt und bei vorkommenden Error oder Warning mir eine Mail an eine fest Mail-Adresse sendet.
Gibt es hierzu was?
Sollte hier diese Fragen schon mal aufgetaucht sein, wäre ich mit dem Link in das passende Thema schon zufrieden
LG
Wollte fragen, ob es eine Möglichkeit bzw ein Script oder Freewaretool gibt,
dass mir folgende Info mailt, falls vorhanden.
Eventlog - System
Error für disk & cdrom
Warning für disk & cdrom
am liebsten wäre es mir wenn das Tool einmal am Tag, bei anmelden checkt und bei vorkommenden Error oder Warning mir eine Mail an eine fest Mail-Adresse sendet.
Gibt es hierzu was?
Sollte hier diese Fragen schon mal aufgetaucht sein, wäre ich mit dem Link in das passende Thema schon zufrieden
LG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 161249
Url: https://administrator.de/contentid/161249
Ausgedruckt am: 23.11.2024 um 03:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo easybernd,
da Du zu Deinem Betriebssystem nichts verraten hast: In Windows 7 (evtl. auch Vista?) kann man über die Aufgabenplanung (Nachfolger des Taskplaners) eine Aufgabe starten (und damit ein Programm), wenn ein bestimmter Event auftritt. Als zu startendes Programm würde sich für Dich BLAT anbieten, ein EMail-Client für die Kommandozeile, erhältlich hier. Zum erstellen von eventgetriggerten Aufgaben mal googeln.
Gruß
Friemler
da Du zu Deinem Betriebssystem nichts verraten hast: In Windows 7 (evtl. auch Vista?) kann man über die Aufgabenplanung (Nachfolger des Taskplaners) eine Aufgabe starten (und damit ein Programm), wenn ein bestimmter Event auftritt. Als zu startendes Programm würde sich für Dich BLAT anbieten, ein EMail-Client für die Kommandozeile, erhältlich hier. Zum erstellen von eventgetriggerten Aufgaben mal googeln.
Gruß
Friemler
Bernd, Friemler hat doch etwas genannt. Geh darauf ein - reicht die Lösung zumindest für win7 oder muss es eine sein, die für beide OS' funktioniert?
Für xp gibt es die onboard-Lösung eventtriggers.exe.
Siehe auch Möglichkeiten der Eventlogüberwachung mit Vista und 2008
Für xp gibt es die onboard-Lösung eventtriggers.exe.
Siehe auch Möglichkeiten der Eventlogüberwachung mit Vista und 2008
Hallo easybernd,
schau mal hier:
evt-Watch, für die Kommandozeile (mit XML-Steuerdatei), Freeware, .NET 2.0 erforderlich
EventSentry, GUI, 30-Tage-Trial
EventSentry, GUI, Light-Version, Freeware, Registrierung erforderlich
Gruß
Friemler
schau mal hier:
evt-Watch, für die Kommandozeile (mit XML-Steuerdatei), Freeware, .NET 2.0 erforderlich
EventSentry, GUI, 30-Tage-Trial
EventSentry, GUI, Light-Version, Freeware, Registrierung erforderlich
Gruß
Friemler
Hi,
weitere Möglichkeit per VBS:
Auf dieser Seite wird erklärt, wie man per VBS unter Benutzung von WMI einen Permanent Event Consumer schreibt, der bei Auftreten eines WMI-Events eine Aktion ausführen kann (für Dich interessant: der CommandLineEventConsumer, mit dem Du CSCRIPT.EXE mit einem VBScript als Parameter und weiteren Parametern für das Script starten kannst). Hier auch noch die MSDN-Seite zum Thema.
Hier findest Du die passende WQL-Query für den Eventfilter, durch die ein wählbares Windows-Log auf Events überwacht wird, was dann einen WMI-Event erzeugt, der von einem Commandline Event Consumer bearbeitet werden kann. Hier die MSDN-Seite zur
Hier einen Artikel über die WQL (WMI Query Language), in dem auch auf das in Windows integrierte Programm
Und hier VBS-Code zum versenden einer EMail.
Im folgenden noch ein Beispiel-Skript für einen Commandline Event Consumer, dass ich letztens verbrochen habe, um die Erstellung von Dateien in einem bestimmten Verzeichnis zu überwachen. Das ganze ist quasi ein Gerüst für alle möglichen Commandline Event Consumer. Es muss lediglich der Abschnitt am Anfang des Scripts (der mit Sternchen eingefasst ist) auf die jeweiligen Bedürfnisse angepasst werden, im wesentlichen die WQL-Query und die Parameter, die an das aufzurufende Eventhandler-Script übergeben werden sollen, den Abschnitt
Wenn das Script an die jeweilige Aufgabe angepasst ist, muss es nur einmalig gestartet werden, um den Event Consumer zu installieren. Er bleibt auch nach einem Reboot erhalten. Du musst natürlich noch ein VBScript schreiben, das als Eventhandler fungiert und von dem Consumer aufgerufen wird. Hier kannst Du dann die EMail verschicken. Dieses Script muss unter einem bestimmten Namen im selben Verzeichnis wie das folgende Script gespeichert werden und auch dort bleiben. Der Name ergibt sich aus dem String in Zeile 13 ohne Leerzeichen
Gruß
Friemler
weitere Möglichkeit per VBS:
Auf dieser Seite wird erklärt, wie man per VBS unter Benutzung von WMI einen Permanent Event Consumer schreibt, der bei Auftreten eines WMI-Events eine Aktion ausführen kann (für Dich interessant: der CommandLineEventConsumer, mit dem Du CSCRIPT.EXE mit einem VBScript als Parameter und weiteren Parametern für das Script starten kannst). Hier auch noch die MSDN-Seite zum Thema.
Hier findest Du die passende WQL-Query für den Eventfilter, durch die ein wählbares Windows-Log auf Events überwacht wird, was dann einen WMI-Event erzeugt, der von einem Commandline Event Consumer bearbeitet werden kann. Hier die MSDN-Seite zur
Win32_NTLogEvent
-Klasse, wo Du die Eigenschaften eines Windows-Log-Events findest um Informationen über den aufgetretenen Windows-Event zu bekommen.Hier einen Artikel über die WQL (WMI Query Language), in dem auch auf das in Windows integrierte Programm
WBEMTEST.EXE
eingegangen wird, das zum debuggen von Event Consumern sehr nützlich ist (wenn was schief läuft, kann man damit den installierten Event Consumer, den Eventfilter und das Filter->Consumer-Binding wieder löschen).Und hier VBS-Code zum versenden einer EMail.
Im folgenden noch ein Beispiel-Skript für einen Commandline Event Consumer, dass ich letztens verbrochen habe, um die Erstellung von Dateien in einem bestimmten Verzeichnis zu überwachen. Das ganze ist quasi ein Gerüst für alle möglichen Commandline Event Consumer. Es muss lediglich der Abschnitt am Anfang des Scripts (der mit Sternchen eingefasst ist) auf die jeweiligen Bedürfnisse angepasst werden, im wesentlichen die WQL-Query und die Parameter, die an das aufzurufende Eventhandler-Script übergeben werden sollen, den Abschnitt
"Prepare Monitor Filespec for WMI Event Filter query"
kannst Du für Deine Zwecke entfernen. Zum Verständnis ist auf jeden Fall die Lektüre dieser schon genannten Seite zu empfehlen, obwohl dort mit MOF-Dateien gearbeitet wird (ist mir zu umständlich und geht, wie man im Script sieht, auch direkt aus VBS).Wenn das Script an die jeweilige Aufgabe angepasst ist, muss es nur einmalig gestartet werden, um den Event Consumer zu installieren. Er bleibt auch nach einem Reboot erhalten. Du musst natürlich noch ein VBScript schreiben, das als Eventhandler fungiert und von dem Consumer aufgerufen wird. Hier kannst Du dann die EMail verschicken. Dieses Script muss unter einem bestimmten Namen im selben Verzeichnis wie das folgende Script gespeichert werden und auch dort bleiben. Der Name ergibt sich aus dem String in Zeile 13 ohne Leerzeichen
strEventDescription
+EventHandler.vbs
, für das Beispiel-Skript also NewTextfileCreationEventHandler.vbs
.' ===========================================
' Run this script with administrative rights!
' ===========================================
'/////////////////////////////// Configure script's job ///////////////////////////////
'******************** Customize according to your specific needs **********************
'------------------ Set event description and job related variables -------------------
strEventDescription = "New Textfile Creation"
strMonitorFileSpec = "E:\Test\*.txt"
strPollingIntervall = "1"
'---------------- Prepare Monitor Filespec for WMI Event Filter query -----------------
Set FSO = CreateObject("Scripting.FileSystemObject")
strDrive = FSO.GetDriveName(strMonitorFileSpec)
strFileName = FSO.GetFileName(strMonitorFileSpec)
intPathBegin = Len(strDrive) + 1
intPathLen = Len(strMonitorFileSpec) - Len(StrDrive) - Len(strFileName)
strPath = Replace(Mid(strMonitorFileSpec, intPathBegin, intPathLen), "\", "\\")
strExtension = FSO.GetExtensionName(strMonitorFileSpec)
Set FSO = Nothing
'----------------------------- Set WMI Event Filter query -----------------------------
strEventFilterQuery = "SELECT * FROM __InstanceCreationEvent" _
& " WITHIN " & strPollingIntervall _
& " WHERE TargetInstance ISA 'CIM_DataFile'" _
& " AND TargetInstance.Drive='" & strDrive & "'" _
& " AND TargetInstance.Path='" & strPath & "'" _
& " AND TargetInstance.Extension='" & strExtension & "'"
'-------------- Set WMI Namespace where the monitored event will occure ---------------
strEventNamespace = "root\Cimv2"
'----------- Set parameters which should be passed to Event Handler script ------------
strEventHandlerParam = """" _
& "%TargetInstance.Drive%" _
& "%TargetInstance.Path%" _
& "%TargetInstance.FileName%" _
& "." _
& "%TargetInstance.Extension%" _
& """"
'**************************************************************************************
'//////////////////////////////// Set script variables ////////////////////////////////
'- Set Event Handler path, quote it and prepare it and its working directory for WMI --
Set FSO = CreateObject("Scripting.FileSystemObject")
strEventHandlerWD = Replace(FSO.GetParentFolderName(WScript.ScriptFullName), "\", "\\")
strEventHandler = Replace(strEventDescription, " ", "") & "EventHandler.vbs"
strEventHandler = """" & strEventHandlerWD & "\\" & strEventHandler & """"
Set FSO = Nothing
'----------------------- Test for existing Event Handler script -----------------------
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(Replace(Replace(strEventHandler, "\\", "\"), """", "")) Then
MsgBox "The Event Handler script " & vbCRLF _
& Replace(strEventHandler, "\\", "\") & vbCRLF _
& "does not exist. Please create it.", _
vbExclamation, _
"Missing Event Handler script"
End If
Set FSO = Nothing
'-------------------------- Build parameters for CScript.exe --------------------------
strCScriptParam = strEventHandler & " " & strEventHandlerParam
'---------------- Get path of Windows Directory and prepare it for WMI ----------------
Set WshShell = WScript.CreateObject("WScript.Shell")
strWinDir = Replace(WshShell.ExpandEnvironmentStrings("%SystemRoot%"), "\", "\\")
Set WshShell = Nothing
'---------------------- Set path of CScript.exe prepared for WMI ----------------------
setCScriptPath = strWinDir & "\\System32\\cscript.exe"
'////////////////////////// Install permanent Event Consumer //////////////////////////
'------- Get WMI Scripting API object (SWbemServices), Namespace: Subscription --------
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" _
& "\\" & strComputer & "\root\Subscription")
'------------------------------ Create the Event Filter -------------------------------
Set objFilterClass = objWMIService.Get("__EventFilter")
Set objFilter = objFilterClass.SpawnInstance_()
objFilter.Name = strEventDescription & " Event Filter"
objFilter.EventNamespace = strEventNamespace
objFilter.QueryLanguage = "WQL"
objFilter.Query = strEventFilterQuery
Set EventFilterPath = objFilter.Put_()
'----------------------- Create the Commandline Event Consumer ------------------------
Set objEventConsumerClass = objWMIService.Get("CommandLineEventConsumer")
Set objEventConsumer = objEventConsumerClass.SpawnInstance_()
objEventConsumer.Name = strEventDescription & " Commandline Event Consumer"
objEventConsumer.CommandLineTemplate = setCScriptPath & " " & strCScriptParam
objEventConsumer.ExecutablePath = setCScriptPath
objEventConsumer.WorkingDirectory = strEventHandlerWD
objEventConsumer.ShowWindowCommand = 0
Set CommandlineEventConsumerPath = objEventConsumer.Put_()
'------------------ Bind Event Filter to Commandline Event Consumer -------------------
Set objBindingClass = objWMIService.Get("__FilterToConsumerBinding")
Set objBinding = objBindingClass.SpawnInstance_()
objBinding.Filter = EventFilterPath
objBinding.Consumer = CommandlineEventConsumerPath
objBinding.Put_()
Gruß
Friemler