Exchange 2007 Tracking Script

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
Write-Host
Write-Host
Write-Host "Message Tracking Tool"  -foregroundcolor green
Write-Host
Write-Host

$strMailboxSrv        = ""
### please change like you want
$strFilename          = "D:\MessageTracking_Results.txt"

$arrHubs = $NULL
$objHub  = $NULL
$strHub  = $NULL

### Search for sender, recipient or both
$strDecisionQuery = read-host "Search for (s)ender (a)nd/or (r)ecipient ?"

if ($strDecisionQuery -match  "[as]")
    {
    Write-Host
    $strSenderAddr        = read-host "Sender-Mail Addr"
    Write-Host
    }    

if ($strDecisionQuery -match "[ar]")
    {
    Write-Host
    $strRecipientAddr     = read-host "Receiver-Mail Addr"
    Write-Host
    }

### Input of Date/Time   
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

### Input of Subject
$strMessageSubject    = read-host "Text in subject"

## Wait 2 seconds
ping localhost -n 2 > $NULL

CLS
Write-Host
Write-Host

### Header LOG
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

### MessageTracking function
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

-Sender:"$strSenderAddr" -Recipients:"$strRecipientAddr" -Server $strHub -Start "$strStartDate $strStartTime" -End "$strEndDate $strEndTime" -MessageSubject "$strMessageSubject" -resultsize unlimited |
        fl -groupby Timestamp >> $strFilename
        }   
    }

Write-Host "MessageTracking starts ...`n"  -foregroundcolor green
### Remove-Item $strFilename -erroraction silentlycontinue

$arrHubs = get-transportserver

foreach ($objHub in $arrHubs)
{
    $strHub = $objHub.Name
    Write-Host "Tracking " $strHub " ..."  -foregroundcolor green
    GetLogRec
}

Write-Host "Tracking " $strMailboxSrv " ..."  -foregroundcolor green
GetLogRec
Write-Host "`n Results in" $strFilename " " -foregroundcolor green

### Open Notepad with results, wait 3 seconds and delete the outputfile
notepad $strFilename
ping localhost -n 3 > $NULL
del $strFilename

Ähnliche Beiträge:

  1. Message Size Limits Exchange 2007
  2. Exchange Server 2007 Service Pack 2 verfügbar
  3. Exchange 2010 SP1 Beta Test
This entry was posted in Exchange and tagged , , , , . Bookmark the permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

*


Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>