Exchange 2013 CU22 Shows as CU20 Add Remove Programs

Ran into an oddity I thought I would share. After installing and verifying a customer’s Exchange 2013 CU22 upgrade using PowerShell, I handed the servers over to the customer. Sometime in the next week the customer contact me to verify I installed the correct CU. Thinking this was rather strange, he shared a screenshot of Add Remove Programs with it clearly showing CU20 as the installed version. I logged into the server and indeed it was incorrect. PowerShell, however, had the version correct at 15.00.1473.3. I then ran the install in a lab, same result. Add Remove Programs was wrong and PowerShell was correct:

After a bit of research, it appears that this is a known issue:

Exchange 2013 CU22 Shows Incorrect Name In Add/Remove Programs

Checking previous and current releases of Exchange, I do not see any other versions that are like that. Not sure how that slipped through QA, but there are other examples of these little things that slip through Microsoft’s QA from time to time. At least this isn’t a major issue.

.NET Versions and Exchange

Microsoft has their own Exchange Supportability Matrix which covers many parts of what is supported with a particular version of Exchange. What you will find is that some charts that are included are a bit wanting. A Lot of older and historical information has been pulled. A fellow MVP, Michel de Rooij posted a a good reference chart for Exchange servers. From that I created a new one and separated all CU’s out and updated it to include the newest CU’s released in June 2019. The chart will look like this:

I plan to bookmark this on the menu bar of my blog to be used as a good reference. If you like it, please make sure to leave feedback. Thanks!

Updated Exchange 2013 Prerequisite Script Updated to v1.20

** UPDATE **

I had gotten so accustomed to working with newer OS’s like Windows 2016 and 2019, that I had forgotten how much of a pain .NET is for Windows 2012 R2. So when I re-wrote the code for the script I assumed I no longer needed some of the hotfixes that were used for .NET 4.7.1. Boy was I wrong. So, if you can avoid not downloading this script yet, I am re-testing the hotfixes to see what works with 4.7.2 and 4.8 for Windows 2012 R2. Thanks for understanding….

to the Original Article**

Microsoft has continues to release Exchange 2013 updates, so in that spirit I’ve decided to keep the Exchange 2013 Prerequisite Script up to date. If you read my blog, you may have noticed the recent updates for my Exchange 2016 and 2019 scripts. Any supported updates were incorporated in the 2013 script. I also took some effort to sweep out old code, reorganize all functions and add some missing features. So, if you are installing a newer version of Exchange 2013, this script is for you. The default option is .NET 4.7.2 for now, until Microsoft requires the change to .NET 4.8. There is an options to install 4.8 as well, so if that is what you want, install that first, reboot and follow the rest of the Exchange prerequisite install steps.

The script is now on version 20 and the script is approaching 7 years in age…

Please download the Exchange 2013 prerequisite script HERE. Please feel free to leave comments of questions either on thiis blog post or on the download page. If there is anything you would like to see, feel free to drop me a comment. Thanks!

Updated Exchange 2019 Prerequisite Script Updated to v1.10

** UPDATE ** Tinkered with this script some more, like my Exchange 2016 script. Added support for .NET 4.8 as an optional install. Will be default by the fall. The script just went a minor upgrade with a lot of changes. Here is the current list:

  • Added .NET 4.8 as an Option (Will be default by the Fall of 2019) – CU2+
  • TCP Keep Alive Value
  • Functions are alphabetized
  • Additional Checks function fix
  • Fixed anomalies in various checks and functions

Please download the Exchange 2019 prerequisite script HERE. Please feel free to leave comments of questions either on this blog post or on the download page. If there is anything you would like to see, feel free to drop me a comment. Thanks!

Updated Exchange 2016 Prerequisite Script Updated to v1.16

Another update. Added support for .NET 4.8 as an optional install. Will be default by the fall. The script just went a minor upgrade with a lot of changes. Here is the current list:

  • Added .NET 4.8 as an Option (Will be default by the Fall of 2019) – CU2+
  • TCP Keep Alive Value
  • Functions are alphabetized
  • Additional Checks function fix
  • Fixed anomalies in various checks and functions

The script can be downloaded HERE. Please feel free to leave comments of questions either on this blog post or on the download page. If there is anything you would like to see, feel free to drop me a comment. Thanks!

Updated Exchange 2019 Prerequisite Script Updated to v1.09

I realized that I hadn’t updated this script in some time, so I took my tweaks from the 2016 script and added them to this script. I also tweaked some of the other 2019 only items like the .NET requirement (only 4.7.2 and nothing newer) and RAM requirements are better reported and modified. Current change list:

  • Changed Internet Check to alleviate issues found
  • Correct C++ 2012/2013 code
  • Enhanced .NET check
  • Pulled Windows Defender setup (temp)
  • Added additional commenting
  • Added additional checks – TLS, Pagefile, Hyperthreading, SSL 3.0, Power Saving settings (more to come)

There will be more to come, so look for a v1.10 of the script later this summer as I add some more enhancements. These same enhancements will be added to the 2016 version of the script as well.

Please download the Exchange 2019 prerequisite script HERE. Please feel free to leave comments of questions either on this blog post or on the download page. If there is anything you would like to see, feel free to drop me a comment. Thanks!