Say I use Get-Queue -Server HT1 to pull up the queue on server transport1. It outputs something like this:

Identity       DeliveryType Status MessageCount NextHopDomain   
--------       ------------ ------ ------------ -------------   
HT1\47782      MapiDelivery Ready  0            mail1.c...
HT1\47783      MapiDelivery Ready  2            mail4.c....
HT1\48599      MapiDelivery Ready  0            mail2.c...
HT2\Submission Undefined    Ready  4            Submission    
HT2\47782      MapiDelivery Ready  0            mail1.c...
HT2\47783      MapiDelivery Ready  1            mail4.c....
HT3\48599      MapiDelivery Ready  0            mail2.c...
HT3\Submission Undefined    Ready  4            Submission  

Is there a way to implement a loop or some logic so that I can get a cleaner one line output with a total queue count, even if I was to get the queue status on all transport server, something like this:

Server Queue

HT1      2
HT2      0
HT2      20    

Try with this:

Get-Queue | Group-Object {$_.Identity.Server} | Select-Object Name,@{n="MessageCount";e={($_.group | Measure-Object MessageCount -sum).sum}}
  • +1, but you need to change $. to $_. – Doug Luxem Aug 19 '09 at 18:23
  • Perfect, thank you! Gives me a nice and simple display now! – Agent Aug 20 '09 at 14:50

Partial answer, you could apply a filter, such as

get-queue -server HT1 -Filter {MessageCount -gt 5}

this would only display results with messages greater than 5 in domain hop.

  • Thanks, that gets me closer to what I'm looking for but sometimes a couple of the queues are backed up, in which case there would still be 2 or more lines for it. – Agent Aug 18 '09 at 15:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.