As mentioned in the release posts for Exchange 2013 CU16 and Exchange 2016 CU5, both of these Exchange versions now require .NET framework 4.6.2 on all supported OS platforms. This post focusses on Windows 2012 and 2012 R2 installations, see note below about Windows 2016.
Update 25-1-2018 Since the older versions of Exchange 2013 and 2016 CUs are no longer available, the Exchange Support Matrix has been updated with the below:
When upgrading Exchange from an unsupported CU to the current CU and no intermediate CUs are available, you should upgrade to the latest version of .NET that's supported by Exchange first and then immediately upgrade to the current CU. This method doesn't replace the need to keep your Exchange servers up to date and on the latest, supported, CU.
Microsoft makes no claim that an upgrade failure will not occur using this method, which may result in the need to contact Microsoft Support Services.
Exchange setup will check for the presence of the required .NET framework, if not present setup will halt.
This is also true when extending the AD Schema and preparing Active Directory. If the machine where you are running the AD preparation commands does not have the required .NET framework, then the installer will log an error. In the below example a Windows 2012 R2 domain controller, the Schema Master FMSO role holder, was used to initiate the PrepareSchema command. This failed due to .NET not being updated on that server where the Exchange 2013 CU16 setup command was being executed:
setup.exe /IAcceptExchangeServerLicenseTerms /PrepareSchema
For make benefit, most glorious search engines:
Microsoft Exchange Server 2013 Cumulative Update 16 Unattended Setup
Copying Files...
File copy complete. Setup will now collect additional information needed for installation.
Performing Microsoft Exchange Server Prerequisite Check
Prerequisite Analysis FAILED
This computer requires .NET Framework 4.6.2 (https://support.microsoft.com/kb/3151802).
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.MinimumFrameworkNotInstalled.aspx
The Exchange Server setup operation didn't complete. More details can be found in ExchangeSetup.log located in the<SystemDrive>:ExchangeSetupLogs folder.
If setup was launched on a Exchange server which was missing the .NET update, the same error will be logged. This will be after the additional pre-flight checks are performed.
Verify .NET Framework Version Installed
MSDN documents How to: Determine Which .NET Framework Versions Are Installed. In the .NET 4.5 and 4.6 versions we can review the Release key in the registry which is located under:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
Consult the MSDN reference article for all of the details. In short, current server versions will typically report the below values. If you do not have a value of 394806 on a Windows 2012 R2 system then it is time to upgrade .NET.
Release | Operating System | .NET Version |
394271 | Non Server 2016 Systems | 4.6.1 |
394802 | Windows Server 2016 | 4.6.2 |
394806 | Non Server 2016 Systems | 4.6.2 |
461308 | Windows Server 2016 | 4.7.1 |
461310 | Non Server 2016 Systems | 4.7.1 |
461308 | Windows Server 2016 | 4.7.2 |
461814 | Non Server 2016 Systems | 4.7.2 |
528040 | Windows 10 2019 H1 & H2 | 4.8 |
528372 | Windows 10 H1 | 4.8 |
528049 | Windows Server Server | 4.8 |
We can check this quickly using PowerShell:
Get-ItemProperty -Path "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" | Format-List Release
However, before upgrading .NET please review the next section.
Upgrading to Exchange 2013 CU16 or Exchange 2016 CU5
Since .NET 4.62 framework support was first added in Exchange 2013 CU15 and Exchange 2016 CU4 (for Windows Server 2012 and 2012 R2) this adds an upgrade step. Framework 4.6.2 is not supported on earlier versions of Exchange when installed on Windows 2012 and Windows 2012 R2. Exchange 2016 CU3 when installed onto Windows Server 2016 required .NET 4.6.2 though at the time of writing most customers are not in this position.
This means that you must consider the currently installed CU and also the currently installed .NET framework when planning this upgrade.
Ideally Exchange 2013 servers will already be on CU15, and Exchange 2016 servers will already be on CU4. If this is the case then .NET can be upgraded prior to installing Exchange 2013 CU16 and Exchange 2016 CU5. However if this is not the case then you cannot upgrade directly to the latest CU, you must:
-
Upgrade to Exchange 2013 CU15 or Exchange 2016 CU4
-
Only then perform the .NET upgrade to 4.6.2
-
Then upgrade to Exchange 2013 CU16 or Exchange 2016 CU5
Note: If upgrading to a newer CU, doing .NET upgrade and then to a later CU be sure to allow time for the .NET optimisation process to complete after .NET upgrade. The .NET upgrade requires a reboot, and after the OS has restarted Exchange setup cannot start until the .NET optimisation process has completed. This may take 30 minutes - see comments about running ngen.exe to speed this process up
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1 ngen.exe executeQueuedItems
Please plan accordingly to ensure that .NET and Exchange are updated correctly in the right order. You may also need to update additional machines if you require that separate teams must execute the AD and domain preparation steps. This is common in larger customers, since the Exchange administrators will not have Enterprise Admin or Schema Admin rights in AD.
After updating .NET to 4.6.2 on the Schema Master, the Active Directory and domains can now be prepared.
Cheers,
Rhoderick