It all started when Microsoft decided to push .NET Framework 4.5.2 (KB2934520) update as an “Important” update to Windows computers.
My customer in good faith installs all important updates on his 2012R2 Server which is running Exchange 2013 CU6.
After an reboot he is unable to receive any emails and ECP and OWA throws an HTTP 500 error.
After some digging NET Framework 4.5.2 is only supported on CU7 or later https://technet.microsoft.com/en-us/library/ff728623(v=exchg.150).aspx
So we decide to install CU7. Which I had done in several environments without any issues.
But this standalone Exchange would prove otherwise.
Long story short: during the upgrade, each role disables all the Exchange Services during the upgrade and cannot start them up again after the role upgrade to continue.
We tried to set all the services back to automatic but still the installation failed.
The solution was to set the services to manual after each role Upgrade.
I used Craigs powershell line to do this for me:
Get-Service MSExchange* | Set-Service -Startuptype manual
And when you are done you must set the services back to automatic
Get-Service MSExchange* | Set-Service -Startuptype automatic
Update: Before you start the Installation take a look at what Exchange Services are set to automatic, because the command get-service will set all Exchange Services to automatic. You might want to set some services to manual like pop or imap.