'--Parameters-- "Folder name" #of minutes **Example "c:\temp" 10 '--Unhealthy Expression-- Property[@Name='State'] Equals BAD '--Healthy Expression-- Property[@Name='State'] Equals GOOD '--Alert Description-- $Data/Context/Property[@Name='ret']$ '--By Tim McFadden-- http://www.scom2k7.com On Error Resume Next Dim FileDateLastMod, oAPI, oBag, objFSO, objFile, Filename, FileAgeThreshold, oArgs,bFileAged,strReturn Set oAPI = CreateObject("MOM.ScriptAPI") Set oBag = oAPI.CreateTypedPropertyBag(StateDataType) Set oArgs = WScript.Arguments If oArgs.Count < 1 Then Call oAPI.LogScriptEvent("FileAgeCheck.vbs", 500, 0, "Script aborted. Not enough parameters provided.") WScript.Quit -1 End If FolderName = oArgs(0) 'The 0 indicates File_Name is the first argument FileAgeThreshold = int(oArgs(1)) 'The 1 indicates FileAgeThreshold is the second argument Set objFSO=CreateObject("Scripting.FileSystemObject") If (objFSO.FolderExists(FolderName))Then bFileAged = false Set objFolder=objFSO.GetFolder(FolderName) ProcessSubFolders objFolder IF bFileAged Then Call oBag.AddValue("State","BAD") Call oBag.AddValue("ret",strReturn) Call oBag.AddValue("folder",FolderName) Else Call oBag.AddValue("State","GOOD") Call oBag.AddValue("folder",FolderName) End If Else Call oBag.AddValue("State","BAD") Call oBag.AddValue("ret","Folder Not Found: " & FolderName) Call oBag.AddValue("folder",vbNewLine & FolderName) End If Call oAPI.Return(oBag) Sub ProcessSubFolders(MyFolder) Set Dirfiles = MyFolder.Files For each file in Dirfiles 'wscript.echo (file.Path) If DateDiff("n", File.DateLastModified, Now) > FileAgeThreshold Then strReturn = vbNewLine & strReturn & "File: " & File.Path & " was last modified on " & File.DateLastModified &_ ". This is greater than the error threshold of " & FileAgeThreshold & " Minutes." & vbNewLine bFileAged = true end If Next End Sub