Message Size Limits Exchange 2007
Wer Exchange 2007 im Einsatz hat, weiß es ganz bestimmt: Die meisten Einstellungen sind einfacher über die Powershell zu implementieren als über die GUI – manche lassen sich sogar nur über die Powershell einstellen. Gerade um Limits abzufragen / zu setzen kann man wunderbar mit der Exchange Shell arbeiten.
Die wichtigsten Befehle sind:
get-transportconfig | select identity,maxreceivesize,maxsendsize
get-receiveconnector | select identity,maxmessagesize
get-sendconnector | select identity,maxmessagesize
get-mailbox | select name,maxreceivesize,maxsendsize
get-mailcontact | select name,maxreceivesize,maxsendsize
get-mailPublicFolder | select name,maxreceivesize,maxsendsize
get-distributiongroup | select name,maxreceivesize,maxsendsize
In der Shell wird das wunderbar angezeigt:
Damit sind die Abfragen durch
Zu den SET-Befehlen:
Um das Sende-Limit für einen Connector zu setzen:
set-sendconnector –identity "Name des Send Connectors" -maxmessagesize 100MB
Natürlich kann man diese Einstellung gleich für alle übernehmen:
get-sendconnector | set-sendconnector -maxmessagesize 100MB
Dasselbe gilt für die Receive-Konnektoren:
set-receiveconnector –identity "Name des Receive Connectors" -maxmessagesize 100MB
get-receiveconnector | set-receiveconnector -maxmessagesize 100MB
Die Transport Konfiguration darf auch nicht fehlen:
get-transportconfig | set-transportconfig -maxreceivesize 50MB -maxsendsize 100MB
Aber nicht nur an den Konnektoren können Limits gesetzt werden, auch die einzelne Mailbox kann man durch Limits begrenzen, aber auch Kontakte,Öffentliche Ordner und Verteilerlisten haben Limits:
get-mailbox | select name,maxreceivesize,maxsendsize
get-mailcontact | select name,maxreceivesize,maxsendsize
get-mailPublicFolder | select name,maxreceivesize,maxsendsize
get-distributiongroup | select name,maxreceivesize,maxsendsize
User-Mailboxen sind standardmäßig unbegrenzt, aber auch die kann man ändern:
get-mailbox -Identity PatrickHoesl | set-mailbox -maxreceivesize 20MB -maxsendsize 10MB
oder natürlich wieder für alle Mailboxen:
get-mailbox | set-mailbox -maxreceivesize 20MB -maxsendsize 10MB
Um das ganze wieder unlimited zu setzten einfach die MB Angabe durch ‘unlimited’ ersetzen.
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 $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

