PowerShell function to track messages in Exchange 2007

AID: 8932
  • Status: Published

2100 points

  • By
  • TypeTips/Tricks
  • Posted on2011-12-22 at 10:17:59

Why would I want to create a function for tracking messages?


I am glad you asked. As with most monotonous/routine tasks, human error tends to creep in after doing the same task over and over again. By creating a function, you load the function once and then run it. No more rewriting the code each time you want to do the same task.

As for message tracking, the main reason I prefer to use a function is the fact that there are so many different possible arguments you can track against: Sender Name, Recipient name, Start Date, End Date, message ID, internal message ID. That's 8 different arguments making for 256  (2 to the 8th power) different combinations. There will be times where you just want to see all messages sent for a specific time frame to a specific recipient. Or perhaps you just want to see the message traffic from a specific sender, but only the ones that were successfully delivered. There are literally hundreds of possible combinations to search against. But who among us is not ADHD these days and can actually remember all of the combinations all of the time? Well, there are a few, but still, by creating the function, and using it, you simply won't have to.

So, how do I do it?



Another excellent question. You are on a roll. In my script, there are basically two parts.

1

Part 1



In the first part, the function gathers a list of all HUB servers, clears the counter variables and then asks you 8 very pointed questions to determine what your exact search terms are. The answers to these questions are collected and for each one you chose to make part of your search, a binary number is assigned to it using the counter variables (1, 10, 100, 1000, 10000, 100000, 1000000, or 10000000). After all of your answers are gathered, the binary numbers are added up and passed to part two of the function.

Function Track-Message
{
#clear your counter variables
$u = 0
$v = 0
$w = 0
$x = 0
$y = 0
$z = 0
$t = 0
$s = 0
$r = 0
#get a list of all Hubs into an array
$HUB = @(Get-TransportServer)
#ask the questions to track against
$Result1 = read-host "Do you want to search for a certain sender? (Y/N)"
Write-Host
While ($Result1 -eq "Y")
{
	$Sender = read-host "Please specify the sender's SMTP address. (I.E. user@domain.com)"
	Write-Host
	$v = 10000
	$Result1 = "N"
}

$Result2 = read-host "Do you want to search for a certain Recipient? (Y/N)"
Write-Host
While ($Result2 -eq "Y")
{
	$Recipient = read-host "Please specify the recipient's SMTP address. (I.E. user@domain.com)"
	Write-Host
	$w = 1000
	$Result2 = "N"
}

$Result3 = read-host "Do you wish to specify a start date? (Y/N)"
Write-Host
While ($Result3 -eq "Y")
{
	$StartDate = read-host "Please specify the search start date. (I.E. 03/06/2009 12:00:01 PM)"
	Write-Host
	$x = 100
	$Result3 = "N"
}

$Result4 = read-host "Do you wish to specify an end date? (Y/N)"
Write-Host
While ($Result4 -eq "Y")
{
	$EndDate = read-host "Please specify the search end date. (I.E. 03/06/2009 5:00:00 PM)"
	Write-Host
	$y = 10
	$Result4 = "N"
}

$Result5 = read-Host "Do you wish to specify an EventID to search against? (Y/N)"
Write-Host
While ($Result5 -eq "Y")
{
	$EventID = read-host "Please specify which EventID you wish to search against. (BadMail/Defer Delivery/DNS/Expand/Fail/Receive/Redirect/Resolve/Send/Submit/Transfer)"
	Write-Host
	$z = 1
	$Result5 = "N"
}

$Result6 = read-host "Do you wish to specify a message subject to search against? (Y/N)"
Write-Host
While ($Result6 -eq "Y")
{
	$MessageSubj = read-host "Please specify the message subject to search against."
	Write-Host
	$t = 100000
	$Result6 = "N"
}

$Result7 = read-host "Do you wish to specify a message ID to search against? (Y/N)"
Write-Host
While ($Result7 -eq "Y")
{
	$MessageID = read-host "Please specify the message id to search against."
	Write-Host
	$s = 1000000
	$Result7 = "N"
}

$Result8 = read-host "Do you wish to specify an internal message ID to search against? (Y/N)"
Write-Host
While ($Result8 -eq "Y")
{
	$IntMessageID = read-host "Please specify the internal message id to search against."
	Write-Host
	$r = 10000000
	$Result8 = "N"
}

$u = $v + $w + $x + $y + $z + $t + $s + $r
                                    
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:

Select allOpen in new window




2

Part 2


This is where the cmdlet for get-messagetrackinglog is put together. If you chose to use every option, the binary code would be 11111111, and it would assemble the cmdlet with all options passing your answers in for each argument. Incidentally, the cmdlet would look like this:
get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl

If you only wanted to see the messages with an eventID of Receive (1) to a specific recipient (1000) with a specific subject (100000) regardless of date or any other argument, it would add those up to 101001, pass that into part two of the function and it would return the run the following cmdlet:
get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -MessageSubject $MessageSubj | fl

Now, all of the arguments are passed to the cmdlet from your answers to the questions except the HUB server name. In almost every scenario, it is best to look on all HUB servers in case the message has been bouncing around out there. To make this easy, we simply use the list of all Hub servers that we created in part 1, then do a foreach loop to check each one against the answers you provided.

#pass the arguments to the cmdlet and run it.
Switch ($u)
	{
		11111111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }

		11111110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11111101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11111011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11111010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID  | fl
			}
		       }
		11111001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11111000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11110111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11110110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11110101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11110100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11110011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11110010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11110001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11110000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11101111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11101110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11101101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11101100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11101011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11101010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11101001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11101000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11100111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11100110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11100101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11100100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11100011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11100010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11100001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -MessageSubject $MessageSubj -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11011111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }

		11011110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11011101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11011011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11011010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -MessageID $MessageID -InternalMessageID $IntMessageID  | fl
			}
		       }
		11011001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11011000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11010111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11010110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11010101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11010100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11010011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11010010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11010001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11010000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11001111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11001110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11001101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11001100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11001011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11001010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11001001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11000000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11000111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11000110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11000101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11000100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11000011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11000010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -End $EndDate -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		11000001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -MessageID $MessageID -InternalMessageID $IntMessageID | fl
			}
		       }
		10111111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }

		10111110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10111101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10111011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10111010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID  | fl
			}
		       }
		10111001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10111000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10110111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10110110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10110101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10110100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10110011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10110010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10110001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10110000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10101111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10101110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10101101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10101100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10101011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10101010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10101001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10101000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10100111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10100110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10100101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10100100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10100011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10100010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -End $EndDate -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10100001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -MessageSubject $MessageSubj -InternalMessageID $IntMessageID | fl
			}
		       }
		10011111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }

		10011110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10011101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10011011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10011010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -InternalMessageID $IntMessageID  | fl
			}
		       }
		10011001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -InternalMessageID $IntMessageID | fl
			}
		       }
		10011000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -InternalMessageID $IntMessageID | fl
			}
		       }
		10010111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10010110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10010101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10010100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10010011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10010010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10010001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -InternalMessageID $IntMessageID | fl
			}
		       }
		10010000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -InternalMessageID $IntMessageID | fl
			}
		       }
		10001111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10001110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10001101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10001100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10001011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10001010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10001001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -InternalMessageID $IntMessageID | fl
			}
		       }
		10001000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -InternalMessageID $IntMessageID | fl
			}
		       }
		10000111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10000110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10000101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10000100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10000011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10000010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -End $EndDate -InternalMessageID $IntMessageID | fl
			}
		       }
		10000001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -InternalMessageID $IntMessageID | fl
			}
		       }
		10000000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -InternalMessageID $IntMessageID | fl
			}
		       }
		1111111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }

		1111110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1111101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1111011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1111010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID  | fl
			}
		       }
		1111001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1111000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1110111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1110110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1110101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1110100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1110011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1110010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1110001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1110000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1101111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1101110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1101101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1101100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1101011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1101010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1101001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1101000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1100111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1100110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1100101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1100100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1100011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1100010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -End $EndDate -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1100001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -MessageSubject $MessageSubj -MessageID $MessageID | fl
			}
		       }
		1011111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageID $MessageID | fl
			}
		       }

		1011110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1011101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageID $MessageID | fl
			}
		       }
		1011011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1011010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -MessageID $MessageID  | fl
			}
		       }
		1011001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -MessageID $MessageID | fl
			}
		       }
		1011000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -MessageID $MessageID | fl
			}
		       }
		1010111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1010110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1010101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -MessageID $MessageID | fl
			}
		       }
		1010100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -MessageID $MessageID | fl
			}
		       }
		1010011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1010010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1010001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -MessageID $MessageID | fl
			}
		       }
		1010000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -MessageID $MessageID | fl
			}
		       }
		1001111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1001110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1001101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageID $MessageID | fl
			}
		       }
		1001100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -MessageID $MessageID | fl
			}
		       }
		1001011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1001010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1001001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -MessageID $MessageID | fl
			}
		       }
		1000000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -MessageID $MessageID| fl
			}
		       }
		1000111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1000110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1000101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -MessageID $MessageID | fl
			}
		       }
		1000100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -MessageID $MessageID | fl
			}
		       }
		1000011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1000010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -End $EndDate -MessageID $MessageID | fl
			}
		       }
		1000001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -MessageID $MessageID | fl
			}
		       }
		1000000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -MessageID $MessageID | fl
			}
		       }
		111111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }

		111110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		111101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj | fl
			}
		       }
		111011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		111010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -MessageSubject $MessageSubj  | fl
			}
		       }
		111001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -MessageSubject $MessageSubj | fl
			}
		       }
		111000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -MessageSubject $MessageSubj | fl
			}
		       }
		110111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		110110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		110101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj | fl
			}
		       }
		110100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -MessageSubject $MessageSubj | fl
			}
		       }
		110011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		110010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		110001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -MessageSubject $MessageSubj | fl
			}
		       }
		110000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -MessageSubject $MessageSubj | fl
			}
		       }
		101111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		101110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		101101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj | fl
			}
		       }
		101100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -MessageSubject $MessageSubj | fl
			}
		       }
		101011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		101010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		101001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -MessageSubject $MessageSubj | fl
			}
		       }
		101000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -MessageSubject $MessageSubj | fl
			}
		       }
		100111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		100110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		100101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -MessageSubject $MessageSubj | fl
			}
		       }
		100100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -MessageSubject $MessageSubj | fl
			}
		       }
		100011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		100010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -End $EndDate -MessageSubject $MessageSubj | fl
			}
		       }
		100001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -MessageSubject $MessageSubj | fl
			}
		       }
		100000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -MessageSubject $MessageSubj | fl
			}
		       }
		11111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate | fl
			}
		       }

		11110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate | fl
			}
		       }
		11101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate | fl
			}
		       }
		11011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate | fl
			}
		       }
		11010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -Start $StartDate  | fl
			}
		       }
		11001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i -EventID $EventID | fl
			}
		       }
		11000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Recipient $Recipient -Server $i | fl
			}
		       }
		10111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate -End $EndDate | fl
			}
		       }
		10110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate -End $EndDate | fl
			}
		       }
		10101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -Start $StartDate | fl
			}
		       }
		10100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -Start $StartDate | fl
			}
		       }
		10011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID -End $EndDate | fl
			}
		       }
		10010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -End $EndDate | fl
			}
		       }
		10001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i -EventID $EventID | fl
			}
		       }
		10000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Sender $Sender -Server $i | fl
			}
		       }
		1111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate -End $EndDate | fl
			}
		       }
		1110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate -End $EndDate | fl
			}
		       }
		1101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -Start $StartDate | fl
			}
		       }
		1100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -Start $StartDate | fl
			}
		       }
		1011 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID -End $EndDate | fl
			}
		       }
		1010 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -End $EndDate | fl
			}
		       }
		1001 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i -EventID $EventID | fl
			}
		       }
		1000 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Recipient $Recipient -Server $i | fl
			}
		       }
		111 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate -End $EndDate | fl
			}
		       }
		110 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate -End $EndDate | fl
			}
		       }
		101 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -Start $StartDate | fl
			}
		       }
		100 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -Start $StartDate | fl
			}
		       }
		11 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID -End $EndDate | fl
			}
		       }
		10 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -End $EndDate | fl
			}
		       }
		1 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i -EventID $EventID | fl
			}
		       }
		0 {foreach ($i in $HUB) 
			{
				get-messagetrackinglog -Server $i | fl
			}
		       }
	}
}
                                    
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694:
695:
696:
697:
698:
699:
700:
701:
702:
703:
704:
705:
706:
707:
708:
709:
710:
711:
712:
713:
714:
715:
716:
717:
718:
719:
720:
721:
722:
723:
724:
725:
726:
727:
728:
729:
730:
731:
732:
733:
734:
735:
736:
737:
738:
739:
740:
741:
742:
743:
744:
745:
746:
747:
748:
749:
750:
751:
752:
753:
754:
755:
756:
757:
758:
759:
760:
761:
762:
763:
764:
765:
766:
767:
768:
769:
770:
771:
772:
773:
774:
775:
776:
777:
778:
779:
780:
781:
782:
783:
784:
785:
786:
787:
788:
789:
790:
791:
792:
793:
794:
795:
796:
797:
798:
799:
800:
801:
802:
803:
804:
805:
806:
807:
808:
809:
810:
811:
812:
813:
814:
815:
816:
817:
818:
819:
820:
821:
822:
823:
824:
825:
826:
827:
828:
829:
830:
831:
832:
833:
834:
835:
836:
837:
838:
839:
840:
841:
842:
843:
844:
845:
846:
847:
848:
849:
850:
851:
852:
853:
854:
855:
856:
857:
858:
859:
860:
861:
862:
863:
864:
865:
866:
867:
868:
869:
870:
871:
872:
873:
874:
875:
876:
877:
878:
879:
880:
881:
882:
883:
884:
885:
886:
887:
888:
889:
890:
891:
892:
893:
894:
895:
896:
897:
898:
899:
900:
901:
902:
903:
904:
905:
906:
907:
908:
909:
910:
911:
912:
913:
914:
915:
916:
917:
918:
919:
920:
921:
922:
923:
924:
925:
926:
927:
928:
929:
930:
931:
932:
933:
934:
935:
936:
937:
938:
939:
940:
941:
942:
943:
944:
945:
946:
947:
948:
949:
950:
951:
952:
953:
954:
955:
956:
957:
958:
959:
960:
961:
962:
963:
964:
965:
966:
967:
968:
969:
970:
971:
972:
973:
974:
975:
976:
977:
978:
979:
980:
981:
982:
983:
984:
985:
986:
987:
988:
989:
990:
991:
992:
993:
994:
995:
996:
997:
998:
999:
1000:
1001:
1002:
1003:
1004:
1005:
1006:
1007:
1008:
1009:
1010:
1011:
1012:
1013:
1014:
1015:
1016:
1017:
1018:
1019:
1020:
1021:
1022:
1023:
1024:
1025:
1026:
1027:
1028:
1029:
1030:
1031:
1032:
1033:
1034:
1035:
1036:
1037:
1038:
1039:
1040:
1041:
1042:
1043:
1044:
1045:
1046:
1047:
1048:
1049:
1050:
1051:
1052:
1053:
1054:
1055:
1056:
1057:
1058:
1059:
1060:
1061:
1062:
1063:
1064:
1065:
1066:
1067:
1068:
1069:
1070:
1071:
1072:
1073:
1074:
1075:
1076:
1077:
1078:
1079:
1080:
1081:
1082:
1083:
1084:
1085:
1086:
1087:
1088:
1089:
1090:
1091:
1092:
1093:
1094:
1095:
1096:
1097:
1098:
1099:
1100:
1101:
1102:
1103:
1104:
1105:
1106:
1107:
1108:
1109:
1110:
1111:
1112:
1113:
1114:
1115:
1116:
1117:
1118:
1119:
1120:
1121:
1122:
1123:
1124:
1125:
1126:
1127:
1128:
1129:
1130:
1131:
1132:
1133:
1134:
1135:
1136:
1137:
1138:
1139:
1140:
1141:
1142:
1143:
1144:
1145:
1146:
1147:
1148:
1149:
1150:
1151:
1152:
1153:
1154:
1155:
1156:
1157:
1158:
1159:
1160:
1161:
1162:
1163:
1164:
1165:
1166:
1167:
1168:
1169:
1170:
1171:
1172:
1173:
1174:
1175:
1176:
1177:
1178:
1179:
1180:
1181:
1182:
1183:
1184:
1185:
1186:
1187:
1188:
1189:
1190:
1191:
1192:
1193:
1194:
1195:
1196:
1197:
1198:
1199:
1200:
1201:
1202:
1203:
1204:
1205:
1206:
1207:
1208:
1209:
1210:
1211:
1212:
1213:
1214:
1215:
1216:
1217:
1218:
1219:
1220:
1221:
1222:
1223:
1224:
1225:
1226:
1227:
1228:
1229:
1230:
1231:
1232:
1233:

Select allOpen in new window




How do you actually run the function?



Well, this is the easy part. Just copy and paste both parts into the Exchange Management Shell, give it a minute to load all lines, and then your function is ready to use. Hit enter a few times to make sure it returns your shell prompt and then type Track-Message and hit enter. It will immediately start asking you the questions and then run the track for you.

trackmessage-ss.jpg
  • 101 KB
  • Screenshot of Track-Message Function in use.
Screenshot of Track-Message Function in use.


That's It?


There is one more piece of advice I could offer.If you close the exchange management shell, you will have to copy the function again the next time you open it to track a message. The way around this is to add it to your Microsoft.PowerShell_profile.ps1 file. Where is that? The easiest way to find it is to open exchange management shell and then type $profile. This will return the path to the profile script that runs everything you open Exchange Management Shell under the same user account. The profile is usually stored in a user profile area under documents and settings. So, if I was logged in as GusGallows, mine would be in the following folder:

C:\Documents and Settings\GusGallows\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Simply edit that file and copy the whole function (both parts) to the bottom of the file. The next time, and every time after, you open Exchange Management Shell, the function will be preloaded so all you have to do is type Track-Message to run it.

That's it in a nutshell. I hope you found this article useful.
    Asked On
    2011-12-22 at 10:17:59ID8932
    Tags

    PowerShell

    ,

    Exchange 2007

    ,

    Message

    ,

    track

    ,

    tracking

    ,

    function

    ,

    script

    Topic

    Powershell

    Views
    1557

    Comments

    Add your Comment

    Please Sign up or Log in to comment on this article.

    Join Experts Exchange Today

    Gain Access to all our Tech Resources

    Get personalized answers

    Ask unlimited questions

    Access Proven Solutions

    Search 3.2 million solutions

    Read In-Depth How-To Guides

    1000+ articles, demos, & tips

    Watch Step by Step Tutorials

    Learn direct from top tech pros

    And Much More!

    Your complete tech resource

    See Plans and Pricing

    30-day free trial. Register in 60 seconds.

    Loading Advertisement...

    Top Powershell Experts

    1. Qlemo

      120,630

      Master

      2,400 points yesterday

      Profile
      Rank: Genius
    2. KenMcF

      95,290

      Master

      0 points yesterday

      Profile
      Rank: Genius
    3. DaleHarris

      69,132

      Master

      20 points yesterday

      Profile
      Rank: Wizard
    4. JoeKlimis

      59,200

      Master

      0 points yesterday

      Profile
      Rank: Master
    5. bchallis

      42,450

      0 points yesterday

      Profile
      Rank: Master
    6. prashanthd

      34,200

      0 points yesterday

      Profile
      Rank: Guru
    7. sedgwick

      34,060

      0 points yesterday

      Profile
      Rank: Genius
    8. Chris-Dent

      33,600

      0 points yesterday

      Profile
      Rank: Genius
    9. slidingfox

      21,500

      2,100 points yesterday

      Profile
    10. RobSampson

      21,400

      0 points yesterday

      Profile
      Rank: Genius
    11. chrismerritt

      20,830

      0 points yesterday

      Profile
      Rank: Guru
    12. billprew

      17,218

      0 points yesterday

      Profile
      Rank: Genius
    13. wls3

      16,800

      0 points yesterday

      Profile
      Rank: Guru
    14. Neilsr

      16,340

      0 points yesterday

      Profile
      Rank: Genius
    15. Akhater

      15,100

      0 points yesterday

      Profile
      Rank: Genius
    16. slightwv

      14,000

      0 points yesterday

      Profile
      Rank: Genius
    17. demazter

      11,800

      0 points yesterday

      Profile
      Rank: Genius
    18. dbaduck

      11,300

      0 points yesterday

      Profile
      Rank: Sage
    19. hanccocka

      10,228

      0 points yesterday

      Profile
      Rank: Genius
    20. X_layer

      9,500

      2,000 points yesterday

      Profile
      Rank: Guru
    21. iSiek

      9,500

      2,000 points yesterday

      Profile
      Rank: Genius
    22. SieQ

      9,365

      0 points yesterday

      Profile
    23. GusGallows

      8,740

      0 points yesterday

      Profile
      Rank: Master
    24. v-2nas

      8,500

      0 points yesterday

      Profile
      Rank: Guru
    25. sekar_raj32

      8,200

      0 points yesterday

      Profile
      Rank: Master

    Hall Of Fame