In Exchange 2007 ein Mailtracking zu machen kann etwas daueren, da die MMCs nicht die schnellsten sind. Aus diesem Grund habe ich mir ein Powershell-Script gebastelt – welches erst meine Eingaben annimmt, dann das Tracking durchführt und mir das Ergebnis in einer Notepad Datei auswirft und direkt öffnet.
Simpel – aber zweckerfüllend.
CLS ### Title $strMailboxSrv = "" $arrHubs = $NULL ### Search for sender, recipient or both if ($strDecisionQuery -match "[as]") if ($strDecisionQuery -match "[ar]") ### Input of Date/Time ### Input of Subject ## Wait 2 seconds CLS ### Header LOG ### MessageTracking function -Sender:"$strSenderAddr" -Recipients:"$strRecipientAddr" -Server $strHub -Start "$strStartDate $strStartTime" -End "$strEndDate $strEndTime" -MessageSubject "$strMessageSubject" -resultsize unlimited | Write-Host "MessageTracking starts ...`n" -foregroundcolor green $arrHubs = get-transportserver foreach ($objHub in $arrHubs) Write-Host "Tracking " $strMailboxSrv " ..." -foregroundcolor green ### Open Notepad with results, wait 3 seconds and delete the outputfile
Write-Host
Write-Host
Write-Host "Message Tracking Tool" -foregroundcolor green
Write-Host
Write-Host
### please change like you want
$strFilename = "D:\MessageTracking_Results.txt"
$objHub = $NULL
$strHub = $NULL
$strDecisionQuery = read-host "Search for (s)ender (a)nd/or (r)ecipient ?"
{
Write-Host
$strSenderAddr = read-host "Sender-Mail Addr"
Write-Host
}
{
Write-Host
$strRecipientAddr = read-host "Receiver-Mail Addr"
Write-Host
}
Write-Host
$strStartDate = read-host "Start-Date(e.g. 04.12.2009)"
Write-Host
$strStartTime = read-host "Start-Time (e.g. 02:00:00)"
Write-Host
$strEndDate = read-host "End-Date (e.g. 05.12.2009)"
Write-Host
$strEndTime = read-host "End-Time (e.g. 23:00:00)"
Write-Host
$strMessageSubject = read-host "Text in subject"
ping localhost -n 2 > $NULL
Write-Host
Write-Host
echo "###################################" >> $strFilename
echo "########## Tracking LOG ###########" >> $strFilename
echo "###################################" >> $strFilename
echo " " >> $strFilename
echo "Sender: " $strSenderAddr >> $strFilename
echo " " >> $strFilename
echo "Recipient: " $strRecipientAddr >> $strFilename
echo " " >> $strFilename
echo "Timeframe from: " $strStartDate $strStartTime " to " $strEndDate $strEndTime >> $strFilename
echo " " >> $strFilename
echo "Subject: " $strMessageSubject >> $strFilename
echo " " >> $strFilename
echo "###################################" >> $strFilename
if ($strDecisionQuery -ceq "r")
{
function GetLogRec()
{
get-messagetrackinglog -Recipients:"$strRecipientAddr" -Server $strHub -Start "$strStartDate $strStartTime" -End "$strEndDate $strEndTime" -MessageSubject "$strMessageSubject" -resultsize unlimited |
fl -groupby Timestamp >> $strFilename
}
}
elseif ($strDecisionQuery -ceq "s")
{
function GetLogRec()
{
get-messagetrackinglog -Sender:"$strSenderAddr" -Server $strHub -Start "$strStartDate $strStartTime" -End "$strEndDate $strEndTime" -MessageSubject "$strMessageSubject" -resultsize unlimited |
fl -groupby Timestamp >> $strFilename
}
}
elseif ($strDecisionQuery -ceq "a")
{
function GetLogRec()
{
get-messagetrackinglog
fl -groupby Timestamp >> $strFilename
}
}
### Remove-Item $strFilename -erroraction silentlycontinue
{
$strHub = $objHub.Name
Write-Host "Tracking " $strHub " ..." -foregroundcolor green
GetLogRec
}
GetLogRec
Write-Host "`n Results in" $strFilename " " -foregroundcolor green
notepad $strFilename
ping localhost -n 3 > $NULL
del $strFilename
Ähnliche Beiträge:
