VB Monitorscript – Alter von Dateien in Verzeichnissen

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.