'************************************************************************ '* '* 08.07.2009 - Jeremy Knight - MSMQ-Size-Report.vbs '* '* This script gets the disk usage for MSMQs on EV servers. '* '************************************************************************ dim oFS, oFolder set oFS = WScript.CreateObject("Scripting.FileSystemObject") WorkingDirectory = "D:\Scripts\MSMQ-Size-Report\" 'Fix folder path for WorkingDirectory (make sure there is a trailing backslash) If right(WorkingDirectory,1) <> "\" then WorkingDirectory = WorkingDirectory & "\" End if Const ForAppending = 8 Const ForWriting = 2 strComputers = Array("Your_EV_Server1","Your_EV_Server2","Your_EV_Server3") '************************************************************************ For each strComputer in strComputers OutputFile = WorkingDirectory & strComputer & "-MSMQ-Size-Report.csv" If Not oFS.FileExists(OutputFile) Then Set strCSVOutputFile = oFS.createTextFile(OutputFile, ForWriting) strCSVOutputFile.writeline "DateTime,Folder,Size (MB)" Else Set strCSVOutputFile = oFS.OpenTextFile(OutputFile, ForAppending) End if strCSVOutputFile.write DateTime set oFolder = oFS.GetFolder("\\" & strComputer & "\d$\MSMQ\") FolderSize = (FormatNumber(oFolder.Size / 1024 / 1024,2)) Q1 = Instr(FolderSize,".") FolderSizeEvaluator = mid(FolderSize,1,Q1 - 1) If FolderSizeEvaluator > 4000 then EmailAdmins End if strCSVOutputFile.write "," & oFolder.path & "," & FolderSize & vbcrlf Next '************************************************************************ Function DateTime ' Get Date & Time Data. Dim Styr, Stmo, Stdt, Sthr, Stmin, Stsec Styr = Year(Now) Stmo = Month(Now) if Stmo < 10 Then Stmo = "0" & Stmo end if Stdt = Day(Now) if Stdt < 10 Then Stdt = "0" & Stdt end if Sthr = Hour(Now) if Sthr < 10 Then Sthr = "0" & Sthr end if Stmin = Minute(Now) if Stmin < 10 Then Stmin = "0" & Stmin end if Stsec = Second(Now) if Stsec < 10 Then Stsec = "0" & Stsec end if DateTime = Stdt & "." & Stmo & "." & Styr & " " & Sthr & ":" & Stmin & ":" & Stsec End Function '************************************************************************ Function EmailAdmins Set objMessage = CreateObject("CDO.Message") objMessage.Subject = "MSMQ Size Warning on " & strComputer objMessage.From = "your_from_email_address" objMessage.To = "your_to_email_address" objMessage.HTMLBody = "The D:\MSMQ\ folder on " & strComputer & " is currently at " & FolderSize & "MB. Once this folder gets to 8GB archiving on this Enterprise Vault server will stop working.

Make sure journally is disabled for all Enterprise Vault private queues. During normal operations (including PST migrations) this folder should be nowhere near as large as this.
" 'objMessage.AddAttachment strOutputPathFile objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "your_email_server" objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 objMessage.Configuration.Fields.Update objMessage.Send End Function