Tuesday, July 4, 2017

Using PowerShell To Retrieve IP Addresses for Exchange Servers

Hi Folks,

In this short post I will share with you a command on how to retrieve list of IP addresses for your Exchange servers. As you will see below it's very straightforward. It simply pipes all hostnames and then resolves each of them from DNS:

Get-ExchangeServer  |foreach {Resolve-DnsName $_.Name -NoHostsFile -Type A} |select Name,IPAddress

You will get a nice output like below:

Alternatively you can use Export-Csv command to export your results to CSV file if you need any further processing or reporting of this data.


Tuesday, June 20, 2017

Quickly Checking Account Lockout State

Hi folks,

In this very quick post I wanted to share with you a quick retrieving of the account lockout status for an user account in the AD. It can be found by running the below simple command:

Get-ADUser "User1" -Properties LockedOut |select Name,LockedOut

And will result in a simple output as below:

If the value for the LockedOut is False then account is not locked and if it is True, then it is locked. Which is pretty obvious.


Tuesday, June 6, 2017

Cumulative Updates and Recovery Databases

Hi folks,

I want to share about another adventure which I have had with the installation of the latest CU on Exchange 2016. During installation of CU and in particular during configuration of the Mailbox services component installation failed with the error as below:

In couple of words at this stage installation is checking availability of the arbitration mailboxes, and if they're not available, it tries to create them and configure quotas and SCL related settings.

According to this error for some reason Exchange setup program has attempted to configure arbitration mailbox in the recovery database. Probably it was the first retrieved from the list of DBs located on the server and since recovery DB can't store mailboxes setup program had failed.

In my case to solve it I had to remove it by running a command similar the the below:

Get-MailboxDatabase "RecoveryDB001" |Remove-MailboxDatabase -Confirm:$false

After this installation should proceed.

However in my cases there was a problem with AD replication and it was not properly removed from the AD. Therefore the error above would still pop up at every time I tried to re-run the installation program. In the log I have discovered domain controller which install program tried to use and navigated to the path of the DB as below:

CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=CONTOSO,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=contoso,DC=com

After manual deletion of a DB object from the AD installation had proceeded successfully.


Save Your Time Typing Local Hostname

Hi folks,

This is probably my shortest blog post. If you are just lazy as I am and if you employ a hard-to-remember naming convention for your computers and servers there is a default variable $env:COMPUTERNAME which retrieves local computers hostname. So for example if you want to run a command to check health of the local Exchange server this command will be at your disposal:

Get-ServerComponentState -Identity $env:COMPUTERNAME


Friday, June 2, 2017

Another BackEnd Site Fixing (This Time for PowerShell)

Hi folks,

I have already shared in this post about my adventures with Exchange Management Shell and other CAS protocols which are caused by misconfigured back end web site on an Exchange 2016 Mailbox server.

Recently I have had yet another adventure. When launching Exchange Management Shell I saw the following error and PowerShell connected to another Exchange server in the same AD site:

Furthermore, I have discovered in the Application log the error event 1003 for Microsoft Front End HTTP Proxy followed by the warning event 1309 for ASP.NET:

My investigation has lead me to this article according to which this is caused by misconfigured certificate on the Exchange Back End web site. This can be easily seen when the binding for port 444 is checked:

All you need to do is to select the self signed certificate with the friendly name of "Microsoft Exchange" and click OK button:

After this you will need to run IIS reset or restart the server after which Exchange Management Shell can be accessed and used again.


Thursday, June 1, 2017

Mailbox Exports Preventing Exchange 2010 Uninstallation

Hi folks,

In this quick post I would love to share with you about my recent adventure. When uninstalling Exchange 2010 binaries I faced the following error:

This error is self-explanatory and the below command  should be executed for each mailbox database that is displayed in error message:

Get-MailboxExportRequest | ?{ $_.RequestQueue -eq "DB01" }. | Remove-MailboxExportRequest 

After which mailbox database can be removed:

Remove-MailboxDatabase DB01 -Confirm:$false


Wednesday, May 17, 2017

CAS Services and Remote PowerShell Fail on An Exchange 2016 Box

Hi folks,

In this quick post I will share with you about fixing the error when CAS authentication related modules fail to start on a freshly installed Exchange 2016 server. When launching remote PowerShell I was greeted with the below error and redirected to another server in the same AD site:

Furthermore in the Event Log you will see that the error of loading DLL files for OWA authentication and failure of starting Exchange BackEnd site (ID 2268 and 2214):

This article became very helpful. It pointed me to the missing path to the Exchange bin folder in the Path variable. On the server I was working on it was missing along with the other folders including paths to system folders. So from a healthy Exchange server I copied values of the Path variable and pasted them to the broken server, In my case it was something like below (in real life this of course may vary):

; ;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Dell\SysMgt\oma\bin;C:\Program Files\Dell\SysMgt\shared\bin;C:\Program Files\Dell\SysMgt\idrac;C:\Program Files (x86)\Symantec\Data Center Security Server\Agent\IPS\bin;C:\Program Files\BMC Software\Control-M Agent\Default\exe;C:\Program Files\HP\HP BTO Software\lib;C:\Program Files\HP\HP BTO Software\bin;C:\Program Files\HP\HP BTO Software\bin\win64;C:\Program Files\HP\HP BTO Software\bin\win64\OpC;C:\Program Files\Microsoft\Exchange Server\bin;C:\Program Files\Microsoft\Exchange Server\Bin\Search\Ceres\Native\;C:\Program Files\Microsoft\Exchange Server\Scripts;C:\Program Files\Microsoft\Exchange Server\Scripts

I hope you will find this time saving for your troubleshooting and fixing activity.