win7sp1安裝ie11失敗,提示錯(cuò)誤0x800f081e,指定的程序包不適用于此映像的解決思路
最近某網(wǎng)友電腦Win7 SP1 x64系統(tǒng)上安裝ie11時(shí)失敗,提示“錯(cuò)誤0x800f081e,指定的程序包不適用于此映像”。

下載了IE11-Windows6.1-KB2841134-x64.cab用dism安裝,出現(xiàn)一樣的錯(cuò)誤。這個(gè)問題一般是ie11前置補(bǔ)丁沒裝上導(dǎo)致。

問題是網(wǎng)友電腦上把這些前置補(bǔ)丁都安裝一遍,除了windows6.1-kb2729094-v2-x64.msu安裝失敗,別的大部分提示已安裝或“此更新不適用于您的計(jì)算機(jī)”。
查看cbs.log代碼,日志里顯示:“Package_166_for_KB4480970~31bf3856ad364e35~amd64~~6.1.1.6”這個(gè)組件有問題,錯(cuò)誤代碼 0x80070490 ERROR_NOT_FOUND。用everything搜索相關(guān)文件,找到后用記事本打開mum文件,內(nèi)容是空白的,查看十六進(jìn)制看到的內(nèi)容全是00,cat文件也一樣。

從名稱可以看出跟補(bǔ)丁KB4480970有關(guān)。想著虛擬機(jī)里找下這些損壞文件替換,結(jié)果沒有。于是下載了這個(gè)kb4480970安裝后提取。但是安裝不上,因?yàn)楸恍碌难a(bǔ)丁替代了。

這時(shí)候可以用7zip提取msu文件里的cab補(bǔ)丁,用dism命令強(qiáng)制安裝。不過好在損壞的是mum和cat文件,這些不需要安裝就能解壓cab補(bǔ)丁提取。
替換損壞文件后本以為能裝上之前失敗的補(bǔ)丁kb2729094-v2-x64.msu,結(jié)果一樣錯(cuò)誤。cbs.log日志里的錯(cuò)誤內(nèi)容變了,從166變成606:

出問題的組件變了,不過還是kb4480970的。用everything搜索下這個(gè)補(bǔ)丁的mum文件,上千個(gè),大部分?jǐn)?shù)據(jù)變成00了,一個(gè)個(gè)替換不現(xiàn)實(shí),于是解壓kb4480970.msu補(bǔ)丁提取出cab包安裝。
安裝完重啟以為問題好了,結(jié)局kb2729094-v2-x64.msu還是失敗,錯(cuò)誤代碼又不一樣了:

這回看不出是什么補(bǔ)丁出問題了,出錯(cuò)的是Package_for_RollupFix開頭的mum文件,不知道是什么補(bǔ)丁的想提取也無處提取。
有兩個(gè)參考思路:
用dism /online /get-packageinfo命令查看。因?yàn)閙um文件內(nèi)容丟失而失敗。

2.根據(jù)文件日期20190103,去microsoft update catalog找該月的補(bǔ)丁,一個(gè)個(gè)解壓查找或安裝提取。解壓查找是不行的,找不到這個(gè)文件。下載安裝提取又會(huì)花費(fèi)很長(zhǎng)時(shí)間。
最后在查看正常的Package_for_RollupFix.mum文件內(nèi)容,下載了對(duì)應(yīng)補(bǔ)丁,解壓后也沒有Package_for_RollupFix這樣名字的mum文件。除了個(gè)update.mum文件有點(diǎn)可疑,打開看果然有Package_for_RollupFix字樣,于是打開kb4480970的update.mum查看,找到了。

事實(shí)證明update.mum和update.cat就是損壞的Package_for_RollupFix的mum和cat。改名后替換損壞的文件,再安裝kb2729094-v2-x64.msu就成功完成了,如果還不行可以用dism安裝一遍替換的mum文件再重啟。
之后ie11安裝成功!


安裝補(bǔ)丁cab并不能完全修復(fù)損壞的文件,像Package_for_RollupFix類型的文件損壞還需要手動(dòng)修復(fù)。