Test-OutboundConnector.ps1
<#
.SYNOPSIS This function tests all outbound connectors for centralized mail transport. .DESCRIPTION This function tests all outbound connectors for centralized mail transport. .EXAMPLE Test-OutboundConnector -overrideCentralizedMailTransportEnabled:$TRUE #> Function Test-OutboundConnector { [cmdletbinding()] Param ( [Parameter(Mandatory = $true)] $overrideCentralizedMailTransportEnabled ) #Output all parameters bound or unbound and their associated values. write-functionParameters -keyArray $MyInvocation.MyCommand.Parameters.Keys -parameterArray $PSBoundParameters -variableArray (Get-Variable -Scope Local -ErrorAction Ignore) #Define variables that will be utilzed in the function. [array]$exchangeOnlineOutboundConnectors=@() #Initiate the test. Out-LogFile -string "********************************************************************************" Out-LogFile -string "BEGIN Test-OutboundConnectors" Out-LogFile -string "********************************************************************************" $exchangeOnlineOutboundConnectors = get-o365OutboundConnector if ($overrideCentralizedMailTransportEnabled -eq $FALSE) { foreach ($outboundConnector in $exchangeOnlineOutboundConnectors) { if ($outboundConnector.RouteAllMessagesViaOnPremises -eq $TRUE) { out-logfile -string "***WARNING***" out-logfile -string "Centralized transport is enabled." out-logfile -string "When centralized mail transport is enabled - if the migrated group contains any on premises mailboxes the public MX is utilized for routing." out-logfile -string "If not properly tested this could lead to NDRs or messages appearing as external to on premises resources." out-logfile -string "Migrating this DL can only be accomplished by acknowledging centralized mail transport is enabled using the -overrideCentralizedMailTransportEnabled:$TRUE" out-logfile -string $outboundConnector.name out-logfile -string $outboundConnector.RouteAllMessagesViaOnPremises out-logfile -string "***WARNING***" -isError:$true } else { out-logfile -string "Connector not enabled for centralized mail transport." out-logfile -string $outboundConnector.Name out-logfile -string $outboundConnector.RouteAllMessagesViaOnPremises } } } else { foreach ($outboundConnector in $exchangeOnlineOutboundConnectors) { if ($outboundConnector.RouteAllMessagesViaOnPremises -eq $TRUE) { out-logfile -string "***WARNING***" out-logfile -string "Centralized transport is enabled." out-logfile -string "When centralized mail transport is enabled - if the migrated group contains any on premises mailboxes the public MX is utilized for routing if the message originated from on premises." out-logfile -string "If not properly tested this could lead to NDRs or messages appearing as external to on premises resources." out-logfile -string "The administrator has acknowledged the warning by overriding centralized mail transport enabled." out-logfile -string $outboundConnector.name out-logfile -string $outboundConnector.RouteAllMessagesViaOnPremises out-logfile -string "***WARNING***" } else { out-logfile -string "Connector not enabled for centralized mail transport." out-logfile -string $outboundConnector.Name out-logfile -string $outboundConnector.RouteAllMessagesViaOnPremises } } } Out-LogFile -string "END Test-OutboundConnector" Out-LogFile -string "********************************************************************************" } |