Home > Exchange Administation, Message Tracking, Powershell > Version 2.1 of WizBang Exchange Message Tracker

Version 2.1 of WizBang Exchange Message Tracker

Version 2.1 of WizBang Exchange Message Tracker is now available.

Bug Fixes:

  • Fixed bug where hours on graph were sometimes wrong
  • Fixed bug where messages with multiple recipients were counted in sent totals for each recipient. Each unique sent message is now counted a maximum of once in internal sent total and once in external sent total.
  • Added code to check for null values in $unkey, $sndarray, and $recparray before attempting to add to collection

New Functionality:

  • Added export to html button on dashboard

Please see this post for details on the WizBang Exchange Message Tracker.

You can download the latest version here (change extension to .ps1).

  1. November 29, 2012 at 7:24 pm

    when I get logs, it takes a bit then returns and the dashboard is empty, when I look back at the powershell cmd I see errors. Here is a link to the screenshot http://i.imgur.com/W10AJ.png


    • December 5, 2012 at 4:51 pm


      Are you running version 2.1? Are you using any search criteria or are all the boxes unchecked? If you run the same search the native Exchange message tracking tool, do you get any results?


  2. Ab
    January 21, 2013 at 1:59 am


    The link to the code is kind of not working.

    After trying to Download, it says Invalid Link in the third party site. fileswap.com

    • January 26, 2013 at 11:10 pm

      I’m not sure why this isn’t working for you. I just verified the link works.


  3. AV
    March 13, 2013 at 7:31 am

    I had issues with the script due to DateTime issues:
    Get-MessageTrackingLog : Cannot bind parameter ‘Start’. Cannot convert value “03/13/2013 16:07:13” to type “System.Date
    Time”. Error: “String was not recognized as a valid DateTime.”
    At line:1 char:72
    + Get-MessageTrackingLog -Server INTECH-MAIN -ResultSize Unlimited -Start <<<< '03/13/2013 16:07:13' -End '03/13/2013
    + CategoryInfo : InvalidArgument: (:) [Get-MessageTrackingLog], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Exchange.Management.TransportLogSearchTasks.Get

    this error was caused by having different locales between the shell and the OS (this is apparently a common issue according to google). in my cause get-Locale = en-AU and get-UILocale=en-US. the date was being presented as MM/DD/YYYY and the cmdlet was choking on it, expecting it to be "DD/MM/YYYY" instead.

    I fixed it by hacking the script's two lines where the cmdlet is called (first example only shown):
    $GetTrackingLogCmdlet = "Get-MessageTrackingLog -Server $($_.Name) -ResultSize Unlimited -Start '$(get-date $dtQueryDT -f 'yyyy-MM-dd HH:mm:ss')' -End '$(get-date $dtQueryDTf -f 'yyyy-MM-dd HH:mm:ss')' $RecipientsParm$RecipientsText $senderParm $SenderText $EventIDParm $EventIDText $MessageIDParm $MessageIDText $IntMessageIDParm $IntMessageIDText $SubjectParm $SubjectText $ReferenceParm $ReferenceText"

    it's a hack, and I don't know if this will work for everyone, but it did the trick for me. It may work for you.

  4. jconner
    March 25, 2013 at 8:38 pm


    I have been using the Message Tracker for a few months now manually to pull reports, and it has been amazing. Now it has been requested to have the message tracker automatically run. Is there any way to have it run via command line to generate a csv file each time I run to a directory? I could probably handle the rest with bat file/ scheduler.



    • March 27, 2013 at 6:59 pm

      Hi Josh,

      Unfortunately, it is not possible to run this application from the command line and automate the output. I will work on that for the next version. What exactly were you looking to output?


      • jconner
        March 27, 2013 at 7:48 pm


        We basically want to take the email counts for the current week and export it to csv, and do so every week. That way we want to publish the contents of the generated CSV to a SQL database. From the SQL database we want to have a report ready so our Sales Manager can run a report for whatever date range he wants to on the fly (since he often asks for more than weekly reports).

        In the past I would run the report weekly for the CSV, then filter it through Excel to include specific people. The end game is having the weekly numbers for each person in a database so we can query/build a report from the raw data.

        I appreciate your time.



  5. April 26, 2013 at 3:57 am

    Link points to version 2.0. Is there another link to 2.1?

    • April 30, 2013 at 12:58 pm

      Thanks for pointing that out. I’ve fixed the link.


  6. Pravar
    May 10, 2013 at 8:01 pm

    Good one. Hv been using last few weeks and the results are quite amazing. However, I dont find any graphical output in dashboard as well as there is no button available for export to HTML. Im sure that the version is latest. Any idea

    • May 11, 2013 at 10:26 pm

      Thanks for pointing that out. I’ve been having a lot of trouble with external file hosting. I’ve uploaded the file directly to WordPress and updated the link.

  7. Ronan
    June 24, 2013 at 1:20 pm

    Hi Jamie
    Nice tool well done. Is there anyway we can more than the top 5 users?


    • July 4, 2013 at 4:35 pm


      I will look into this for the next release.


      • Ronan
        July 4, 2013 at 4:42 pm

        thanks Jamie subtotals for Top senders and receivers would also be cool.

  8. Mutogi
    July 2, 2013 at 3:08 pm

    I have Exch 2010 SP1 on server 2008 R2 x64. there is an issue where i select previous 7 days and look at the graph to only see one day displayed or last 24 hrs it only shows one hr. i am sure that the tracking is enabled and working from message tracker in EMS. please help

  9. July 29, 2013 at 1:42 pm


    Check out the previous post by AV. You may have a time format mismatch between the shell and the OS.


    • Mutogi
      September 17, 2013 at 6:48 pm

      i really dont know how i can change this. i am not a pro. Can i get a push in a different direction?

  10. Toss
    January 20, 2014 at 4:26 am

    Can this software use with Exchage 2013?

    • January 22, 2014 at 7:37 pm

      I haven’t tested it against Exchange 2013

  11. David Watts
    February 3, 2014 at 10:13 am

    thanks for sharing you script. Would be nice if we could select Database

    • February 7, 2014 at 5:05 pm

      Hi David,

      Unfortunately, message tracking logs don’t work that way. You can’t filter based on database. Server is the most granular you can get.


  12. Ian
    March 18, 2014 at 11:08 pm

    Good Day and thank you for this wonderful tool.

    Is there a way to filter by the OU or DOMAIN?

    I would like to use this in a global company with a dozen+ domains but I should only report on the domains for my country. I tried setting RECIPIENTS to *@MyFirstDomain.com but that returned zero results. If I could select a DATABASE (and I see from the previous comment that you cannot) or by the OU that would work even better.

    I also tried exporting all of the results and playing in Excel but that had its own issues.

    Thanks again.

    • March 27, 2014 at 7:02 pm


      You cannot select by OU or DOMAIN as that info is not in the tracking logs. There might be a way to do what you want by filtering results based on an AD lookup but that would require some significant code to be added. I will put this on the list of potential features for the next version.


  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: