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

    Leave A Reply