Exchange Server Share

May 21, 2014

Sticky Post : Exchange Powershell Tip Of The Day

Filed under: PowerShell,Tips — Amit Tank @ 4:29 pm
Tags: , , ,

Exchange Powershell Tip #10

Find list of mailboxes which are having more than one primary SMTP address in an Exchange environment.

A mailbox can have only one Primary SMTP address, if it has more than one then it is not inconsistent state. You would get a warning message anyway in Exchange Management Shell when Shell tries to get information about the mailbox.

However if you want to find the list of mailboxes with more than one primary SMTP address in your environment then you can use below cmdlet.

ForEach ($Mailbox in (Get-Mailbox -ResultSize Unlimited)) { If(($Mailbox.EmailAddresses|Where{$_.PrefixString -ceq “SMTP”}).count -gt 1) {Write-Host $Mailbox.DisplayName “has multiple primary SMTP addresses”} }

Sample output:

#10-1

Now if you want to export the list of users into a text file then you can export using this cmdlet.

ForEach ($Mailbox in (Get-Mailbox -ResultSize Unlimited)) { If(($Mailbox.EmailAddresses|Where{$_.PrefixString -ceq “SMTP”}).count -gt 1) {$Mailbox.DisplayName | Out-File c:\temp\test.txt -Append } }

==>Note: This post is getting updated daily, get Old Exchange Powershell Tips from the Archive Here<==

July 27, 2014

Exchange Powershell Tip #10

Exchange Powershell Tip #10

Find list of mailboxes which are having more than one primary SMTP address in an Exchange environment.

(more…)

July 14, 2014

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!

June 12, 2014

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

June 2, 2014

Exchange Powershell Tip #09

Exchange Powershell Tip #09

How to find who has Full Mailbox access and/or Send As permission on various mailboxes in your environment?

Or

How to get the list of mailboxes on which someone has Full Mailbox access and/or Send As permission ?

(more…)

June 1, 2014

Exchange Powershell Tip #08

Exchange Powershell Tip #08

How to take LDAP dump of an Exchang object like Exchange Server, Mailbox Database, Public Folder Database, Mailbox, OWA Virtual Directory, Database Availability Group or Public Folder Hierarchies object? (more…)

Next Page »

The Rubric Theme. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 30 other followers