Video Screencast Help

Powershell : Retrieving the message count for MSMQ queues

Created: 08 Dec 2012 • Updated: 18 Jan 2013 | 14 comments
This issue has been solved. See solution.


Do you have a script to monitor all MSMQ queues on Vault?

I found some on Internet but they don't work as the queue names get truncated to 64 characters.


Discussion Filed Under:

Comments 14 CommentsJump to latest comment

JesusWept3's picture

Does it have to be powershell??

JesusWept3's picture

Wayne Humphrey wrote a nice little VBScript you can find here:

mistervault's picture

No, it does not have to be necessary Powershell, it can be other language.

I will check this vbs and if it works I will mark as the solution.

Thanks again, great forum full of experts!

mistervault's picture

I just tried the script but it returns 0 messages (although when I check in compmgmt.msc there are about 100 messages).

AKL's picture

I've a script which monitors EV other MSMQ and generates HTML email alerts based on parameters definied within script.

At the core, it uses WMI query to pull MSMQ information for multiple servers.

I can upload it to download section but might take couple days as it goes through approvals.

If you wish, I can email it to you and you can test if it works for you

Thank You


mistervault's picture

Thanks for reply, yes it could be great if you can send me by email so I can test.

AndrewB's picture

here's how you can use the WMI called from powershell. works like a charm. just put this in a file whatever.ps1 and you're off to the races. you can substitute the ft for fl or however you'd like the results to be listed.

$queues = Get-WmiObject Win32_PerfFormattedData_msmq_MSMQQueue
$queues | ft -property Name,MessagesInQueue

Andy Becker | Authorized Symantec Consultant | Trace3 | Symantec National Partner |

GertjanA's picture

We use the attached Powershell.

The file srvlist.txt (which is called in the PS1 file) is filled with the aliasses of the EV-servers, 1 per line.

This list reports if an EV-queue is over 100 messages.

Rename file to .ps1, test

CheckPrivateQueues.ps1_.txt 1.24 KB

Thank you, Gertjan, MCSE, MCITP,MCTS, SCS, STS

mistervault's picture

I just tested this tool on my EV server (clustered) : 

PS C:\msmq> .\MSMQMonitor.exe

QUADROtech MSMQ monitoring (
Unhandled Exception: System.Messaging.MessageQueueException: Remote computer is
not available.
   at System.Messaging.MessageQueue.GetPrivateQueuesByMachine(String machineName
   at QUADROtech.MSMQMonitor.MSMQ.MessageQueueInit.LoadWrappers(String machineNa
me, MonitorFilterDefinition filterDefinition)
   at QUADROtech.MSMQMonitor.Program.Main(String[] args)
PS C:\msmq>
Rob.Wilcox's picture

I've never tried it on a clustered environment.  Did you try any of the command line switches from the instructions on the QUADROtech web site?

(Feel free to email direct to troubleshoot ->

Rob.Wilcox's picture

NP - I think we got to the bottom of (part of) it on email .. MSMQ Monitor currently doesn't support clustered servers.

As mentioned over email, I'll dig out some other code and send it over.