DSCResources/DSC_ExchFrontendTransportService/DSC_ExchFrontendTransportService.psm1
<#
.SYNOPSIS Retrieves the current DSC configuration for this resource. .PARAMETER Identity The Identity parameter specifies the server that you want to modify. .PARAMETER Credential The Credentials to use when creating a remote PowerShell session to Exchange. .PARAMETER AllowServiceRestart Whether it is OK to restart the MSExchangeFrontEndTransport service after making changes. Defaults to $false. .PARAMETER AgentLogEnabled The AgentLogEnabled parameter specifies whether the agent log is enabled. The default value is $true. .PARAMETER AgentLogMaxAge The AgentLogMaxAge parameter specifies the maximum age for the agent log file. Log files older than the specified value are deleted. The default value is 7.00:00:00 or 7 days. .PARAMETER AgentLogMaxDirectorySize The AgentLogMaxDirectorySize parameter specifies the maximum size of all agent logs in the agent log directory. When a directory reaches its maximum file size, the server deletes the oldest log files first. The default value is 250 MB. .PARAMETER AgentLogMaxFileSize The AgentLogMaxFileSize parameter specifies the maximum size of each agent log file. When a log file reaches its maximum file size, a new log file is created. The default value is 10 MB. .PARAMETER AgentLogPath The AgentLogPath parameter specifies the default agent log directory location. .PARAMETER AntispamAgentsEnabled The AntispamAgentsEnabled parameter specifies whether anti-spam agents are installed on the server specified with the Identity parameter. The default value is $false for the Front End Transport service. .PARAMETER ConnectivityLogEnabled The ConnectivityLogEnabled parameter specifies whether the connectivity log is enabled. The default value is $true. .PARAMETER ConnectivityLogMaxAge The ConnectivityLogMaxAge parameter specifies the maximum age for the connectivity log file. Log files older than the specified value are deleted. The default value is 30 days. .PARAMETER ConnectivityLogMaxDirectorySize The ConnectivityLogMaxDirectorySize parameter specifies the maximum size of all connectivity logs in the connectivity log directory. When a directory reaches its maximum file size, the server deletes the oldest log files first. The default value is 1000 MB. .PARAMETER ConnectivityLogMaxFileSize The ConnectivityLogMaxFileSize parameter specifies the maximum size of each connectivity log file. When a log file reaches its maximum file size, a new log file is created. The default value is 10 MB. .PARAMETER ConnectivityLogPath The ConnectivityLogPath parameter specifies the default connectivity log directory location. .PARAMETER DnsLogEnabled The DnsLogEnabled parameter specifies whether the DNS log is enabled. The default value is $false. .PARAMETER DnsLogMaxAge The DnsLogMaxAge parameter specifies the maximum age for the DNS log file. Log files older than the specified value are deleted. The default value is 7.00:00:00 or 7 days. .PARAMETER DnsLogMaxDirectorySize The DnsLogMaxDirectorySize parameter specifies the maximum size of all DNS logs in the DNS log directory. When a directory reaches its maximum file size, the server deletes the oldest log files first. The default value is 100 MB. .PARAMETER DnsLogMaxFileSize The DnsLogMaxFileSize parameter specifies the maximum size of each DNS log file. When a log file reaches its maximum file size, a new log file is created. The default value is 10 MB. .PARAMETER DnsLogPath The DnsLogPath parameter specifies the DNS log directory location. The default value is blank ($null), which indicates no location is configured. If you enable DNS logging, you need to specify a local file path for the DNS log files by using this parameter. .PARAMETER ExternalDNSAdapterEnabled The ExternalDNSAdapterEnabled parameter specifies one or more Domain Name System (DNS) servers that Exchange uses for external DNS lookups. .PARAMETER ExternalDNSAdapterGuid The ExternalDNSAdapterGuid parameter specifies the network adapter that has the DNS settings used for DNS lookups of destinations that exist outside the Exchange organization. .PARAMETER ExternalDNSProtocolOption The ExternalDNSProtocolOption parameter specifies which protocol to use when querying external DNS servers. The valid options for this parameter are Any, UseTcpOnly, and UseUdpOnly. The default value is Any. .PARAMETER ExternalDNSServers The ExternalDNSServers parameter specifies the list of external DNS servers that the server queries when resolving a remote domain. You must separate IP addresses by using commas. The default value is an empty list ({}). .PARAMETER ExternalIPAddress The ExternalIPAddress parameter specifies the IP address used in the Received message header field for every message that travels through the Front End Transport service. .PARAMETER InternalDNSAdapterEnabled The InternalDNSAdapterEnabled parameter specifies one or more DNS servers that Exchange uses for internal DNS lookups. .PARAMETER InternalDNSAdapterGuid The InternalDNSAdapterGuid parameter specifies the network adapter that has the DNS settings used for DNS lookups of servers that exist inside the Exchange organization. .PARAMETER InternalDNSProtocolOption The InternalDNSProtocolOption parameter specifies which protocol to use when you query internal DNS servers. Valid options for this parameter are Any, UseTcpOnly, or UseUdpOnly. The default value is Any. .PARAMETER InternalDNSServers The InternalDNSServers parameter specifies the list of DNS servers that should be used when resolving a domain name. DNS servers are specified by IP address and are separated by commas. The default value is any empty list ({}). .PARAMETER IntraOrgConnectorProtocolLoggingLevel The IntraOrgConnectorProtocolLoggingLevel parameter enables or disables SMTP protocol logging on the implicit and invisible intra-organization Send connector in the Front End Transport service. .PARAMETER MaxConnectionRatePerMinute The MaxConnectionRatePerMinute parameter specifies the maximum rate that connections are allowed to be opened with the transport service. .PARAMETER ReceiveProtocolLogMaxAge The ReceiveProtocolLogMaxAge parameter specifies the maximum age of a protocol log file that's shared by all Receive connectors in the Transport service on the server. Log files that are older than the specified value are automatically deleted. .PARAMETER ReceiveProtocolLogMaxDirectorySize The ReceiveProtocolLogMaxDirectorySize parameter specifies the maximum size of the protocol log directory that's shared by all Receive connectors in the Front End Transport service on the server. When the maximum directory size is reached, the server deletes the oldest log files first. .PARAMETER ReceiveProtocolLogMaxFileSize The ReceiveProtocolLogMaxFileSize parameter specifies the maximum size of a protocol log file that's shared by all Receive connectors in the Front End Transport service on the server. When a log file reaches its maximum file size, a new log file is created. .PARAMETER ReceiveProtocolLogPath The ReceiveProtocolLogPath parameter specifies the location of the protocol log directory for all Receive connectors in the Front End Transport service on the server. .PARAMETER RoutingTableLogMaxAge The RoutingTableLogMaxAge parameter specifies the maximum routing table log age. Log files older than the specified value are deleted. The default value is 7 days. .PARAMETER RoutingTableLogMaxDirectorySize The RoutingTableLogMaxDirectorySize parameter specifies the maximum size of the routing table log directory. When the maximum directory size is reached, the server deletes the oldest log files first. The default value is 250 MB. .PARAMETER RoutingTableLogPath The RoutingTableLogPath parameter specifies the directory location where routing table log files should be stored. .PARAMETER SendProtocolLogMaxAge The SendProtocolLogMaxAge parameter specifies the maximum age of a protocol log file that's shared by all Send connectors in the Front End Transport service that have this server configured as a source server. Log files that are older than the specified value are deleted. .PARAMETER SendProtocolLogMaxDirectorySize The SendProtocolLogMaxDirectorySize parameter specifies the maximum size of the protocol log directory that's shared by all Send connectors in the Front End Transport service that have this server configured as a source server. When the maximum directory size is reached, the server deletes the oldest log files first. .PARAMETER SendProtocolLogMaxFileSize The SendProtocolLogMaxFileSize parameter specifies the maximum size of a protocol log file that's shared by all the Send connectors in the Front End Transport service that have this server configured as a source server. When a log file reaches its maximum file size, a new log file is created. .PARAMETER SendProtocolLogPath The SendProtocolLogPath parameter specifies the location of the protocol log directory for all Send connectors in the Front End Transport service that have this server configured as a source server. .PARAMETER TransientFailureRetryCount The TransientFailureRetryCount parameter specifies the maximum number of immediate connection retries attempted when the server encounters a connection failure with a remote server. The default value is 6. The valid input range for this parameter is from 0 through 15. When the value of this parameter is set to 0, the server doesn't immediately attempt to retry an unsuccessful connection. .PARAMETER TransientFailureRetryInterval The TransientFailureRetryInterval parameter controls the connection interval between each connection attempt specified by the TransientFailureRetryCount parameter. For the Front End Transport service, the default value of the TransientFailureRetryInterval parameter is 5 minutes. #> function Get-TargetResource { [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSDSCUseVerboseMessageInDSCResource", "")] [CmdletBinding()] [OutputType([System.Collections.Hashtable])] param ( [Parameter(Mandatory = $true)] [System.String] $Identity, [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] [System.Management.Automation.Credential()] $Credential, [Parameter()] [System.Boolean] $AllowServiceRestart = $false, [Parameter()] [System.Boolean] $AgentLogEnabled, [Parameter()] [System.String] $AgentLogMaxAge, [Parameter()] [System.String] $AgentLogMaxDirectorySize, [Parameter()] [System.String] $AgentLogMaxFileSize, [Parameter()] [System.String] $AgentLogPath, [Parameter()] [System.Boolean] $AntispamAgentsEnabled, [Parameter()] [System.Boolean] $ConnectivityLogEnabled, [Parameter()] [System.String] $ConnectivityLogMaxAge, [Parameter()] [System.String] $ConnectivityLogMaxDirectorySize, [Parameter()] [System.String] $ConnectivityLogMaxFileSize, [Parameter()] [System.String] $ConnectivityLogPath, [Parameter()] [System.Boolean] $DnsLogEnabled, [Parameter()] [System.String] $DnsLogMaxAge, [Parameter()] [System.String] $DnsLogMaxDirectorySize, [Parameter()] [System.String] $DnsLogMaxFileSize, [Parameter()] [System.String] $DnsLogPath, [Parameter()] [System.Boolean] $ExternalDNSAdapterEnabled, [Parameter()] [System.String] $ExternalDNSAdapterGuid, [Parameter()] [ValidateSet('Any', 'UseTcpOnly', 'UseUdpOnly')] [System.String] $ExternalDNSProtocolOption, [Parameter()] [System.String[]] $ExternalDNSServers, [Parameter()] [System.String] $ExternalIPAddress, [Parameter()] [System.Boolean] $InternalDNSAdapterEnabled, [Parameter()] [System.String] $InternalDNSAdapterGuid, [Parameter()] [ValidateSet('Any', 'UseTcpOnly', 'UseUdpOnly')] [System.String] $InternalDNSProtocolOption, [Parameter()] [System.String[]] $InternalDNSServers, [Parameter()] [ValidateSet('None', 'Verbose')] [System.String] $IntraOrgConnectorProtocolLoggingLevel, [Parameter()] [System.Int32] $MaxConnectionRatePerMinute, [Parameter()] [System.String] $ReceiveProtocolLogMaxAge, [Parameter()] [System.String] $ReceiveProtocolLogMaxDirectorySize, [Parameter()] [System.String] $ReceiveProtocolLogMaxFileSize, [Parameter()] [System.String] $ReceiveProtocolLogPath, [Parameter()] [System.String] $RoutingTableLogMaxAge, [Parameter()] [System.String] $RoutingTableLogMaxDirectorySize, [Parameter()] [System.String] $RoutingTableLogPath, [Parameter()] [System.String] $SendProtocolLogMaxAge, [Parameter()] [System.String] $SendProtocolLogMaxDirectorySize, [Parameter()] [System.String] $SendProtocolLogMaxFileSize, [Parameter()] [System.String] $SendProtocolLogPath, [Parameter()] [ValidateRange(1, 15)] [System.Int32] $TransientFailureRetryCount, [Parameter()] [System.String] $TransientFailureRetryInterval ) Write-FunctionEntry -Parameters @{ 'Identity' = $Identity } -Verbose:$VerbosePreference # Establish remote PowerShell session Get-RemoteExchangeSession -Credential $Credential -CommandsToLoad 'Get-FrontendTransportService' -Verbose:$VerbosePreference # Remove Credential and Ensure so we don't pass it into the next command Remove-FromPSBoundParametersUsingHashtable -PSBoundParametersIn $PSBoundParameters -ParamsToRemove 'Credential', 'AllowServiceRestart' $FrontendTransportService = Get-FrontendTransportService $Identity -ErrorAction SilentlyContinue if ($null -ne $FrontendTransportService) { $returnValue = @{ Identity = [System.String] $Identity AgentLogEnabled = [System.Boolean] $FrontendTransportService.AgentLogEnabled AgentLogMaxAge = [System.String] $FrontendTransportService.AgentLogMaxAge AgentLogMaxDirectorySize = [System.String] $FrontendTransportService.AgentLogMaxDirectorySize AgentLogMaxFileSize = [System.String] $FrontendTransportService.AgentLogMaxFileSize AgentLogPath = [System.String] $FrontendTransportService.AgentLogPath AntispamAgentsEnabled = [System.Boolean] $FrontendTransportService.AntispamAgentsEnabled ConnectivityLogEnabled = [System.Boolean] $FrontendTransportService.ConnectivityLogEnabled ConnectivityLogMaxAge = [System.String] $FrontendTransportService.ConnectivityLogMaxAge ConnectivityLogMaxDirectorySize = [System.String] $FrontendTransportService.ConnectivityLogMaxDirectorySize ConnectivityLogMaxFileSize = [System.String] $FrontendTransportService.ConnectivityLogMaxFileSize ConnectivityLogPath = [System.String] $FrontendTransportService.ConnectivityLogPath DnsLogEnabled = [System.Boolean] $FrontendTransportService.DnsLogEnabled DnsLogMaxAge = [System.String] $FrontendTransportService.DnsLogMaxAge DnsLogMaxDirectorySize = [System.String] $FrontendTransportService.DnsLogMaxDirectorySize DnsLogMaxFileSize = [System.String] $FrontendTransportService.DnsLogMaxFileSize DnsLogPath = [System.String] $FrontendTransportService.DnsLogPath ExternalDNSAdapterEnabled = [System.Boolean] $FrontendTransportService.ExternalDNSAdapterEnabled ExternalDNSAdapterGuid = [System.String] $FrontendTransportService.ExternalDNSAdapterGuid ExternalDNSProtocolOption = [System.String] $FrontendTransportService.ExternalDNSProtocolOption ExternalDNSServers = [System.String[]] $FrontendTransportService.ExternalDNSServers ExternalIPAddress = [System.String] $FrontendTransportService.ExternalIPAddress InternalDNSAdapterEnabled = [System.Boolean] $FrontendTransportService.InternalDNSAdapterEnabled InternalDNSAdapterGuid = [System.String] $FrontendTransportService.InternalDNSAdapterGuid InternalDNSProtocolOption = [System.String] $FrontendTransportService.InternalDNSProtocolOption InternalDNSServers = [System.String[]] $FrontendTransportService.InternalDNSServers IntraOrgConnectorProtocolLoggingLevel = [System.String] $FrontendTransportService.IntraOrgConnectorProtocolLoggingLevel MaxConnectionRatePerMinute = [System.Int32] $FrontendTransportService.MaxConnectionRatePerMinute ReceiveProtocolLogMaxAge = [System.String] $FrontendTransportService.ReceiveProtocolLogMaxAge ReceiveProtocolLogMaxDirectorySize = [System.String] $FrontendTransportService.ReceiveProtocolLogMaxDirectorySize ReceiveProtocolLogMaxFileSize = [System.String] $FrontendTransportService.ReceiveProtocolLogMaxFileSize ReceiveProtocolLogPath = [System.String] $FrontendTransportService.ReceiveProtocolLogPath RoutingTableLogMaxAge = [System.String] $FrontendTransportService.RoutingTableLogMaxAge RoutingTableLogMaxDirectorySize = [System.String] $FrontendTransportService.RoutingTableLogMaxDirectorySize RoutingTableLogPath = [System.String] $FrontendTransportService.RoutingTableLogPath SendProtocolLogMaxAge = [System.String] $FrontendTransportService.SendProtocolLogMaxAge SendProtocolLogMaxDirectorySize = [System.String] $FrontendTransportService.SendProtocolLogMaxDirectorySize SendProtocolLogMaxFileSize = [System.String] $FrontendTransportService.SendProtocolLogMaxFileSize SendProtocolLogPath = [System.String] $FrontendTransportService.SendProtocolLogPath TransientFailureRetryCount = [System.Int32] $FrontendTransportService.TransientFailureRetryCount TransientFailureRetryInterval = [System.String] $FrontendTransportService.TransientFailureRetryInterval.ToString() } } $returnValue } <# .SYNOPSIS Sets the DSC configuration for this resource. .PARAMETER Identity The Identity parameter specifies the server that you want to modify. .PARAMETER Credential The Credentials to use when creating a remote PowerShell session to Exchange. .PARAMETER AllowServiceRestart Whether it is OK to restart the MSExchangeFrontEndTransport service after making changes. Defaults to $false. .PARAMETER AgentLogEnabled The AgentLogEnabled parameter specifies whether the agent log is enabled. The default value is $true. .PARAMETER AgentLogMaxAge The AgentLogMaxAge parameter specifies the maximum age for the agent log file. Log files older than the specified value are deleted. The default value is 7.00:00:00 or 7 days. .PARAMETER AgentLogMaxDirectorySize The AgentLogMaxDirectorySize parameter specifies the maximum size of all agent logs in the agent log directory. When a directory reaches its maximum file size, the server deletes the oldest log files first. The default value is 250 MB. .PARAMETER AgentLogMaxFileSize The AgentLogMaxFileSize parameter specifies the maximum size of each agent log file. When a log file reaches its maximum file size, a new log file is created. The default value is 10 MB. .PARAMETER AgentLogPath The AgentLogPath parameter specifies the default agent log directory location. .PARAMETER AntispamAgentsEnabled The AntispamAgentsEnabled parameter specifies whether anti-spam agents are installed on the server specified with the Identity parameter. The default value is $false for the Front End Transport service. .PARAMETER ConnectivityLogEnabled The ConnectivityLogEnabled parameter specifies whether the connectivity log is enabled. The default value is $true. .PARAMETER ConnectivityLogMaxAge The ConnectivityLogMaxAge parameter specifies the maximum age for the connectivity log file. Log files older than the specified value are deleted. The default value is 30 days. .PARAMETER ConnectivityLogMaxDirectorySize The ConnectivityLogMaxDirectorySize parameter specifies the maximum size of all connectivity logs in the connectivity log directory. When a directory reaches its maximum file size, the server deletes the oldest log files first. The default value is 1000 MB. .PARAMETER ConnectivityLogMaxFileSize The ConnectivityLogMaxFileSize parameter specifies the maximum size of each connectivity log file. When a log file reaches its maximum file size, a new log file is created. The default value is 10 MB. .PARAMETER ConnectivityLogPath The ConnectivityLogPath parameter specifies the default connectivity log directory location. .PARAMETER DnsLogEnabled The DnsLogEnabled parameter specifies whether the DNS log is enabled. The default value is $false. .PARAMETER DnsLogMaxAge The DnsLogMaxAge parameter specifies the maximum age for the DNS log file. Log files older than the specified value are deleted. The default value is 7.00:00:00 or 7 days. .PARAMETER DnsLogMaxDirectorySize The DnsLogMaxDirectorySize parameter specifies the maximum size of all DNS logs in the DNS log directory. When a directory reaches its maximum file size, the server deletes the oldest log files first. The default value is 100 MB. .PARAMETER DnsLogMaxFileSize The DnsLogMaxFileSize parameter specifies the maximum size of each DNS log file. When a log file reaches its maximum file size, a new log file is created. The default value is 10 MB. .PARAMETER DnsLogPath The DnsLogPath parameter specifies the DNS log directory location. The default value is blank ($null), which indicates no location is configured. If you enable DNS logging, you need to specify a local file path for the DNS log files by using this parameter. .PARAMETER ExternalDNSAdapterEnabled The ExternalDNSAdapterEnabled parameter specifies one or more Domain Name System (DNS) servers that Exchange uses for external DNS lookups. .PARAMETER ExternalDNSAdapterGuid The ExternalDNSAdapterGuid parameter specifies the network adapter that has the DNS settings used for DNS lookups of destinations that exist outside the Exchange organization. .PARAMETER ExternalDNSProtocolOption The ExternalDNSProtocolOption parameter specifies which protocol to use when querying external DNS servers. The valid options for this parameter are Any, UseTcpOnly, and UseUdpOnly. The default value is Any. .PARAMETER ExternalDNSServers The ExternalDNSServers parameter specifies the list of external DNS servers that the server queries when resolving a remote domain. You must separate IP addresses by using commas. The default value is an empty list ({}). .PARAMETER ExternalIPAddress The ExternalIPAddress parameter specifies the IP address used in the Received message header field for every message that travels through the Front End Transport service. .PARAMETER InternalDNSAdapterEnabled The InternalDNSAdapterEnabled parameter specifies one or more DNS servers that Exchange uses for internal DNS lookups. .PARAMETER InternalDNSAdapterGuid The InternalDNSAdapterGuid parameter specifies the network adapter that has the DNS settings used for DNS lookups of servers that exist inside the Exchange organization. .PARAMETER InternalDNSProtocolOption The InternalDNSProtocolOption parameter specifies which protocol to use when you query internal DNS servers. Valid options for this parameter are Any, UseTcpOnly, or UseUdpOnly. The default value is Any. .PARAMETER InternalDNSServers The InternalDNSServers parameter specifies the list of DNS servers that should be used when resolving a domain name. DNS servers are specified by IP address and are separated by commas. The default value is any empty list ({}). .PARAMETER IntraOrgConnectorProtocolLoggingLevel The IntraOrgConnectorProtocolLoggingLevel parameter enables or disables SMTP protocol logging on the implicit and invisible intra-organization Send connector in the Front End Transport service. .PARAMETER MaxConnectionRatePerMinute The MaxConnectionRatePerMinute parameter specifies the maximum rate that connections are allowed to be opened with the transport service. .PARAMETER ReceiveProtocolLogMaxAge The ReceiveProtocolLogMaxAge parameter specifies the maximum age of a protocol log file that's shared by all Receive connectors in the Transport service on the server. Log files that are older than the specified value are automatically deleted. .PARAMETER ReceiveProtocolLogMaxDirectorySize The ReceiveProtocolLogMaxDirectorySize parameter specifies the maximum size of the protocol log directory that's shared by all Receive connectors in the Front End Transport service on the server. When the maximum directory size is reached, the server deletes the oldest log files first. .PARAMETER ReceiveProtocolLogMaxFileSize The ReceiveProtocolLogMaxFileSize parameter specifies the maximum size of a protocol log file that's shared by all Receive connectors in the Front End Transport service on the server. When a log file reaches its maximum file size, a new log file is created. .PARAMETER ReceiveProtocolLogPath The ReceiveProtocolLogPath parameter specifies the location of the protocol log directory for all Receive connectors in the Front End Transport service on the server. .PARAMETER RoutingTableLogMaxAge The RoutingTableLogMaxAge parameter specifies the maximum routing table log age. Log files older than the specified value are deleted. The default value is 7 days. .PARAMETER RoutingTableLogMaxDirectorySize The RoutingTableLogMaxDirectorySize parameter specifies the maximum size of the routing table log directory. When the maximum directory size is reached, the server deletes the oldest log files first. The default value is 250 MB. .PARAMETER RoutingTableLogPath The RoutingTableLogPath parameter specifies the directory location where routing table log files should be stored. .PARAMETER SendProtocolLogMaxAge The SendProtocolLogMaxAge parameter specifies the maximum age of a protocol log file that's shared by all Send connectors in the Front End Transport service that have this server configured as a source server. Log files that are older than the specified value are deleted. .PARAMETER SendProtocolLogMaxDirectorySize The SendProtocolLogMaxDirectorySize parameter specifies the maximum size of the protocol log directory that's shared by all Send connectors in the Front End Transport service that have this server configured as a source server. When the maximum directory size is reached, the server deletes the oldest log files first. .PARAMETER SendProtocolLogMaxFileSize The SendProtocolLogMaxFileSize parameter specifies the maximum size of a protocol log file that's shared by all the Send connectors in the Front End Transport service that have this server configured as a source server. When a log file reaches its maximum file size, a new log file is created. .PARAMETER SendProtocolLogPath The SendProtocolLogPath parameter specifies the location of the protocol log directory for all Send connectors in the Front End Transport service that have this server configured as a source server. .PARAMETER TransientFailureRetryCount The TransientFailureRetryCount parameter specifies the maximum number of immediate connection retries attempted when the server encounters a connection failure with a remote server. The default value is 6. The valid input range for this parameter is from 0 through 15. When the value of this parameter is set to 0, the server doesn't immediately attempt to retry an unsuccessful connection. .PARAMETER TransientFailureRetryInterval The TransientFailureRetryInterval parameter controls the connection interval between each connection attempt specified by the TransientFailureRetryCount parameter. For the Front End Transport service, the default value of the TransientFailureRetryInterval parameter is 5 minutes. #> function Set-TargetResource { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [System.String] $Identity, [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] [System.Management.Automation.Credential()] $Credential, [Parameter()] [System.Boolean] $AllowServiceRestart = $false, [Parameter()] [System.Boolean] $AgentLogEnabled, [Parameter()] [System.String] $AgentLogMaxAge, [Parameter()] [System.String] $AgentLogMaxDirectorySize, [Parameter()] [System.String] $AgentLogMaxFileSize, [Parameter()] [System.String] $AgentLogPath, [Parameter()] [System.Boolean] $AntispamAgentsEnabled, [Parameter()] [System.Boolean] $ConnectivityLogEnabled, [Parameter()] [System.String] $ConnectivityLogMaxAge, [Parameter()] [System.String] $ConnectivityLogMaxDirectorySize, [Parameter()] [System.String] $ConnectivityLogMaxFileSize, [Parameter()] [System.String] $ConnectivityLogPath, [Parameter()] [System.Boolean] $DnsLogEnabled, [Parameter()] [System.String] $DnsLogMaxAge, [Parameter()] [System.String] $DnsLogMaxDirectorySize, [Parameter()] [System.String] $DnsLogMaxFileSize, [Parameter()] [System.String] $DnsLogPath, [Parameter()] [System.Boolean] $ExternalDNSAdapterEnabled, [Parameter()] [System.String] $ExternalDNSAdapterGuid, [Parameter()] [ValidateSet('Any', 'UseTcpOnly', 'UseUdpOnly')] [System.String] $ExternalDNSProtocolOption, [Parameter()] [System.String[]] $ExternalDNSServers, [Parameter()] [System.String] $ExternalIPAddress, [Parameter()] [System.Boolean] $InternalDNSAdapterEnabled, [Parameter()] [System.String] $InternalDNSAdapterGuid, [Parameter()] [ValidateSet('Any', 'UseTcpOnly', 'UseUdpOnly')] [System.String] $InternalDNSProtocolOption, [Parameter()] [System.String[]] $InternalDNSServers, [Parameter()] [ValidateSet('None', 'Verbose')] [System.String] $IntraOrgConnectorProtocolLoggingLevel, [Parameter()] [System.Int32] $MaxConnectionRatePerMinute, [Parameter()] [System.String] $ReceiveProtocolLogMaxAge, [Parameter()] [System.String] $ReceiveProtocolLogMaxDirectorySize, [Parameter()] [System.String] $ReceiveProtocolLogMaxFileSize, [Parameter()] [System.String] $ReceiveProtocolLogPath, [Parameter()] [System.String] $RoutingTableLogMaxAge, [Parameter()] [System.String] $RoutingTableLogMaxDirectorySize, [Parameter()] [System.String] $RoutingTableLogPath, [Parameter()] [System.String] $SendProtocolLogMaxAge, [Parameter()] [System.String] $SendProtocolLogMaxDirectorySize, [Parameter()] [System.String] $SendProtocolLogMaxFileSize, [Parameter()] [System.String] $SendProtocolLogPath, [Parameter()] [ValidateRange(1, 15)] [System.Int32] $TransientFailureRetryCount, [Parameter()] [System.String] $TransientFailureRetryInterval ) Write-FunctionEntry -Parameters @{ 'Identity' = $Identity } -Verbose:$VerbosePreference # Establish remote PowerShell session Get-RemoteExchangeSession -Credential $Credential -CommandsToLoad 'Set-FrontendTransportService' -Verbose:$VerbosePreference # Remove Credential and Ensure so we don't pass it into the next command Remove-FromPSBoundParametersUsingHashtable -PSBoundParametersIn $PSBoundParameters -ParamsToRemove 'Credential', 'AllowServiceRestart' # If ExternalIPAddress exists and is $null remove it from $PSBoundParameters and add argument if ($PSBoundParameters.ContainsKey('ExternalIPAddress')) { if ([System.String]::IsNullOrEmpty($ExternalIPAddress)) { Write-Verbose -Message 'ExternalIPAddress is NULL' Remove-FromPSBoundParametersUsingHashtable -PSBoundParametersIn $PSBoundParameters -ParamsToRemove 'ExternalIPAddress' $PSBoundParameters['ExternalIPAddress'] = $null } } # If InternalDNSServers exists and is $null remove it from $PSBoundParameters and add argument if ($PSBoundParameters.ContainsKey('InternalDNSServers')) { if ([System.String]::IsNullOrEmpty($InternalDNSServers)) { Write-Verbose -Message 'InternalDNSServers is NULL' Remove-FromPSBoundParametersUsingHashtable -PSBoundParametersIn $PSBoundParameters -ParamsToRemove 'InternalDNSServers' $PSBoundParameters['InternalDNSServers'] = $null } } # If ExternalDNSServers exists and is $null remove it from $PSBoundParameters and add argument if ($PSBoundParameters.ContainsKey('ExternalDNSServers')) { if ([System.String]::IsNullOrEmpty($ExternalDNSServers)) { Write-Verbose -Message 'ExternalDNSServers is NULL' Remove-FromPSBoundParametersUsingHashtable -PSBoundParametersIn $PSBoundParameters -ParamsToRemove 'ExternalDNSServers' $PSBoundParameters['ExternalDNSServers'] = $null } } Set-FrontendTransportService @PSBoundParameters if ($AllowServiceRestart -eq $true) { Write-Verbose -Message 'Restart service MSExchangeFrontEndTransport' Restart-Service -Name MSExchangeFrontEndTransport -WarningAction SilentlyContinue } else { Write-Warning -Message 'The configuration will not take effect until the MSExchangeFrontEndTransport service is manually restarted.' } } <# .SYNOPSIS Tests whether the desired configuration for this resource has been applied. .PARAMETER Identity The Identity parameter specifies the server that you want to modify. .PARAMETER Credential The Credentials to use when creating a remote PowerShell session to Exchange. .PARAMETER AllowServiceRestart Whether it is OK to restart the MSExchangeFrontEndTransport service after making changes. Defaults to $false. .PARAMETER AgentLogEnabled The AgentLogEnabled parameter specifies whether the agent log is enabled. The default value is $true. .PARAMETER AgentLogMaxAge The AgentLogMaxAge parameter specifies the maximum age for the agent log file. Log files older than the specified value are deleted. The default value is 7.00:00:00 or 7 days. .PARAMETER AgentLogMaxDirectorySize The AgentLogMaxDirectorySize parameter specifies the maximum size of all agent logs in the agent log directory. When a directory reaches its maximum file size, the server deletes the oldest log files first. The default value is 250 MB. .PARAMETER AgentLogMaxFileSize The AgentLogMaxFileSize parameter specifies the maximum size of each agent log file. When a log file reaches its maximum file size, a new log file is created. The default value is 10 MB. .PARAMETER AgentLogPath The AgentLogPath parameter specifies the default agent log directory location. .PARAMETER AntispamAgentsEnabled The AntispamAgentsEnabled parameter specifies whether anti-spam agents are installed on the server specified with the Identity parameter. The default value is $false for the Front End Transport service. .PARAMETER ConnectivityLogEnabled The ConnectivityLogEnabled parameter specifies whether the connectivity log is enabled. The default value is $true. .PARAMETER ConnectivityLogMaxAge The ConnectivityLogMaxAge parameter specifies the maximum age for the connectivity log file. Log files older than the specified value are deleted. The default value is 30 days. .PARAMETER ConnectivityLogMaxDirectorySize The ConnectivityLogMaxDirectorySize parameter specifies the maximum size of all connectivity logs in the connectivity log directory. When a directory reaches its maximum file size, the server deletes the oldest log files first. The default value is 1000 MB. .PARAMETER ConnectivityLogMaxFileSize The ConnectivityLogMaxFileSize parameter specifies the maximum size of each connectivity log file. When a log file reaches its maximum file size, a new log file is created. The default value is 10 MB. .PARAMETER ConnectivityLogPath The ConnectivityLogPath parameter specifies the default connectivity log directory location. .PARAMETER DnsLogEnabled The DnsLogEnabled parameter specifies whether the DNS log is enabled. The default value is $false. .PARAMETER DnsLogMaxAge The DnsLogMaxAge parameter specifies the maximum age for the DNS log file. Log files older than the specified value are deleted. The default value is 7.00:00:00 or 7 days. .PARAMETER DnsLogMaxDirectorySize The DnsLogMaxDirectorySize parameter specifies the maximum size of all DNS logs in the DNS log directory. When a directory reaches its maximum file size, the server deletes the oldest log files first. The default value is 100 MB. .PARAMETER DnsLogMaxFileSize The DnsLogMaxFileSize parameter specifies the maximum size of each DNS log file. When a log file reaches its maximum file size, a new log file is created. The default value is 10 MB. .PARAMETER DnsLogPath The DnsLogPath parameter specifies the DNS log directory location. The default value is blank ($null), which indicates no location is configured. If you enable DNS logging, you need to specify a local file path for the DNS log files by using this parameter. .PARAMETER ExternalDNSAdapterEnabled The ExternalDNSAdapterEnabled parameter specifies one or more Domain Name System (DNS) servers that Exchange uses for external DNS lookups. .PARAMETER ExternalDNSAdapterGuid The ExternalDNSAdapterGuid parameter specifies the network adapter that has the DNS settings used for DNS lookups of destinations that exist outside the Exchange organization. .PARAMETER ExternalDNSProtocolOption The ExternalDNSProtocolOption parameter specifies which protocol to use when querying external DNS servers. The valid options for this parameter are Any, UseTcpOnly, and UseUdpOnly. The default value is Any. .PARAMETER ExternalDNSServers The ExternalDNSServers parameter specifies the list of external DNS servers that the server queries when resolving a remote domain. You must separate IP addresses by using commas. The default value is an empty list ({}). .PARAMETER ExternalIPAddress The ExternalIPAddress parameter specifies the IP address used in the Received message header field for every message that travels through the Front End Transport service. .PARAMETER InternalDNSAdapterEnabled The InternalDNSAdapterEnabled parameter specifies one or more DNS servers that Exchange uses for internal DNS lookups. .PARAMETER InternalDNSAdapterGuid The InternalDNSAdapterGuid parameter specifies the network adapter that has the DNS settings used for DNS lookups of servers that exist inside the Exchange organization. .PARAMETER InternalDNSProtocolOption The InternalDNSProtocolOption parameter specifies which protocol to use when you query internal DNS servers. Valid options for this parameter are Any, UseTcpOnly, or UseUdpOnly. The default value is Any. .PARAMETER InternalDNSServers The InternalDNSServers parameter specifies the list of DNS servers that should be used when resolving a domain name. DNS servers are specified by IP address and are separated by commas. The default value is any empty list ({}). .PARAMETER IntraOrgConnectorProtocolLoggingLevel The IntraOrgConnectorProtocolLoggingLevel parameter enables or disables SMTP protocol logging on the implicit and invisible intra-organization Send connector in the Front End Transport service. .PARAMETER MaxConnectionRatePerMinute The MaxConnectionRatePerMinute parameter specifies the maximum rate that connections are allowed to be opened with the transport service. .PARAMETER ReceiveProtocolLogMaxAge The ReceiveProtocolLogMaxAge parameter specifies the maximum age of a protocol log file that's shared by all Receive connectors in the Transport service on the server. Log files that are older than the specified value are automatically deleted. .PARAMETER ReceiveProtocolLogMaxDirectorySize The ReceiveProtocolLogMaxDirectorySize parameter specifies the maximum size of the protocol log directory that's shared by all Receive connectors in the Front End Transport service on the server. When the maximum directory size is reached, the server deletes the oldest log files first. .PARAMETER ReceiveProtocolLogMaxFileSize The ReceiveProtocolLogMaxFileSize parameter specifies the maximum size of a protocol log file that's shared by all Receive connectors in the Front End Transport service on the server. When a log file reaches its maximum file size, a new log file is created. .PARAMETER ReceiveProtocolLogPath The ReceiveProtocolLogPath parameter specifies the location of the protocol log directory for all Receive connectors in the Front End Transport service on the server. .PARAMETER RoutingTableLogMaxAge The RoutingTableLogMaxAge parameter specifies the maximum routing table log age. Log files older than the specified value are deleted. The default value is 7 days. .PARAMETER RoutingTableLogMaxDirectorySize The RoutingTableLogMaxDirectorySize parameter specifies the maximum size of the routing table log directory. When the maximum directory size is reached, the server deletes the oldest log files first. The default value is 250 MB. .PARAMETER RoutingTableLogPath The RoutingTableLogPath parameter specifies the directory location where routing table log files should be stored. .PARAMETER SendProtocolLogMaxAge The SendProtocolLogMaxAge parameter specifies the maximum age of a protocol log file that's shared by all Send connectors in the Front End Transport service that have this server configured as a source server. Log files that are older than the specified value are deleted. .PARAMETER SendProtocolLogMaxDirectorySize The SendProtocolLogMaxDirectorySize parameter specifies the maximum size of the protocol log directory that's shared by all Send connectors in the Front End Transport service that have this server configured as a source server. When the maximum directory size is reached, the server deletes the oldest log files first. .PARAMETER SendProtocolLogMaxFileSize The SendProtocolLogMaxFileSize parameter specifies the maximum size of a protocol log file that's shared by all the Send connectors in the Front End Transport service that have this server configured as a source server. When a log file reaches its maximum file size, a new log file is created. .PARAMETER SendProtocolLogPath The SendProtocolLogPath parameter specifies the location of the protocol log directory for all Send connectors in the Front End Transport service that have this server configured as a source server. .PARAMETER TransientFailureRetryCount The TransientFailureRetryCount parameter specifies the maximum number of immediate connection retries attempted when the server encounters a connection failure with a remote server. The default value is 6. The valid input range for this parameter is from 0 through 15. When the value of this parameter is set to 0, the server doesn't immediately attempt to retry an unsuccessful connection. .PARAMETER TransientFailureRetryInterval The TransientFailureRetryInterval parameter controls the connection interval between each connection attempt specified by the TransientFailureRetryCount parameter. For the Front End Transport service, the default value of the TransientFailureRetryInterval parameter is 5 minutes. #> function Test-TargetResource { [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSDSCUseVerboseMessageInDSCResource", "")] [CmdletBinding()] [OutputType([System.Boolean])] param ( [Parameter(Mandatory = $true)] [System.String] $Identity, [Parameter(Mandatory = $true)] [System.Management.Automation.PSCredential] [System.Management.Automation.Credential()] $Credential, [Parameter()] [System.Boolean] $AllowServiceRestart = $false, [Parameter()] [System.Boolean] $AgentLogEnabled, [Parameter()] [System.String] $AgentLogMaxAge, [Parameter()] [System.String] $AgentLogMaxDirectorySize, [Parameter()] [System.String] $AgentLogMaxFileSize, [Parameter()] [System.String] $AgentLogPath, [Parameter()] [System.Boolean] $AntispamAgentsEnabled, [Parameter()] [System.Boolean] $ConnectivityLogEnabled, [Parameter()] [System.String] $ConnectivityLogMaxAge, [Parameter()] [System.String] $ConnectivityLogMaxDirectorySize, [Parameter()] [System.String] $ConnectivityLogMaxFileSize, [Parameter()] [System.String] $ConnectivityLogPath, [Parameter()] [System.Boolean] $DnsLogEnabled, [Parameter()] [System.String] $DnsLogMaxAge, [Parameter()] [System.String] $DnsLogMaxDirectorySize, [Parameter()] [System.String] $DnsLogMaxFileSize, [Parameter()] [System.String] $DnsLogPath, [Parameter()] [System.Boolean] $ExternalDNSAdapterEnabled, [Parameter()] [System.String] $ExternalDNSAdapterGuid, [Parameter()] [ValidateSet('Any', 'UseTcpOnly', 'UseUdpOnly')] [System.String] $ExternalDNSProtocolOption, [Parameter()] [System.String[]] $ExternalDNSServers, [Parameter()] [System.String] $ExternalIPAddress, [Parameter()] [System.Boolean] $InternalDNSAdapterEnabled, [Parameter()] [System.String] $InternalDNSAdapterGuid, [Parameter()] [ValidateSet('Any', 'UseTcpOnly', 'UseUdpOnly')] [System.String] $InternalDNSProtocolOption, [Parameter()] [System.String[]] $InternalDNSServers, [Parameter()] [ValidateSet('None', 'Verbose')] [System.String] $IntraOrgConnectorProtocolLoggingLevel, [Parameter()] [System.Int32] $MaxConnectionRatePerMinute, [Parameter()] [System.String] $ReceiveProtocolLogMaxAge, [Parameter()] [System.String] $ReceiveProtocolLogMaxDirectorySize, [Parameter()] [System.String] $ReceiveProtocolLogMaxFileSize, [Parameter()] [System.String] $ReceiveProtocolLogPath, [Parameter()] [System.String] $RoutingTableLogMaxAge, [Parameter()] [System.String] $RoutingTableLogMaxDirectorySize, [Parameter()] [System.String] $RoutingTableLogPath, [Parameter()] [System.String] $SendProtocolLogMaxAge, [Parameter()] [System.String] $SendProtocolLogMaxDirectorySize, [Parameter()] [System.String] $SendProtocolLogMaxFileSize, [Parameter()] [System.String] $SendProtocolLogPath, [Parameter()] [ValidateRange(1, 15)] [System.Int32] $TransientFailureRetryCount, [Parameter()] [System.String] $TransientFailureRetryInterval ) Write-FunctionEntry -Parameters @{ 'Identity' = $Identity } -Verbose:$VerbosePreference # Establish remote PowerShell session Get-RemoteExchangeSession -Credential $Credential -CommandsToLoad 'Get-FrontendTransportService' -Verbose:$VerbosePreference $FrontendTransportService = Get-FrontendTransportService $Identity -ErrorAction SilentlyContinue $testResults = $true if ($null -eq $FrontendTransportService) { Write-Error -Message 'Unable to retrieve Frontend Transport Service for server' $testResults = $false } else { if (!(Test-ExchangeSetting -Name 'AgentLogEnabled' -Type 'Boolean' -ExpectedValue $AgentLogEnabled -ActualValue $FrontendTransportService.AgentLogEnabled -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'AgentLogMaxAge' -Type 'Timespan' -ExpectedValue $AgentLogMaxAge -ActualValue $FrontendTransportService.AgentLogMaxAge -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'AgentLogMaxDirectorySize' -Type 'Unlimited' -ExpectedValue $AgentLogMaxDirectorySize -ActualValue $FrontendTransportService.AgentLogMaxDirectorySize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'AgentLogMaxFileSize' -Type 'Unlimited' -ExpectedValue $AgentLogMaxFileSize -ActualValue $FrontendTransportService.AgentLogMaxFileSize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'AgentLogPath' -Type 'String' -ExpectedValue $AgentLogPath -ActualValue $FrontendTransportService.AgentLogPath -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'AntispamAgentsEnabled' -Type 'Boolean' -ExpectedValue $AntispamAgentsEnabled -ActualValue $FrontendTransportService.AntispamAgentsEnabled -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ConnectivityLogEnabled' -Type 'Boolean' -ExpectedValue $ConnectivityLogEnabled -ActualValue $FrontendTransportService.ConnectivityLogEnabled -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ConnectivityLogMaxAge' -Type 'Timespan' -ExpectedValue $ConnectivityLogMaxAge -ActualValue $FrontendTransportService.ConnectivityLogMaxAge -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ConnectivityLogMaxDirectorySize' -Type 'Unlimited' -ExpectedValue $ConnectivityLogMaxDirectorySize -ActualValue $FrontendTransportService.ConnectivityLogMaxDirectorySize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ConnectivityLogMaxFileSize' -Type 'Unlimited' -ExpectedValue $ConnectivityLogMaxFileSize -ActualValue $FrontendTransportService.ConnectivityLogMaxFileSize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ConnectivityLogPath' -Type 'String' -ExpectedValue $ConnectivityLogPath -ActualValue $FrontendTransportService.ConnectivityLogPath -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'DnsLogEnabled' -Type 'Boolean' -ExpectedValue $DnsLogEnabled -ActualValue $FrontendTransportService.DnsLogEnabled -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'DnsLogMaxAge' -Type 'TimeSpan' -ExpectedValue $DnsLogMaxAge -ActualValue $FrontendTransportService.DnsLogMaxAge -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'DnsLogMaxDirectorySize' -Type 'Unlimited' -ExpectedValue $DnsLogMaxDirectorySize -ActualValue $FrontendTransportService.DnsLogMaxDirectorySize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'DnsLogMaxFileSize' -Type 'Unlimited' -ExpectedValue $DnsLogMaxFileSize -ActualValue $FrontendTransportService.DnsLogMaxFileSize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'DnsLogPath' -Type 'String' -ExpectedValue $DnsLogPath -ActualValue $FrontendTransportService.DnsLogPath -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ExternalDNSAdapterEnabled' -Type 'Boolean' -ExpectedValue $ExternalDNSAdapterEnabled -ActualValue $FrontendTransportService.ExternalDNSAdapterEnabled -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ExternalDNSAdapterGuid' -Type 'String' -ExpectedValue $ExternalDNSAdapterGuid -ActualValue $FrontendTransportService.ExternalDNSAdapterGuid -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ExternalDNSProtocolOption' -Type 'String' -ExpectedValue $ExternalDNSProtocolOption -ActualValue $FrontendTransportService.ExternalDNSProtocolOption -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ExternalDNSServers' -Type 'IPAddresses' -ExpectedValue $ExternalDNSServers -ActualValue $FrontendTransportService.ExternalDNSServers -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ExternalIPAddress' -Type 'IPAddress' -ExpectedValue $ExternalIPAddress -ActualValue $FrontendTransportService.ExternalIPAddress -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'InternalDNSAdapterEnabled' -Type 'Boolean' -ExpectedValue $InternalDNSAdapterEnabled -ActualValue $FrontendTransportService.InternalDNSAdapterEnabled -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'InternalDNSAdapterGuid' -Type 'String' -ExpectedValue $InternalDNSAdapterGuid -ActualValue $FrontendTransportService.InternalDNSAdapterGuid -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'InternalDNSProtocolOption' -Type 'String' -ExpectedValue $InternalDNSProtocolOption -ActualValue $FrontendTransportService.InternalDNSProtocolOption -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'InternalDNSServers' -Type 'IPAddresses' -ExpectedValue $InternalDNSServers -ActualValue $FrontendTransportService.InternalDNSServers -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'IntraOrgConnectorProtocolLoggingLevel' -Type 'String' -ExpectedValue $IntraOrgConnectorProtocolLoggingLevel -ActualValue $FrontendTransportService.IntraOrgConnectorProtocolLoggingLevel -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'MaxConnectionRatePerMinute' -Type 'Int' -ExpectedValue $MaxConnectionRatePerMinute -ActualValue $FrontendTransportService.MaxConnectionRatePerMinute -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ReceiveProtocolLogMaxAge' -Type 'TimeSpan' -ExpectedValue $ReceiveProtocolLogMaxAge -ActualValue $FrontendTransportService.ReceiveProtocolLogMaxAge -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ReceiveProtocolLogMaxDirectorySize' -Type 'Unlimited' -ExpectedValue $ReceiveProtocolLogMaxDirectorySize -ActualValue $FrontendTransportService.ReceiveProtocolLogMaxDirectorySize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ReceiveProtocolLogMaxFileSize' -Type 'Unlimited' -ExpectedValue $ReceiveProtocolLogMaxFileSize -ActualValue $FrontendTransportService.ReceiveProtocolLogMaxFileSize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'ReceiveProtocolLogPath' -Type 'String' -ExpectedValue $ReceiveProtocolLogPath -ActualValue $FrontendTransportService.ReceiveProtocolLogPath -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'RoutingTableLogMaxAge' -Type 'TimeSpan' -ExpectedValue $RoutingTableLogMaxAge -ActualValue $FrontendTransportService.RoutingTableLogMaxAge -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'RoutingTableLogMaxDirectorySize' -Type 'Unlimited' -ExpectedValue $RoutingTableLogMaxDirectorySize -ActualValue $FrontendTransportService.RoutingTableLogMaxDirectorySize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'RoutingTableLogPath' -Type 'String' -ExpectedValue $RoutingTableLogPath -ActualValue $FrontendTransportService.RoutingTableLogPath -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'SendProtocolLogMaxAge' -Type 'TimeSpan' -ExpectedValue $SendProtocolLogMaxAge -ActualValue $FrontendTransportService.SendProtocolLogMaxAge -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'SendProtocolLogMaxDirectorySize' -Type 'Unlimited' -ExpectedValue $SendProtocolLogMaxDirectorySize -ActualValue $FrontendTransportService.SendProtocolLogMaxDirectorySize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'SendProtocolLogMaxFileSize' -Type 'Unlimited' -ExpectedValue $SendProtocolLogMaxFileSize -ActualValue $FrontendTransportService.SendProtocolLogMaxFileSize -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'SendProtocolLogPath' -Type 'String' -ExpectedValue $SendProtocolLogPath -ActualValue $FrontendTransportService.SendProtocolLogPath -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'TransientFailureRetryCount' -Type 'Int' -ExpectedValue $TransientFailureRetryCount -ActualValue $FrontendTransportService.TransientFailureRetryCount -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } if (!(Test-ExchangeSetting -Name 'TransientFailureRetryInterval' -Type 'TimeSpan' -ExpectedValue $TransientFailureRetryInterval -ActualValue $FrontendTransportService.TransientFailureRetryInterval -PSBoundParametersIn $PSBoundParameters -Verbose:$VerbosePreference)) { $testResults = $false } } return $testResults } Export-ModuleMember -Function *-TargetResource |