Exchange Server Share

… Information sharing on Exchange Server …

Archive for the ‘Exchange 2013 SP1’ Category

Exchange Powershell Tip #13

Exchange Powershell Tip #13
How do I see values of all the parameters from the Exchange Cmdlet? (Powershell Please show me everything out of that cmdlet Smile with tongue out)
Read the rest of this entry »

Advertisements

Exchange 2013 – Setup Error: A Receive connector must have a unique combination of a local IP address & port bindings and remote IP address ranges

avatarYou may get an error while Exchange setup checks Receive Connectors for local IP address/port bindings and remote IP address ranges for the server where you are installing Cumulative Update. This error would come up at “Mailbox Role: Transport Service” step of setup/update process. Here is the detailed error message.

 Error:

Error:
The following error was generated when "$error.Clear();
 $connectors = Get-ReceiveConnector -Server $RoleFqdnOrName;
 foreach($connector in $connectors) { if($connector.MaxLocalHopCount -gt 1) { Set-ReceiveConnector -Identity $connector.Identity -MaxLocalHopCount 5 } };
 " was run: "Microsoft.Exchange.Management.SystemConfigurationTasks.ConnectorMappingConflictException: The values that you specified for the Bindings and RemoteIPRanges parameters conflict with the settings on Receive connector "EX2013\Incoming from Internet - Dummy". A Receive connector must have a unique combination of a local IP address & port bindings and remote IP address ranges. Change at least one of these values.
 at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
 at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target)
 at Microsoft.Exchange.Management.SystemConfigurationTasks.SetReceiveConnector.InternalValidate()
 at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
 at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

Error:
The following error was generated when "$error.Clear();
 $connectors = Get-ReceiveConnector -Server $RoleFqdnOrName;
 foreach($connector in $connectors) { if($connector.MaxLocalHopCount -gt 1) { Set-ReceiveConnector -Identity $connector.Identity -MaxLocalHopCount 5 } };
 " was run: "Microsoft.Exchange.Management.SystemConfigurationTasks.ConnectorMappingConflictException: The values that you specified for the Bindings and RemoteIPRanges parameters conflict with the settings on Receive connector "EX2013\Default Frontend EX2013". A Receive connector must have a unique combination of a local IP address & port bindings and remote IP address ranges. Change at least one of these values.
 at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
 at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target)
 at Microsoft.Exchange.Management.SystemConfigurationTasks.SetReceiveConnector.InternalValidate()
 at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
 at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

RemoteIPError1

Explanation:

You can not have same values of Local IP Address:Port bindings and Remote IP Address Range both on two Receive Connectors so essentially you have to change anyone of these on one of the Receive Connector.

Now problem is you won’t be able to open Exchange Admin Center (EAC) or Exchange Management Shell (EMS) to modify Local IP Address:Port Bindings or Remote IP Address Ranges on one of these receive connectors.

Solution:

Exchange saves configuration information in Configuration Partition of Active Directory so you can use any AD Editor like ADSIEdit.msc or ADExplorer.exe to modify this value. (Be careful while using these raw AD Editors!)

  • Open ADSIEDIT.MSC.
  • Navigate to the following location: CN=SMTP Receive Connectors,CN=Protocols,CN=<ExServerName>,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=<ExOrg Name>,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=<DomainName>,CN=Com
  • Right-click one of the Receive Connector which is showing up in error and then click Properties. (It is recommend to modify the Receive Connector created manually and not the “Default Frontend ServerName” connector.)

Now change the value of either msExchSmtpReceiveRemoteIPRanges or msExchSmtpReceiveBindings following below setps.

  • Locate the msExchSmtpReceiveRemoteIPRanges attribute. This attribute stores values for Remote Network Settings that you see in EAC.
  • Remove the values here and add some unique IP address or IP Range back.

RemoteIPError2

 

OR

  • Locate the msExchSmtpReceiveBindings attribute. This attribute stores value of Network adapter bindings that you see in EAC.
  • Remove the values here and add them back with different Port instead of 25.

RemoteIPError3

Personally I would prefer to change msExchSmtpReceiveRemoteIPRanges and give some unique IP or IP range.

After this Exchange 2013 Cumulative Update installation goes fine!

Written by Amit Tank

July 14, 2014 at 10:02 pm

Microsoft Exchange Server 2013 Help Files

avatarMicrosoft has released “May 2014” version of Exchange 2013 Help Files for On-premises and Hybrid Deployments. These help files include information up to date until Cumulative Update 5 . These are offline copy of Exchange 2013 TechNet content and very useful when you want to refer something in your lab environment and don’t have internet access.

Version                   : May 2014

Release Date           : 6/6/2014

Link to Download      : http://www.microsoft.com/en-us/download/details.aspx?id=35395

Written by Amit Tank

June 12, 2014 at 1:31 am

Exchange 2013 SP1 Install Error : Database is mandatory on Arbitration Mailboxes

avatarI got a simple yet interesting error while installing an Exchange 2013 SP1 on a server. It has been generated while setup was updating arbitration mailbox SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c} during Mailbox Role install. It couldn’t find the database for this mailbox and thrown error ”Database is mandatory on UserMailbox”. Here is the detailed error message.

 

Error: The following error was generated when "$error.Clear();
          if ($RoleIsDatacenter -ne $true -and $RoleIsDatacenterDedicated -ne $true)
          {
          if (Test-ExchangeServersWriteAccess -DomainController $RoleDomainController -ErrorAction SilentlyContinue)
          {
          $sysMbx = $null;
          $name = "SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}";
          $dispName = "Microsoft Exchange";
          Write-ExchangeSetupLog -Info ("Retrieving mailboxes with Name=$name.");
          $mbxs = @(Get-Mailbox -Arbitration -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1 );
          if ($mbxs.Length -eq 0)
          {
          Write-ExchangeSetupLog -Info ("Retrieving mailbox databases on Server=$RoleFqdnOrName.");
          $dbs = @(Get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
          if ($dbs.Length -ne 0)
          {
          Write-ExchangeSetupLog -Info ("Retrieving users with Name=$name.");
          $arbUsers = @(Get-User -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1);
          if ($arbUsers.Length -ne 0)
          {
          Write-ExchangeSetupLog -Info ("Enabling mailbox $name.");
          $sysMbx = Enable-Mailbox -Arbitration -Identity $arbUsers[0] -DisplayName $dispName -database $dbs[0].Identity;
          }
          }
          }
          else
          {
          if ($mbxs[0].DisplayName -ne $dispName )
          {
          Write-ExchangeSetupLog -Info ("Setting DisplayName=$dispName.");
          Set-Mailbox -Arbitration -Identity $mbxs[0] -DisplayName $dispName -Force;
          }
          $sysMbx = $mbxs[0];
          }

          # Set the Organization Capabilities needed for this mailbox
          if ($sysMbx -ne $null)
          {
          # We need 1 GB for uploading large OAB files to the organization mailbox
          Write-ExchangeSetupLog -Info ("Setting mailbox properties.");
          set-mailbox -Arbitration -identity $sysMbx -UMGrammar:$true -OABGen:$true -GMGen:$true -ClientExtensions:$true -MailRouting:$true -MessageTracking:$true -PstProvider:$true -MaxSendSize 1GB -Force;
          }
          else
          {
          Write-ExchangeSetupLog -Info ("Cannot find arbitration mailbox with name=$name.");
          }
          }
          else
          {
          Write-ExchangeSetupLog -Info "Skipping creating E15 System Mailbox because of insufficient permission."
          }
          }
        " was run: "Database is mandatory on UserMailbox.".

When I ran the Get-Mailbox cmdlet to see the arbitration mailboxes I got the same warning.

image

 

Solution:

It was simple to deal with this. I just re-homed the arbitration mailbox which didn’t have database attribute stamped using Set-Mailbox cmdlet with –Database parameter.

Set-Mailbox “SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}” -Arbitration -Database “YourDatabaseNameHere”

image

After this Exchange 2013 SP1 installation was successful!

Have a good one until next time!

Written by Amit Tank

May 16, 2014 at 5:00 pm