Nach langer Zeit heute mal wieder ein kleiner Beitrag hier 🙂
Da ich in letzter Zeit wieder öfter Exchange Server „side-by-side“ migriere, habe ich ein kleines Skript geschrieben, mit dem ihr sehr einfach Receive connectors (auch mit langen Listen von RemoteIPRanges) zwischen Server kopieren könnt.
Das Skript geht davon aus, dass es auf dem Zielserver läuft und dass es die Connectors im Ziel noch nicht gibt. Wenn alles passt, legt es sie – standardmäßig mit einem zusätzlichen Suffix im Namen – dort neu an.
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn $srcs = Get-ReceiveConnector | ogv -PassThru -Title "Select the source connector" foreach ($src in $srcs) { # Name for the new connector $newName = "$($src.Name)_Copy" $server = $env:COMPUTERNAME $domain = (Get-WmiObject Win32_ComputerSystem).Domain # Workaround for connectors of type "Custom": remove "Custom" from PermissionGroups to allow creation if ($src.PermissionGroups -match "Custom") { $newpgs = ($src.PermissionGroups -replace " ", "" -split ",") | ? { $_ -ne "Custom" } $newpgs = $newpgs -join ", " } else{ $newpgs = $src.PermissionGroups } # Base parameters for New-ReceiveConnector $params = @{ Name = $newName Server = $server Bindings = $src.Bindings AuthMechanism = $src.AuthMechanism RemoteIPRanges = $src.RemoteIPRanges PermissionGroups = $newpgs } # Dynamically add optional properties if they are set $optionalProps = @( 'Fqdn', 'ProtocolLoggingLevel', 'TlsCertificateName', 'TlsDomainCapabilities', 'AdvertiseClientSettings', 'EnableAuthGSSAPI', 'MaxInboundConnection', 'MaxInboundConnectionPerSource', 'MaxInboundConnectionPercentagePerSource', 'ConnectionInactivityTimeout', 'ConnectionTimeout', 'MessageRateLimit', 'MaxHeaderSize', 'MaxHopCount', 'MaxInboundConnectionFailurePerMinute', 'MaxLocalHopCount', 'MaxMessageSize', 'MaxProtocolErrors', 'MaxRecipientsPerMessage', 'OrarEnabled', 'SizeEnabled', 'TarpitInterval', 'Banner', 'Usage', 'TransportRole' ) foreach ($prop in $optionalProps) { $value = $src.$prop if ($null -ne $value) { $params[$prop] = $value if ($prop -eq "Fqdn") { $params[$prop] = $server + "." + $domain } } } # Create the new connector New-ReceiveConnector @params }
Ich würde euch anschließend noch eine kurze Sichtprüfung empfehlen und Original und Kopie kurz nebeneinanderhalten. Sicher ist sicher 🙂
In einem Fall hatte ich bisher einen fehlenden Haken im Ziel (und noch keine Zeit, den Fehler zu finden). Aber auch so spart es einen Haufen Zeit.