Sometimes you can’t install update rollup for SCSM because right after you press Install button on first page, the update process crashed. This issue came from very early versions of the SCSM and still sometime happened at this time, even for SCSM 2012 R2 UR2 update.
First of all, you need to know why this happened and exact reason. If you have Visual Studio () installed on same box where you try to install update, you can press Debug button and see an exact reason. But I pretty sure that you have no VS on this box. So next step for you is open the Application log and find information event with source “Windows Error Reporting”. The P9 parameter will contain exact error message:
If your exception is not a System.IO.IOException then next step for you is digging around this by yourself. You can stop reading here.
But the most often you will see the System.IO.IOException. This is very strange bug and I have no idea why this happened only sometimes on some servers. But mostly, it raised on servers where UAC is disabled.
The exact reason of this exception is that update process try to open the QFEList.xml file for Read\Write twice: first time to read information when update process starts and second time when you press Install button. The second attempt failed because file already blocked. Here is screenshot of the Process Monitor for first attempt:
and here is for second (note: is fact, there are three attempt, but one of this attempt use “Read Attribute” access mode and close file after that):
As you can see, at first time the update process open file and doesn’t close it. So the second attempt with same access level (Read\Write) will fail.
But the solution is simple. You must “kill” opened file. To do this, enable UAC if it disabled (for some reason, file’s handle can’t be found if UAC disabled) and run SCSM update process again but do not press Install button. After that, run the Process Explorer. In Process Explorer, click menu Find –> Find Handle or DLL…
After this, press Install button in SCSM update UI. Done!
PS Thanks to Sysinternals for great tools!