Exchange 2007: ReceiveConnector "kopieren"

0

Wer schon mal einen zusätzlichen Hub-Transport Server installiert hat, wird das Problem kennen. Auf den bestehenden Transport-Servern gibt es evtl. ein oder mehrere Receiveconnectoren, mit hunderten oder tausenden von IP Adressen im Parameter RemoteIPRange. Wer möchte diese schon gerne manuell kopieren?

Ich hab mich mal hingesetzt und ein mini script geschrieben, dass einen Connector von ServerA nach ServerB kopiert, inkl. "aller" Einstellungen.

Eine Macke hat das Script jedoch. Wenn die PermissionGroups über Set-ADPermission manuell verändert wurden, liefert die Powershell beim auslesen "Custom" als Parameter mit, den es jedoch im Exchange nicht gibt. Dies ist z.B. dann der Fall, wenn ein anonymous Connector eingerichtet wurde, da hierzur eine AD-Berechtigung für "NT AUTHORITYANONYMOUS LOGON" gesetzt sein muss:

Get-ReceiveConnector "anonymous" | Add-ADPermission -User "NT AUTHORITYANONYMOUS LOGON" -ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"

 Das eigentliche Script beginnt hier:

$original_server="SERVERA"
$original_connector="SERVERAanonymous"
$new_server="SERVERB"
$new_connector_name="anonymous"
$new_connector=$new_server +'' + $new_connector_name

New-ReceiveConnector -AuthMechanism (Get-ReceiveConnector $original_connector).AuthMechanism -Banner (Get-ReceiveConnector $original_connector).Banner -BinaryMimeEnabled (Get-ReceiveConnector $original_connector).BinaryMimeEnabled -Usage 'Custom' -Bindings (Get-ReceiveConnector $original_connector).Bindings -ChunkingEnabled (Get-ReceiveConnector $original_connector).ChunkingEnabled -DefaultDomain (Get-ReceiveConnector $original_connector).DefaultDomain -DeliveryStatusNotificationEnabled (Get-ReceiveConnector $original_connector).DeliveryStatusNotificationEnabled -EightBitMimeEnabled (Get-ReceiveConnector $original_connector).EightBitMimeEnabled -DomainSecureEnabled (Get-ReceiveConnector $original_connector).DomainSecureEnabled -EnhancedStatusCodesEnabled (Get-ReceiveConnector $original_connector).EnhancedStatusCodesEnabled -LongAddressesEnabled (Get-ReceiveConnector $original_connector).LongAddressesEnabled -OrarEnabled (Get-ReceiveConnector $original_connector).OrarEnabled -Fqdn (Get-ReceiveConnector $original_connector).Fqdn -Comment (Get-ReceiveConnector $original_connector).Comment -Enabled (Get-ReceiveConnector $original_connector).Enabled -ConnectionTimeout (Get-ReceiveConnector $original_connector).ConnectionTimeout -ConnectionInactivityTimeout (Get-ReceiveConnector $original_connector).ConnectionInactivityTimeout -MessageRateLimit (Get-ReceiveConnector $original_connector).MessageRateLimit -MaxInboundConnection (Get-ReceiveConnector $original_connector).MaxInboundConnection -MaxInboundConnectionPerSource (Get-ReceiveConnector $original_connector).MaxInboundConnectionPerSource -MaxInboundConnectionPercentagePerSource (Get-ReceiveConnector $original_connector).MaxInboundConnectionPercentagePerSource -MaxHeaderSize (Get-ReceiveConnector $original_connector).MaxHeaderSize -MaxHopCount (Get-ReceiveConnector $original_connector).MaxHopCount -MaxLocalHopCount (Get-ReceiveConnector $original_connector).MaxLocalHopCount -MaxLogonFailures (Get-ReceiveConnector $original_connector).MaxLogonFailures -MaxMessageSize (Get-ReceiveConnector $original_connector).MaxMessageSize -MaxProtocolErrors (Get-ReceiveConnector $original_connector).MaxProtocolErrors -MaxRecipientsPerMessage (Get-ReceiveConnector $original_connector).MaxRecipientsPerMessage -PermissionGroups (Get-ReceiveConnector $original_connector).PermissionGroups -PipeliningEnabled (Get-ReceiveConnector $original_connector).PipeliningEnabled -ProtocolLoggingLevel (Get-ReceiveConnector $original_connector).ProtocolLoggingLevel -RemoteIPRanges ( Get-ReceiveConnector $original_connector).RemoteIPRanges -RequireEHLODomain (Get-ReceiveConnector $original_connector).RequireEHLODomain -RequireTLS (Get-ReceiveConnector $original_connector).RequireTLS -EnableAuthGSSAPI (Get-ReceiveConnector $original_connector).EnableAuthGSSAPI -Server $new_server -SizeEnabled (Get-ReceiveConnector $original_connector).SizeEnabled -TarpitInterval (Get-ReceiveConnector $original_connector).TarpitInterval -Name $new_connector_name

Die nachfolgenden Parameter werden nicht mitkopiert, da dies bei mir immer wieder zu fehlern geführt hat:

-ExtendedProtectionPolicy (Get-ReceiveConnector $original_connector).ExtendedProtectionPolicy -ExtendedProtectionTlsTerminatedAtProxy (Get-ReceiveConnector $original_connector).ExtendedProtectionTlsTerminatedAtProxy
Teilen.

Über den Autor

Seit der Ausbildung zum Fachinformatiker Systemintegration (2002-2005) bei der DaimlerChrysler AG, beruflich im Bereich der E-Mail Kommunikation (Exchange, Linux) sowie des ActiveDirectory, mit entsprechenden Zertifizierungen (MCSE 2003, MCITP Ent.-Admin 2008, MCSE 2012, LPIC 1-3) tätig. Abgeschlossenes Studium zum Master of Science der IT-Management an der FOM sowie zertifizierter Datenschutzbeauftragter. Aktuell im Projektmanagement tätig.

Antworten