Exchange setup won't touch a server until every prerequisite is in place, and its readiness checks tell you exactly what's missing once you know how to read them. In this post I'll map the common prerequisite errors for Exchange Server Subscription Edition (SE) and Exchange Server 2019 to their fixes (UCMA 4.0, the Visual C++ runtimes, .NET Framework, the IIS URL Rewrite Module, Windows features and pending restarts) and show how to prove the server is ready before you run setup again.
Errors this guide fixes
Prerequisite Analysis FAILEDExchange setup (unattended)isn't installed on this computer and needs to be installed before Exchange Setup can beginExchange setup readiness checksMicrosoft Exchange Server setup cannot continue because a restart from a previous installation or update is pending.Exchange setup+1 more guide
Symptoms#
In the setup wizard, the Readiness Checks page lists one or more errors and you can't continue. An unattended run reports Prerequisite Analysis FAILED and then prints each failed check. Two messages you'll meet often (each appears on its own when that check fails):
The Windows component RSAT-Clustering-CmdInterface isn't installed on this computer and needs to be installed before Exchange Setup can begin.
Microsoft Exchange Server setup cannot continue because a restart from a previous installation or update is pending.Missing Windows features are reported in the first form, with the feature's name. A missing UCMA 4.0 runtime (Microsoft documents this readiness check as UcmaRedistMsi), missing Visual C++ runtimes, a missing IIS URL Rewrite Module or an unsupported .NET Framework release each raise their own readiness error that names the component, usually with a download link. Every check is also written to C:\ExchangeSetupLogs\ExchangeSetup.log.
Why it happens#
Setup runs its readiness checks before it changes anything, and a single failed check blocks the install or upgrade. Microsoft Learn publishes one prerequisite list for Exchange 2019 and SE that applies to every supported Windows Server version; the only split is Desktop Experience versus Server Core (Exchange 2016 has its own page). For a Mailbox server:
| Prerequisite | Needed for | Typical reason it's missing |
|---|---|---|
| Supported .NET Framework release | All roles | The image carries a release that the supportability matrix doesn't list for your build. Unlisted releases, including minor and update-level ones, are unsupported. |
| Visual C++ 2012 and 2013 redistributables (x64) | 2012: all roles. 2013: Mailbox | Only one of the two installed, or the x86 package instead of x64. |
| Server Media Foundation feature + UCMA 4.0 Core Runtime | Mailbox | UCMA attempted before the feature was added, or a different UCMA package than the one shipped on the Exchange media. |
| IIS URL Rewrite Module | Mailbox | Required since the September 2021 CUs (2019 CU11, 2016 CU22); the Emergency Mitigation service uses it to apply URL rewrite mitigations. |
| Windows features (IIS, WCF activation, clustering tools, RSAT-ADDS) | Mailbox (Edge Transport needs ADLDS) | Server built from a minimal template. |
| No pending restart | All roles | Windows Update, a feature install or an earlier Exchange update still waiting for a restart. |
Two more requirements catch people out: the Remote Registry service must be set to Automatic (never Disabled), and Message Queuing (MSMQ) is no longer required, so you can remove it if an old build guide added it.
How to fix it#
1. Get the complete list of failures#
Fix everything in one pass instead of rerunning setup for each error:
Select-String -Path 'C:\ExchangeSetupLogs\ExchangeSetup.log' -Pattern '\[ERROR\]' |
Select-Object -Last 20 | ForEach-Object Line2. Clear the pending restart first#
Restart the server and run setup again before you install anything else. If the message survives several restarts, Microsoft's guidance is to run the Health Checker and the SetupAssist.ps1 script to see what is still flagged. You can also read the usual Windows markers yourself:
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending',
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired' |
ForEach-Object { '{0} = {1}' -f $_, (Test-Path $_) }
(Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager').PendingFileRenameOperationsIf PendingFileRenameOperations keeps coming back after restarts, find out which software writes it rather than deleting the value blindly.
3. Add the Windows features#
The easiest route is to let setup add them with /InstallWindowsComponents (or the matching check box in the wizard); components added this way don't need an extra restart:
D:\Setup.exe /Mode:Install /Roles:Mailbox /InstallWindowsComponents /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFFTo check and add them yourself on a Desktop Experience server (on Server Core, leave out RSAT-Clustering-Mgmt, Web-Mgmt-Console and Windows-Identity-Foundation):
$features = 'Server-Media-Foundation','NET-Framework-45-Core','NET-Framework-45-ASPNET',
'NET-WCF-HTTP-Activation45','NET-WCF-Pipe-Activation45','NET-WCF-TCP-Activation45',
'NET-WCF-TCP-PortSharing45','RPC-over-HTTP-proxy','RSAT-Clustering','RSAT-Clustering-CmdInterface',
'RSAT-Clustering-Mgmt','RSAT-Clustering-PowerShell','WAS-Process-Model','Web-Asp-Net45',
'Web-Basic-Auth','Web-Client-Auth','Web-Digest-Auth','Web-Dir-Browsing','Web-Dyn-Compression',
'Web-Http-Errors','Web-Http-Logging','Web-Http-Redirect','Web-Http-Tracing','Web-ISAPI-Ext',
'Web-ISAPI-Filter','Web-Metabase','Web-Mgmt-Console','Web-Mgmt-Service','Web-Net-Ext45',
'Web-Request-Monitor','Web-Server','Web-Stat-Compression','Web-Static-Content',
'Web-Windows-Auth','Web-WMI','Windows-Identity-Foundation','RSAT-ADDS'
Get-WindowsFeature -Name $features | Where-Object { -not $_.Installed } | Select-Object Name
Install-WindowsFeature -Name $features4. Install the runtimes in order#
- .NET Framework: the release the Exchange supportability matrix lists for your build and Windows Server version. Restart afterwards.
- Visual C++ 2012 and 2013 redistributables, x64: a Mailbox server needs both.
- UCMA 4.0 Core Runtime: only after Server Media Foundation is installed. Use the package in the
\UCMARedistfolder of the Exchange ISO; on Server Core it's the one you must use. - IIS URL Rewrite Module 2.1 (x64 installer): after IIS is installed.
Then confirm what Windows actually has:
(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full').Release # 528040+ = 4.8, 533320+ = 4.8.1
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' |
Where-Object DisplayName -match 'Visual C\+\+ 201[23]|Unified Communications Managed API|URL Rewrite' |
Sort-Object DisplayName | Select-Object DisplayName, DisplayVersion5. Run setup again from an elevated prompt#
Start setup with an explicit path to the mounted ISO, such as D:\Setup.exe (or .\Setup.exe from the ISO root in PowerShell). On a server that already runs Exchange, a bare setup.exe can launch the copy in the Exchange Bin folder, because that folder is on the system path.
Tip: Building a new server? Make it Exchange SE. Exchange 2016 and 2019 reached end of support on 14 October 2025 (see your options after end of support).
Verify the fix#
- The unattended run shows
Prerequisite AnalysisasCOMPLETEDand continues with the role installation; the wizard's readiness page shows no errors. - The feature query in step 3 returns nothing, and the runtime query lists the 2012 and 2013 x64 redistributables, UCMA 4.0 and URL Rewrite.
- After installation, the Exchange Health Checker reports a supported .NET Framework release and no pending restart.
Prevent it next time#
- Build Exchange servers from a script or checklist that installs the features and runtimes above, then patch Windows and restart before you mount the Exchange ISO.
- Check the supportability matrix before a new .NET Framework release reaches your Exchange servers.
- If your AD team owns the schema, prepare Active Directory as a separate step: see PrepareSchema and PrepareAD errors.
- If an upgrade fails after the readiness checks pass, see recovering a failed Exchange upgrade.

