Exchange Server VM becomes unresponsive – FIX

Exchange Server VM becomes unresponsive – FIX

Sometimes when performing exchange server updates after rebooting the server it will hang on ‘Getting Windows Ready’ then sometimes when logging in it may lock up again and become unresponsive.
This is a common issue with Exchange 2013 and Windows Server 2012 R2 Operating System.

Follow the guide below to resolve this issue.

I restarted VM few times, but the Exchange Server VM was unusable.

 

The best solution is to enter Boot Menu and run VM in Safe Mode.
For this we have to boot VM from Windows Server 2012 R2 ISO and instead of Install option, we select Repair your computer.
After selecting Troubleshoot, we enter Command Prompt.

We enable Boot Menu on our Windows Server 2012 R2 OS of Exchange Server VM by entering commands:
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 15

After VM reboot, we can enter Boot Menu by pressing F8 and select Safe Mode option.

 

In Safe Mode Exchange Server VM starts without problems.

Go into Services and disable all Exchange Services on VM (by changing Start-up Type of services to Manual). After this reboot the VM in normal way and machine will start.
Re-enable Exchange Services again (by changing Start-up Type of services to Automatic) and reboot VM.

The Exchange Server should now boot up straight away without being stuck at the ‘Getting Windows Ready’ screen

Microsoft Exchange Services disabled after windows updates

Microsoft Exchange Services disabled after windows updates

Post Windows Updates you may notice Microsoft Exchange services and other dependent services are disabled you can check this by viewing services.msc

Execute the powershell commands below on the Exchange Server to get the services up and running.

First, we have to know which services there are and which need to have their startup type changed. I used the Get-Service cmdlet to find out. In my case, I was just interested in the Exchange Services, so I needed to filter them with the following command:
Get-Service | Where-Object { $_.DisplayName –like “Microsoft Exchange *”} | ft Name,Status

The output told me which services needed to have their startup type changed. To do that, I only had to change the entry after the last Pipe. (To change the startup type I don’t need a displayed output, but I need to change the startup type for the selected services.) This I did with the following cmdlet:
Get-Service | Where-Object { $_.DisplayName –like “Microsoft Exchange *” } | Set-Service –StartupType Automatic

The Exchange Services startup type was changed from disabled to automatic. But they were still not running. To start the services, we can use the following cmdlet:
Get-Service | Where-Object { $_.DisplayName –like “Microsoft Exchange *” } | Start-Service

 

Next step, IIS

After the Exchange Services have all changed their startup type and status, we are almost done. There is another service we also have to think about IIS

To edit the IIS Admin Service, we can follow the same concept as we did with the Exchange Services. First, we need to identify the services and set the startup type to automatic. For that, we can use this cmdlet:
Get-Service | Where-Object { $_.DisplayName –eq “IIS Admin Service” } | Set-Service –StartupType Automatic
Last but not least, we also need to start IIS Admin Service. This we can do with the following cmdlet:
Get-Service | Where-Object { $_.DisplayName –eq “IIS Admin Service” } | Start-Service

 

Modify Remote Desktop Server Idle Timeout and Keep alive – GPO

Modify Remote Desktop Server Idle Timeout and Keep alive – GPO

How to modify RDS Idle Timeout and Keep alive time so users don’t get disconnected.

Logon to the RDS server in question.

 

Open local group policy

Win Key + R > gpedit.msc

Browse to Computer Config > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections (enable keep alive)

Select Enabled for ‘Configure keep-alive connection interval’

Then browse to Computer Config > Admin Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Session Time Limits.

Select the option shown below and enter a time limit that you see fit.

Repeat the same for the User Configuration

Browse to User Configuration\Policies\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Session Time Limits 

Select the option shown below and enter a time limit that you see fit.

 

Apply gpupdate /force via Powershell or Command Prompt on the RDS Server

 

 

Microsoft Exchange 2013 OWA & ECP Blank Screen – FIX

Microsoft Exchange 2013 OWA & ECP Blank Screen – FIX

Firstly check to see if IIS is running via services.msc

If you attempt to start the IIS service and it fails you may get the following error message in Event Viewer

The Windows Process Activation Service encountered an error trying to read configuration data from file’\\?\Windows\system32\inetsrv\config\applicationHost.config, line number

If so, navigate to C:\inetpub\history than the latest subfolder and copy the applicationHost.config and copy it to C:\Windows\system32\inetsrv\config\ then restart the World Wide Web Publishing Server and the related others, or reboot the server.

Microsoft Exchange Services Disabled after windows updates – FIX

Microsoft Exchange Services Disabled after windows updates – FIX

Post Windows Updates you may notice MS Exchange services and other dependent services are disabled you can check this by viewing services.msc

Execute the powershell commands below on the Exchange Server to get the services up and running.

First, we have to know which services there are and which need to have their startup type changed. I used the Get-Service cmdlet to find out. In my case, I was just interested in the Exchange Services, so I needed to filter them with the following command:
Get-Service | Where-Object { $_.DisplayName –like “Microsoft Exchange *”} | ft Name,Status

The output told me which services needed to have their startup type changed. To do that, I only had to change the entry after the last Pipe. (To change the startup type I don’t need a displayed output, but I need to change the startup type for the selected services.) This I did with the following cmdlet:
Get-Service | Where-Object { $_.DisplayName –like “Microsoft Exchange *” } | Set-Service –StartupType Automatic

The Exchange Services startup type was changed from disabled to automatic. But they were still not running. To start the services, we can use the following cmdlet:
Get-Service | Where-Object { $_.DisplayName –like “Microsoft Exchange *” } | Start-Service

Next step, IIS

After the Exchange Services have all changed their startup type and status, we are almost done. There is another service we also have to think about – IIS.

To edit the IIS Admin Service, we can follow the same concept as we did with the Exchange Services. First, we need to identify the services and set the startup type to automatic. For that, we can use this cmdlet:
Get-Service | Where-Object { $_.DisplayName –eq “IIS Admin Service” } | Set-Service –StartupType Automatic
Last but not least, we also need to start IIS Admin Service. This we can do with the following cmdlet:
Get-Service | Where-Object { $_.DisplayName –eq “IIS Admin Service” } | Start-Service

Open chat
IT Security Solutions
Hello 👋
Can we help you?