In Exchange 2010 zijn de transport rules flink uitgebreid, aangezien de configuratie van de Hub servers in de AD wordt opgeslagen worden de transport rules hier ook in opgeslagen. Dit heeft als voordeel dat de transport rules gebruikt kunnen worden door de diverse Hub servers in een zelfde Exchange organisatie.

Met een Edge server wordt dit natuurlijk wat lastiger aangezien deze geen lid is van de AD maar gebruik maakt van lokale ADLDS waarmee replicatie niet mogelijk is. Nou is het wanneer je één Edge server hebt nog wel te doen om de transport rules van een Hub opnieuw te configureren op een Edge. Maar stel je voor dat je meerdere Edge servers hebt en je wil dat de configuratie van de transport rules op deze servers identiek is.
In dat geval kun je gebruik gaan maken van de Export-TransportRuleCollection en Import-TransportRuleCollection commando’s. Voor beide commando’s geldt dat deze zowel op een Hub als Edge transport server uitgevoerd kunnen worden.

Met onderstaande commando zorgen we ervoor dat er een export wordt gemaakt van de transport rules in de directory export.

$file = Export-TransportRuleCollection
Set-Content -Path “C:\Export\TransportRules.xml” -Value $file.FileData -Encoding Byte

Vervolgens dient het xml bestand gekopieerd te worden naar de overige Edge servers en dient het import commando gedraaid te worden.

[Byte[]]$Data = Get-Content -Path “C:\Import\TransportRules.xml” -Encoding Byte -ReadCount 0
Import-TransportRuleCollection -FileData $Data

Dit zorgt ervoor dat de transport rules welke zich in het bestand transportrules.xml bevinden geïmporteerd worden op de server.

Wanneer er nu veel wijzigingen plaatsvinden in de transport rules dan kun je middels een script automatiseren dat de transport rules worden ge-exporteerd en geïmporteerd worden.

Onderstaand een voorbeeld script om transport rules te exporteren. Dit bestaat uit een batch bestand en een Powershell bestand, het batch bestand wordt gebruikt door de scheduled task welke bijvoorbeeld eenmaal per uur een export maakt van de transport rules. Wanneer de opdracht is uitgevoerd wordt een entry gemaakt in het application event log. Een opmerking hierbij is dat ik er vanuit ben gegaan dat de export directory een shared folder is waar de gebruikeraccount die wordt gebruikt om het script uit te voeren rechten op heeft:

exporttransportrules.cmd
PowerShell.exe -command “. ‘C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1′; Connect-ExchangeServer -auto; C:\Export\exporttransportrules.ps1″

exporttransportrules.ps1
$file = Export-TransportRuleCollection
Set-Content -Path “C:\Export\TransportRules.xml” -Value $file.FileData -Encoding Byte
$evt=new-object System.Diagnostics.EventLog(“Application”)
$evt.Source=”Export transport rules”
$infoevent=[System.Diagnostics.EventLogEntryType]::Information
$evt.WriteEntry(“Transport rules have been exported”,$infoevent,70)
 

OK nu we het export gedeelte hebben nu het import script:

importtransportrules.cmd
PowerShell.exe -command “. ‘C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1′; Connect-ExchangeServer -auto; C:\Import\importtransportrules.ps1″

importtransportrules.ps1
[Byte[]]$Data = Get-Content -Path “\\sourceserver\export\TransportRules.xml” -Encoding Byte -ReadCount 0
Import-TransportRuleCollection -FileData $Data
$evt=new-object System.Diagnostics.EventLog(“Application”)
$evt.Source=”Import transport rules”
$infoevent=[System.Diagnostics.EventLogEntryType]::Information
$evt.WriteEntry(“Transport rules have been imported”,$infoevent,70)

Het import script is nagenoeg hetzelfde, alleen export-transportrulecollection is vervangen door import-transportrulecollection en het pad waarvan geïmporteerd moet worden staat verwezen naar de “bron”.

Maar wat gebeurd er nu in een co-existence omgeving wanneer je zowel in Exchange 2007 als in Exchange 2010 transport rules hebt aangemaakt. Zoals eerder beschreven worden transport rules opgeslagen in de Active Directory voor Hub servers, echter voor Exchange 2010 is dit in op een andere plek als in Exchange 2007. Tijdens de installatie van Exchange 2010 worden de transport rules van Exchange 2007 geconverteerd zodat deze gebruikt kunnen worden door Exchange 2010. Wanneer de installatie dus voltooid is hebben zowel de Exchange 2007 als Exchange 2010 servers dezelfde transport rules. Echter na de installatie vindt deze conversie niet meer plaats wat inhoudt is dat wanneer een transport rule in Exchange 2007 gewijzigd wordt deze ook in Exchange 2010 gewijzigd zal moeten worden.
Om alleen de Exchange 2007 transport rules te exporteren op een Exchange 2010 Hub server dient onderstaand commando uitgevoerd te worden:
$ file = Export-TransportRuleCollection -ExportLegacyRules
Set-Content -Path “C:\Export\LegacyRules.xml” -Value $file.FileData -Encoding Byte
 
Mocht je naar aanleiding van bovenstaande meer informatie willen neem dan eens een kijkje op onderstaande sites:

Technet Export-TransportRuleCollection open
Technet Import-TransportRuleCollection open
Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Reddit
  • Webnews
  • Y!GG
  • Ask
  • Live-MSN
  • Technorati
  • YahooMyWeb

Rubrieken: Exchange 2010 ~ Trackback

Reageer

Pagerank search phrase