Your Exchange Server infrastructure needs to stay up to date because of vulnerabilities, new features,…
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.
Table of contents
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:
- Current Logged on User and SID
- Are you running as an Administrator
- Member of Domain Admins
- Member of Schema Admins
- Member of Enterprise Admins
- Member of Organization Management
- Current PowerShell Execution Policy setting
- Exchange Services Status
- Computers Container Exists
- Checks to see if you are missing files in the installer cache
- More than 1 powershell.exe process is up and running
- If a reboot is pending. (Add -Verbose to see where)
- The current AD level of readiness for CU upgrading. Displays warnings if a mismatch is detected.
Note: The script works for Exchange Server 2013/2016/2019.
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 and run the script.
Note: Run the SetupAssist.ps1 PowerShell script from the Exchange Server where you want to install Exchange Cumulative Update.
C:\scripts\.\SetupAssist.ps1
It will collect all the information and display it in the PowerShell output.
Setup Assist Version 22.01.14.0319
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:
https://aka.ms/SA-ExchangeLatest
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 https://aka.ms/SA-RebootPending
Manager\PendingFileRenameOperations
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.
The output shows the results:
- Passed: You’re all set.
- Warning: Look into it.
- Failed: Fix them!
In our example, it shows a warning that we can ignore. But we have to fix the errors. To do that, we will:
- Prepare Active Directory and domains for Exchange Server
- Reboot the Exchange Server
After both tasks, we can install Exchange Server Cumulative Update on the Exchange Server.
Conclusion
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.
Hi Ali,
I ran the SetupAssist.ps1 script but it didn’t report back the Prepare AD requirements. Is there a switch I have to include to get that info? This is what I have as the output:
User Administrator Passed taslanpour S-1-5-21-xxx
Exchange AD Level Passed Exchange 2019 CU11 Feb23SU
Execution Policy Warning RemoteSigned
Exchange Services Warning
Services Cache Files Passed
Computers Container Exists Passed
DC DNS Host Name Passed
Multiple Active Sync VDirs Detected Passed
Install Watermark Passed
Msi Cache File Passed
IIS URL Rewrite Passed Installed Version 7.2.1993
UCMA Installed Passed Installed Version: 5.0.8308.0
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
If it doesn’t appear, it means the AD requirements are set correctly.
Can I run this script on Exch 2016?
Yes, the script works for Exchange Server 2013/2016/2019.
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
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: https://learn.microsoft.com/en-us/Exchange/plan-and-deploy/prepare-ad-and-domains?view=exchserver-2019
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
Thanks a lot for very detailed explanation. This is really useful to me. Thanks once again.
Thanks So much Ali
Great as Always ????????
Thanks, Ali. Glad that you like it.
Thanks Ali you are a real hero. Too much learning I am gaining from your blog. Keep it up.
Glad to hear that, Ali. Thank you for the kind words.
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)
or?
pierre
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.