In last round of server patching, I had more than 40 servers running Microsoft Windows Server 2008 R2 Standard SP1 failed to install KB4093118 which is 2018-04 Security Monthly Quality Rollup for Windows Server 2008 R2 for x64-based Systems (KB4093118). I worked with Microsoft support with one server and solved the issue.
PROBLEM: Failed to Install KB4093118 on CGYUT216 running Microsoft Windows Server 2008 R2 Standard SP1
RESOLUTION: PFB the steps that we followed to resolve the issue:-
- We had error in the logs stating Failed to find file: amd64_microsoft-windows-s..-downlevel.binaries_31bf3856ad364e35_6.3.9600.18617_none_5fa38ca6ff4698d3\MsSpellCheckingFacility.exe
- Found that we had the update KB4012215 with the file
|· Msspellcheckingfacility.exe||· 6.3.9600.18618|
- Tried installing that update, but it failed stating the SXS Assembly was missing
- Downloaded and ran CheckSUR
- Tried installing update, it failed again
- After checking the logs, we found that it was unable to replace the manifests amd64_microsoft-windows-s..-downlevel.binaries_31bf3856ad364e35_6.3.9600.18537_none_5fa38ca6ff4698d3.manifest and amd64_microsoft-windows-i..etexplorer-optional_31bf3856ad364e35_11.2.9600.18617_none_7af6e9d9c2e4f8b2.manifest
- We copied these files from a working machine(C:\windows\WinSXS\Manifests )and pasted them in C:\windows\WinSXS\Manifests
- After that, we installed KB4012215
- Rebooted the machine and were able to install KB4093118 successfully
Commands used to extract the .msu files ( Expand –F:* C:\temp\filename.msu C:\temp\)
Command used to install the expanded .cab file ( DISM / ONLINE /ADD-PACKAGE /PACKAGEPATH:C:\temp\filename.cab)
Value add links: https://support.microsoft.com/en-us/help/4011466
When I applied this fix to more servers, I found that the CBS log showed that failed to find different version of Msspellcheckingfacility.exe.
So I made below troubleshooting steps to help my team to work on other servers.
Tip: You need open C:\Windows\Logs\CBS\CBS.log. When the file is too big, it’s slow to load and open. Check the file size of this file, if it’s a few hundreds megabytes, it’s too big, consider delete it. It will be recreated when install Windows update.
Step 1: Install KB4093118 manually to generate cbs.log
Create a temp folder and copy all files from \\updatefileserver\MissingUpdates
For example: copy \\updatefileserver\MissingUpdates\*.* C:\temp\
Run windows6.1-kb4093118-x64.msu. If install successfully, problem is solved.
Step 2: Open CBS.log and search “, Error” or “Failed to find file”. Find which version of file MsSpellCheckingFacility.exe failed to be found.
You will find something like “Failed to find file: amd64_microsoft-windows-s..-downlevel.binaries_31bf3856ad364e35_6.3.9600.18617_none_5fa38ca6ff4698d3\MsSpellCheckingFacility.exe [HRESULT = 0x80070002 – ERROR_FILE_NOT_FOUND]”
Here is the example of the CBS log content
2018-05-04 12:43:42, Info CBS Failed to find file: amd64_microsoft-windows-s..-downlevel.binaries_31bf3856ad364e35_6.3.9600.18638_none_5fa48ed6ff45af51\MsSpellCheckingFacility.exe [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND] 2018-05-04 12:43:42, Info CBS Failed to gather all required files. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND] 2018-05-04 12:43:42, Info CBS Failed to gather all missing files for package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24106.1.4 [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND] 2018-05-04 12:43:42, Info CSI 00000012@2018/5/4:18:43:42.606 CSI Transaction @0x1be3aba0 destroyed 2018-05-04 12:43:42, Error CBS Failed to pre- stage package: Package_for_RollupFix~31bf3856ad364e35~amd64~~7601.24106.1.4 [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND] 2018-05-04 12:43:42, Info CBS Perf: Stage chain complete.
Typical version is 18671. Here is the table of version and KB need to be installed.
Step 3 copy manifests files from a good server
amd64_microsoft-windows-s..-downlevel.binaries_31bf3856ad364e35_6.3.9600.18537_none_5fa38ca6ff4698d3.manifest and amd64_microsoft-windows-i..etexplorer-optional_31bf3856ad364e35_11.2.9600.18617_none_7af6e9d9c2e4f8b2.manifest
These 2 files need to be copied from a working machine(C:\windows\WinSXS\Manifests ) into C:\windows\WinSXS\Manifests.
Before copy, C:\windows\WinSXS\Manifests folder permission need to be changed, otherwise you will get access denies error because Administrators don’t have modify or write permissions.
I suggest changing the owner to Administrators first, and then assign administrators full control permission. Remember to check ‘Replace owner on subcontainers and objects’ when change owner and check ‘Replace all child object permissions with inheritable permissions from this object’ when assign Full control permission to administrators.
Then we can copy files to C:\windows\WinSXS\Manifests. I have put the good files in \\updatefileserver\MissingUpdates. I suggest using below command line:
copy \\updatefileserver\MissingUpdates\amd64_microsoft-windows-s..-downlevel.binaries_31bf3856ad364e35_6.3.9600.18537_none_5fa38ca6ff4698d3.manifest C:\windows\WinSXS\Manifests /y
copy \\updatefileserver\MissingUpdates\amd64_microsoft-windows-i..etexplorer-optional_31bf3856ad364e35_11.2.9600.18617_none_7af6e9d9c2e4f8b2.manifest C:\windows\WinSXS\Manifests /y
Step 4 Install update to fix Failed to find file MsSpellCheckingFacility.exe issue.
Typical version is 18671 and KB4012215 is required to fix the issue. I have downloaded KB4012215 in \\updatefileserver\MissingUpdates\.
Use below command to install KB4012215. Create c:\temp if it does not exist.
copy \\cgyut210\MissingUpdates\*.* C:\temp\
dism /online /add-package /packagepath:Windows6.1-KB4012215-x64.cab /norestart
Then reboot the server.
If the version is not 18617, but 18638, then KB4015552 is required, 18537 then KB3212646 is required. To install the KB, you need download it, expand it and then use dism command to install it.
C:\temp>expand “windows6.1-kb3212646-X64.msu” -f:* c:\temp\KB3212646
dism /online /add-package /packagepath:Windows6.1-KB3212646-x64.cab /norestart
Step 5 Install KB4093118
Reboot and then install KB4093118.
If still failed, go back to step 2 to find the missing file version and install corresponding KB.