After a recent ConfigMgr upgrade, I noticed that all the clients were reporting as offline and when checking the SMS_NOTIFICATION_SERVER, it was reporting as Critical.
Checking the status messages for the component showed that the bgbisapi.msi setup was failing to install. Well, that explains the clients being reported as offline.
I checked the bgbsetup.log on the site server and was greeted with a sea of red when it attempted the install. The error below occurs when the NetFramework and the ConfigMgr installs reside on different drives.
There are quite a few blogs out there on how to resolve the problem, my good friend Prajwal Desai has a blog post on this https://www.prajwaldesai.com/fatal-msi-error-bgbisapi-msi-could-not-be-installed/
The fix involves editing the InstallUtil.exe.config and the RegSvcs.exe.config files to add the following code as in the example below:
<runtime> <loadFromRemoteSources enabled="true"/> </runtime>
When I attempted this on the InstallUtil.exe.config file I was unable to save the edit, it appeared to be in use. Checking with procmon, no lock could be found on the file.
The trick was to take ownership of the file. I checked with Microsoft first to ensure that was OK to do and they confirmed that all was good.
To fix the problem, run the following commands in an elevated command prompt:
TAKEOWN /F "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe.config" ICACLS "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe.config" /grant "<Enter the account username which will take ownership":F
After completing this task, restart the Distributed Transaction Coordinator service in Services.msc and restart the SMS_SITE_COMPONENT_MANAGER.
To restart the SMS_SITE_COMPONENT_MANAGER follow this process:
In the ConfigMgr console, navigate to Monitoring\Overview\System Status\Component Status. Right click one of the components and click Start\Configuration Manager Service Manager.
Click Site Code\Components\SMS_SITE_COMPONENT_MANAGER. Click the server name.
Right click the component and choose Query.
The service should be listed as Running in the Status column. Right click again and choose Stop.
Right click the component again and click Query. It will be listed as Status Stopped.
Finally, right click and click Start to bring it back online. The bgb component will now install successfully.