I previously wrote several posts about how you can check/get a list of BizTalk Server Cumulative Updates installed in your machines for previous versions of the product:
- How to check what BizTalk Server 2016 Cumulative Updates are installed in your Servers with PowerShell
- How to Check what BizTalk Server 2013 R2 Cumulative Updates are installed in your Servers with PowerShell
- How to check what BizTalk Server 2013 Cumulative Updates are installed in your Servers with PowerShell
- How to check what BizTalk Server 2010 Cumulative Updates are installed in your Servers with PowerShell
Now it is time to update this script to BizTalk Server 2020.
📝 One-Minute Brief
Shows how to identify which BizTalk Server 2020 Cumulative Updates are installed by using a simple PowerShell script, avoiding manual checks in Control Panel and saving time for BizTalk administrators.
Checking which Cumulative Update (CU) is installed is not difficult. However, as a BizTalk administrator, it quickly becomes one of the most annoying tasks to perform.
You can check it manually by opening Control Panel → Programs → Programs and Features and then reviewing Installed Updates. Unfortunately, this list is often long and confusing. Moreover, Windows does not group updates under a BizTalk category, which makes them hard to find.
Alternatively, you can rely on tools like BizTalk MsgBoxViewer. However, these tools are not always up to date and may not reflect the current CU level accurately.
There may be other ways to retrieve this information. Nevertheless, this task should be simple, fast, and reliable. What you really want is a clear answer to one question: which BizTalk Cumulative Updates are installed on the server, like:
This is the list of BizTalk Server Cumulative Updates installed in this machine: BTS2020LAB01
- Microsoft BizTalk Server 2020 Cumulative Update 1
To check if the last Cumulative is installed or not.
PowerShell script overview
So how can we easily automate tasks? and reuse them whenever necessary, and at the same time save significant time for other tasks?
Using PowerShell is a good option. Windows PowerShell is a Windows command-line shell designed especially for system administrators and can be used by BizTalk administrators to help them automate repetitive tasks or tasks that are time-consuming to perform manually.
This is a simple script that allows you to configure the template name of the cumulative updates, which will change from version to version, and will give you the list of all BizTalk Server 2016 cumulative updates installed on your server:
$keyResults = Get-ChildItem -path HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ -Recurse -ErrorAction SilentlyContinue | where { $_.Name -match $CUNameTemplate}
...
foreach($keyItem in $keyResults)
{
if ($keyItem.GetValue("DisplayName") -like "*$CUNameTemplate*")
{
write-host "-" $keyItem.GetValue("DisplayName").ToString().Substring(0,$keyItem.GetValue("DisplayName").ToString().IndexOf(" Update")+9)
#write-host "-" $keyItem.GetValue("DisplayName")
}
}

Download
THIS POWERSHELL IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND.
You can download Check what BizTalk Server 2020 Cumulative Updates are installed with PowerShell from GitHub here:

Hope you find this helpful! If you liked the content or found it useful and would like to support me in writing more, consider buying (or helping to buy) a Star Wars Lego set for my son.