This is one of feature everyone is going to love it. UR1 having a friction-less way of patching the SCOM management server. The improvised user interface will guide you through the installation steps which will patch the management server, update both the databases (Operations DB and Data Warehouse) and update the management packs.

Once I had got to know about this, one thing was come to my mind how it will update the SQL scripts without having any access to SQL databases.

Finally I am able to figure it out.

Please note, the tasks which are running might fails due to the following reasons.

 

  1. SQL broker service is disabled. 
  2. We are not able to connect to the SQL databases.

 

Before we will run the self-extracting executable, please make sure we have the following prerequisites met.

  1. SQL broker service is enable.
  2. We are able to connect to the SQL databases.

KBXXXXXX-AMD64-Server.exe is actually contains a management pack named “Microsoft.SystemCenter.DBUpdateTask” which got imported during the Simplified SCOM 2019 Management Server Patching experience.

Firstly it will connect to the management group and import the above management pack.

Now in this management pack, we have two tasks like below.

 

 <Task ID="DatawarehouseUpdateTask" Accessibility="Public" Enabled="true" Target="SC!Microsoft.SystemCenter.ManagementServer" Timeout="1800" Remotable="true">
<Category>Custom</Category>
<WriteAction ID="WA" RunAs="MSDL!Microsoft.SystemCenter.DataWarehouse.ActionAccount" TypeID="DBUpdateWA">
<Instance />
<dbName />
<version />
<dbFilePath />
<timeout />
</WriteAction>
</Task>
<Task ID="DatabaseUpdateTask" Accessibility="Public" Enabled="true" Target="SC!Microsoft.SystemCenter.ManagementServer" Timeout="1800" Remotable="true">
<Category>Custom</Category>
<WriteAction ID="WA" RunAs="SC!Microsoft.SystemCenter.DatabaseWriteActionAccount" TypeID="DBUpdateWA">
<Instance />
<dbName />
<version />
<dbFilePath />
<timeout />
</WriteAction>
</Task>

 

Now I will discuss how it works.

Both the tasks are targeted to “SC!Microsoft.SystemCenter.ManagementServer“.

For Operations Manager DB update, Task “DatabaseUpdateTask” will be running by run as profiles called “Operational Database Account” (it will use the associated run as account to run the task) which is defined and execute the script from the location we got for the variable “dbFilePath override value” (default location is C:\Program Files\System Center\Operations Manager\Server\SQL Script for Update Rollups\update_rollup_mom_db.sql)

 

For Operations Manager DW update, Task “DatawarehouseUpdateTask” will be running by run as profiles called “Data Warehouse Account” (it will use the associated run as account to run the task) and execute the script from the location we got for the variable “dbFilePath override value” (default location is C:\Program Files\System Center\Operations Manager\Server\SQL Script for Update Rollups\UR_Datawarehouse.sql)

 

Management pack import task is being called by a custom action called “CAManaged!Microsoft.MOMv3.Setup.MOMv3ManagedCAs.ImportManagementPacksFromPatch”

This task is actually present on the .exe which will create a temporary directory in C:\windows\Installer location.

Here, we have a config file called “CustomAction.config” which is having customActions defined. These are controlled by some of the dll files.

The custom action “CAManaged!Microsoft.MOMv3.Setup.MOMv3ManagedCAs.ImportManagementPacksFromPatch” connect to management group first and then started importing the management pack from the mpDirectory ((default location is C:\Program Files\System Center\Operations Manager\Server\Management Packs for Update Rollups).