skip to Main Content

Check Exchange Server before running Exchange Cumulative Update

What is an excellent way to check the Exchange Server before applying an Exchange Cumulative Update? Many issues can happen when you run the Exchange Cumulative Update on the Exchange Server, leaving the Exchange Server in a failed state. It’s good to know that the Exchange Server is in good condition before running the Exchange CU setup. Let’s look at how to check Exchange Server before installing the Cumulative Update.

Exchange Server Setup Assist PowerShell script

The Exchange Server Setup Assist script helps detect common configuration issues that cause Exchange Server Cumulative Update installation issues and other issues caused by a simple configuration change within an Exchange Environment.

The SetupAssist.ps1 PowerShell script will gather the following information on the Exchange Server:

  1. Current Logged on User and SID
  2. Are you running as an Administrator
  3. Member of Domain Admins
  4. Member of Schema Admins
  5. Member of Enterprise Admins
  6. Member of Organization Management
  7. Current PowerShell Execution Policy setting
  8. Exchange Services Status
  9. Computers Container Exists
  10. Checks to see if you are missing files in the installer cache
  11. More than 1 powershell.exe process is up and running
  12. If a reboot is pending. (Add -Verbose to see where)
  13. The current AD level of readiness for CU upgrading. Displays warnings if a mismatch is detected.

Download and prepare Setup Assist PowerShell script

Download SetupAssist.ps1 PowerShell script from GitHub and place it on the Exchange Server C:\scripts folder. If you don’t have a scripts folder, create one. Ensure that the file is unblocked to prevent errors when running the script. Read more in the article Not digitally signed error when running PowerShell script.

Run Setup Assist PowerShell script

Run PowerShell as administrator. Change the directory path to C:\scripts and run the script.

Note: Run the SetupAssist.ps1 PowerShell script from the Exchange Server where you want to install Exchange Cumulative Update.

PS C:\> cd C:\scripts
PS C:\scripts> .\SetupAssist.ps1
Setup Assist Version

TestName                             Result   Details
--------                             ------   -------
Exchange AD Latest Level             Failed   At Exchange 2019 CU10
Prepare AD Requirements              Failed   Schema Master:        DC01-2019.exoip.local
                                              Schema Master Domain: exoip.local
                                              Schema Master Site:   Default-First-Site-Name
                                              Local Server:         EX01-2019.exoip.local
                                              Local Server Domain:  exoip.local
                                              Local Server Site:    Default-First-Site-Name
User Administrator                   Passed   exoip\administrator S-1-5-21-288954866-3807497283-1560389301-500
Organization Management              Passed   EXOIP\Organization Management S-1-5-21-288954866-3807497283-1560389301-1104
Domain Admins                        Passed   EXOIP\Domain Admins S-1-5-21-288954866-3807497283-1560389301-512
Enterprise Admins                    Passed   EXOIP\Enterprise Admins S-1-5-21-288954866-3807497283-1560389301-519
Execution Policy                     Warning  RemoteSigned
Exchange Services                    Passed
Services Cache Files                 Passed
Computers Container Exists           Passed   DC=exoip,DC=local
DC DNS Host Name                     Passed   DC01-2019.exoip.local
Multiple Active Sync Vdirs Detected  Passed
Msi Cache File                       Passed
IIS URL Rewrite                      Passed   Installed Version 7.2.1993
Microsoft Visual C++ 2012            Passed   Visual C++ 2012 Redistributable
Microsoft Visual C++ 2013            Passed   Visual C++ 2013 Redistributable
Other Well Known Objects             Passed
Pending Reboot                       Failed   HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Valid Home MDB                       Passed

-----Results That Didn't Pass-----

     TestName                  Details                                              ReferenceInfo
     --------                  -------                                              -------------
     Exchange AD Latest Level  At Exchange 2019 CU10                                Latest Version is Exchange 2019 CU11. More Info:

     Prepare AD Requirements   Schema Master:        DC01-2019.exoip.local          Run /PrepareAD from this computer
                               Schema Master Domain: exoip.local
                               Schema Master Site:   Default-First-Site-Name
                               Local Server:         EX01-2019.exoip.local
                               Local Server Domain:  exoip.local
                               Local Server Site:    Default-First-Site-Name

     Execution Policy          RemoteSigned

     Pending Reboot            HKLM:\SYSTEM\CurrentControlSet\Control\Session

Setup Log Reviewer Results

Setup.exe Run Date: 12/12/2021 13:20:54
Setup.exe Build Number: 15.2.922.7
The most recent setup attempt completed successfully based off this line:
[12/12/2021 13:37:15.0011] [0] The Exchange Server setup operation completed successfully.

No Action is required.

The same as the above output, but in a screenshot.

Check Exchange Server before running Exchange Cumulative Update SetupAssist PowerShell script

The output shows the results:

  • Passed: You’re all set.
  • Warning: Look into it.
  • Failed: Fix them!

In our example, it shows a warning which we can ignore. But, we have to fix the errors. To do that, we will:

  1. Prepare Active Directory and domains for Exchange Server
  2. Reboot the Exchange Server

After both tasks, we can install Exchange Server Cumulative Update on the Exchange Server.


You learned how to check Exchange Server with the SetupAssist.ps1 PowerShell script. Run the script before running Exchange Cumulative Update and fix the failed issues. You can also run the script before installing Exchange Server on a Windows Server to validate the overlooked prerequisites. It’s an excellent PowerShell script that you must have in your collection.

Did you enjoy this article? You may also like Exchange Server setup operation didn’t complete. Don’t forget to follow us and share this article.



ALI TAJRAN is a passionate IT Architect, IT Consultant, and Microsoft Certified Trainer. He started Information Technology at a very young age, and his goal is to teach and inspire others. Read more »

This Post Has 13 Comments

  1. Ali, your tutorials are awesome.

    I ran into a problem. I ran the setupassistant v22.08.29.2008. I get an error for prepare AD requirements and the Valid home MDB. For the prepared AD requirements, do I run /update schema from the exchange server or another workstation? I ran it from another workstation and everything shows the AD is up to date.
    For the valid home MDB error, it says to run “Set-Mailbox “DN” -Database ‘db_Name’. For ‘db_name’, do I choose one of my databases or literally db_name”? Thanks again

  2. Hi Ali,
    Thanks for essay.we did all step then we did re-run the scripts.We did encounter with same problem.
    like the below ;
    ——– ——- ————-
    Exchange AD Latest Level
    DN Value: CN=ISTIF,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=istif,DC=local Version: 16759 Mismatch detected
    More Info:
    DN Value: CN=ms-Exch-Schema-Version-Pt,CN=Schema,CN=Configuration,DC=istif,DC=local Version: 17003

    DN Value: CN=Microsoft Exchange System Objects,DC=istif,DC=local Version: 13243

    Prepare AD Requirements Schema Master: 2019ADDC.istif.local Run /PrepareAD from this computer
    Schema Master Domain: istif.local
    Schema Master Site: Default-First-Site-Name
    Local Server: 2019EXCH.istif.local
    Local Server Domain: istif.local
    Local Server Site: Default-First-Site-Name

    What we can do ?
    thanks again

  3. Hello
    Try to run script and get error:
    [02/15/2022 12:18:37] : Working on test Test-ExchangeADSetupLevel
    [02/15/2022 12:18:39] : Failed to properly run Test-ExchangeADSetupLevel
    [02/15/2022 12:18:39] : System.Management.Automation.RuntimeException: Не удается индексировать в массив NULL.
    в System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext, Exception exception)
    в System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame)
    в System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
    в System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
    [02/15/2022 12:18:39] : в TestPrepareAD, C:\scripts\SetupAssist.ps1: строка 237
    в TestReadyLevel, C:\scripts\SetupAssist.ps1: строка 311
    в Test-ExchangeADSetupLevel, C:\scripts\SetupAssist.ps1: строка 412
    в RunAllTests, C:\scripts\SetupAssist.ps1: строка 3598
    в Main, C:\scripts\SetupAssist.ps1: строка 3608
    в , C:\scripts\SetupAssist.ps1: строка 3686

    User is Schema and Enterprise Admin.

      1. Yes, I was runnig the script on the Exchange Server. We have 3 Exchange 2016 CU19 servers and 1 Exchange 2013 CU23 server. The result the same on each server.

  4. hello

    very good article, but i have one question, it doesnt work so good, with exchange in split-permissions, because in my case i have to see if the cumulative update contains schema changes or not before
    if not, i dont need to be domain admin or schema admins to install cumulative updates.
    if yes, i have to ask tier0 admin to do manual schema update for me (setup.exe)

    1. If a separate team manages Active Directory (in your case), they have to:

      1. Extend the Active Directory schema for Exchange Server
      2. Prepare Active Directory for Exchange Server
      3. Prepare Active Directory domains for Exchange Server

      Find the above three steps in the article Prepare Active Directory and domains for Exchange Server.

      You can then run the Cumulative Update without being a member of the Schema Admins and Enterprise Admins security groups.

Leave a Reply

Your email address will not be published. Required fields are marked *