Today I upgraded a customer to SCCM 1702, but I ran into an issue that made things difficult. For some reason, they had a SCCM upgrade stuck checking prerequisites. A previous hotfix that was not installed had been in this state for a very long time and blocked all upgrades for them. Restarting SMS_Executive service or even rebooting the server did not fix this, and the option to upgrade was not available as SCCM thought some other upgrade was running a prerequisite check. This is how I fixed it.
Update: The Update Reset Tool is shipped with ConfigMgr since version 1706. Please use that if applicable before you try this method.
It was actually quite simple to fix SCCM when an upgrade is stuck checking prerequisites. All I had to do was remove the entry of that specific update from the SQL database. Then SCCM re-downloaded all the information about the update, and it was no longer stuck in checking its prerequisites.
From SQL Management Studio, click “New Query”. Make sure your SCCM database is selected, it is usually CM_XXX, where XXX is your sitecode.
Execute the following SQL query list all updates processed by SCCM
SELECT * FROM dbo.CM_UpdatePackages
Running this query on the SCCM database listed all the updates available for SCCM. This customer had an issue with KB3292796, and I saw it had two entries with two different PackageGuids. These are the ones I want to remove from the database.
SQL query to delete the specific update from SQL. Replace the PackageGuid to match the update you want to remove.
DELETE FROM dbo.CM_UpdatePackages WHERE PackageGuid = 'A967D688-F56B-4D5C-854C-83F8512B70A3' OR PackageGuid = 'E8E74B72-504A-4202-9167-8749C223D2A5'
SQL outputted 2 row(s) affected, which is what I wanted.
My last step was to restart the SMS_Executive service. SCCM was now acting as normal again, and I could run the prerequisite check for Configuration Manager 1702 and begin the upgrade.
The customer was happy to hear the issue was fixed, and the upgrade was successful without any more issues. And now they know what to do if this would even happen again.