Een nieuwe feature in Exchange 2007 zijn Transport rules deze kun je op twee manieren aanmaken, via de Exchange Management Console of via de Exchange Management Shell.
De transport rules worden aangemaakt op de Hub transport server. De transport rules worden als volgt uitgevoerd:
Wanneer je de Exchange Management Shell gebruikt om een rule aan te maken zul je de betreffende stappen ook tegenkomen.
Naast de parameters kan een prioriteit aan elke Transport Rule gegeven worden. De prioriteit loopt vanaf 0, deze rule heeft ook de hoogste prioriteit. Wanneer een bericht aan diverse rules voldoet worden alle rules toegepast op het betreffende bericht, er wordt dan wel rekening gehouden met de prioriteiten die aan de rules zijn toegewezen. Heb je eenmaal een rule aangemaakt dan kun je deze gemakkelijk aanpassen.
Als eerst gaan we de Transport Rule aanmaken via de Exchange Management Console. Start hiervoor de Exchange Management Console op, vervolgens klik je op Organizational Configuration, Hub Transport en kiezen de tab Transport Rules
Nu klikken we ergens in het witte gedeelte van het scherm en kiezen we voor New Transport Rule, dit kan ook via de Hub Transport taken aan de rechterkant van het scherm. Je krijgt dan het volgende scherm te zien
Eigenlijk spreken alle velden voor zich, Name is de naam die je aan de Transport Rule wil geven, Description kun je gebruiken om een korte omschrijving te geven van de rule. Het vinkje Enable Rule staat standaard aan, indien je een rule niet direct wil gebruiken dien je dit dus uit te zetten, klik vervolgens op next
Als eerst stellen we de Conditions in, dit zijn de eigenschappen waaraan een mailtje moet voldoen. Dit kan bijvoorbeeld zijn: mail naar alle externe gebruikers
De volgende stap is de Rules instellen die worden toegepast op de mail. In dit geval willen we tekst toevoegen aan het mail met de disclaimer tekst.
Zoals te zien is in de flowchart kunnen er ook nog Exceptions ingesteld worden. In het geval van de disclaimer is dit niet van toepassing dus klikken we op next
Voordat de Transport Rule wordt aangemaakt krijg je eerst nog een overzicht met welke parameters de rule wordt aangemaakt. Klik op New om de regel aan te maken.
Als je bovenstaand scherm te zien krijgt is de regel succesvol aangemaakt en wordt deze toegepast op alle mails naar externe gebruikers.
Nu we een Transport Rule hebben aangemaakt via de Exchange Management Console is het tijd om er één aan te maken via Powershell.
We gaan een rule aanmaken die mails blokkeert met het woord Finance in het onderwerp of in de body van de e-mail behalve wanneer deze afkomstig is van gebruiker Klaas Vaak.
Normaliter kun je direct de parameters in het Powershell commando opgeven, met een Transport Rule gaat dit anders. Eerst stellen we de waarden voor de conditions, rules en exceptions in en gebruiken deze vervolgens in het Powershell commando.
Onderstaand het script wat de regel aanmaakt:
$Condition = Get-TransportRulePredicate SubjectOrBodyContains
$Condition.Words = @(“Finance”)
$Exception = Get-TransportRulePredicate From
$Exception.Addresses = @((Get-Mailbox “Klaas.Vaak”))
$Action = Get-TransportRuleAction RejectMessage
$Action.RejectReason = “E-mail messages sent from departments except the Finance department are prohibited.”
New-TransportRule -name “Block e-mail messages with the word Finance” -Condition @($Condition) -Exception @($Exception) -Action @($Action)
Eigenlijk is het net als de wizard in logische stappen te verdelen.
Met $Condition geven we aan dat we een conditie in gaan stellen waaraan de mail moet voldoen. Dit kun je doen met het commando Get-TransportRulePredicate gevolgd door een parameter, in dit geval SubjectOrBodyContains.
Vervolgens stellen we een waarde in voor de conditie, dit gebeurd met $Condition.Words. Hiermee geven we aan dat er gezocht moet worden naar het woord wat opgegeven is achter het = teken.
De volgende stap is de exception opgeven, dit kan door de parameter $Exception en $Exception.Addresses op te geven. Hiermee stellen we met het commando Get-TransportRulePredicate From moeten gaan zoeken in het from veld naar de waarde die is ingesteld bij $Exception.Addresses.
De laatste parameter die opgegeven moet worden is de actie die uitgevoerd moet worden indien een mail aan de voorwaarden voldoet. Dit gebeurd met de parameters $Action en $Action.RejectReason, in dit geval wordt een bericht teruggestuurd naar de afzender met daarin de tekst E-mail messages sent from departments except the Finance department are prohibited.
Nu we alle parameters hebben gedefineerd kunnen we de regel dan ook echt aan gaan maken, dit gebeurd met het commando New-TransportRule. Dit heeft als extra parameter name meegekregen waarmee we de naam van de regel definieren. Indien we niet willen dat een regel direct actief is dienen we de parameter Enabled $false op te geven. De nieuwe rule zal de laagste prioriteit worden gegeven, dit kun je aanpassen door de parameter Priority mee te geven met daarbij uiteraard een getal vanaf 0.
Ik heb zelf het script even opgeslagen als een Powershell-script zodat ik met 1 druk op de knop het script uitvoer, onderstaande is het resultaat:
Onderstaand nog wat handige pagina’s op Technet welke alle parameters bespreken die mogelijk zijn bij de commando’s.
New-TransportRule open
Get-TransportRulePredicate open





















The below code works in powershell to block gmail and btinternet from helpdesk, but i want them to go to helpdesk and block all other mail.
New-TransportRule -Name ‘SupportL’ -Comments ” -Priority ’0′ -Enabled $true -AnyOfToHeader ‘Support@xxxx.co.uk’ -RedirectMessageTo ‘helpdesk@xxxx.co.uk’ -ExceptIfFromAddressContainsWords ‘gmail’,'btinternet’
Thanks
Jeff