Active Monitoring probe fails and returns SecurityException after the default accepted domain is changed

Прилага се за: Exchange Server 2013 Service Pack 1Exchange Server 2013 EnterpriseExchange Server 2013 Standard Edition

Symptoms


In Microsoft Exchange Server 2013, if Active Monitoring runs a probe by using health mailboxes after the default accepted domain is changed, the probe fails and returns a System.Security.SecurityException exception. This may result in an unnecessary database failover.

Workaround


To work around this problem, use one of the following methods.

Method 1
If all health mailbox UPN domain parts are the same, change the default accepted domain so that it matches the value that is stamped in the health mailboxes.

To check the UPN domain for the health mailboxes, run the Get-Mailbox –Monitoring cmdlet.

Note If the health mailboxes have different UPN domains, such as bar.local and bar1.local, you cannot use this method because all the UPN domains must match the default accepted domain in order to avoid this issue. In this case, try method 2.
Method 2
Disable any related probe responders. This prevents a database failover that is caused by related probes.

For example, run the Add-ServerMonitoringOverride cmdlet, as follows:



Add-ServerMonitoringOverride -ItemType Responder -Identity RPS.Protocol\RpsDeepTestPSProxyFailover 
-PropertyValue 0 -PropertyName Enabled -Duration "60.00:00:00" -Server Server_name

Add-ServerMonitoringOverride -ItemType Responder -Identity ActiveSync\ActiveSyncSelfTestDatabaseFailover
-PropertyValue 0 -PropertyName Enabled -Duration "60.00:00:00" -Server Server_name
Note In this cmdlet example, Server_name represents the actual server name.

If you cannot change the default accepted domain, manually change the UPN and SMTP address of the health mailboxes, as in the following example:

# THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK
# OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER.
$newDomain = "bar.local" # This is the new domain name. Must be changed according to the environment.
$healthMailboxes = Get-Mailbox -Monitoring;
foreach ($mailbox in $healthMailboxes)
{
$upn = $mailbox.Name + "@" + $newDomain
Set-User $mailbox -UserPrincipalName:$upn
Set-Mailbox $mailbox -PrimarySmtpAddress:$upn -EmailAddressPolicyEnabled:$false
$adUser = [ADSI]("LDAP://"+$mailbox.DistinguishedName)
$adUser.msExchRecipientTypeDetails = "549755813888"
$adUser.SetInfo()
}