Visual Basic Script (VB Script) für einen Monitor (z.B. SCOM)
Aufgabe: Es soll in mehreren Verzeichnissen nach nicht verarbeiteten Dateien gesucht werden. Dabei soll bei einer Schwellwertüberschreitung das Script „ERROR“ liefern, sonst „OK“.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | ' Dieses Monitorscript prueft auf ein maximales Alter von Dateien ' in mehreren Foldern - Return ist "OK" oder "ERROR" ' Detailiertes LOG fuer Schwellwertueberschreitungen in LogDatei Option Explicit Dim objFSO, objFile, objFolder, objLogFile, objAlter, maxtoleranz, Status, Folder, jetzt Dim FolderArray, FStream, strFile, Alter, LogMsg ' Schwellwert für die Fehlerausloesung (LastModified-Alter in Sekunden) maxtoleranz = 300 'ARRAY der Folder 'entweder hier ReDim oder unter Dim direkt Groesse vereinbaren ReDim FolderArray(2) FolderArray(0) = "c:\Folder_1\" FolderArray(1) = "c:\Folder_2\" FolderArray(2) = "c:\Folder_3\" Status = "OK" For Each Folder in FolderArray jetzt = now Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(Folder) For Each strFile in objFolder.Files Set objFile = objFSO.GetFile(strFile) Alter = Datediff("s",objFile.DateLastModified,jetzt) If (Alter > maxtoleranz) Then Status = "ERROR" LogMsg = jetzt & " " & Alter & " " & strFile Set objLogFile = objFSO.OpenTextFile("C:\log\fileage.log", 8, True) objLogFile.WriteLine(LogMsg) objLogFile.Close End If Next Next Wscript.echo Status |