ETH官方钱包

切換
舊版
前往
大廳
主題

【心得】 Win7 的離線更新……

StudentC | 2020-04-02 16:07:47 | 巴幣 0 | 人氣 8187


今年(2022)決定把小屋的文章都修正一遍。
這篇文章,以前是把最後一次嘗試放在文章前面,現在把最後一次嘗試改回文章最後面了……

--------------------------------------------------------------------------------------

近日重裝 Win7 ,跑更新跑到一半就卡住,搜尋了一下,
https://www.google.com/search?q=windows+7+update+卡住
……無解?

……於是就決定來試看看離線安裝包好了,不找不知道,一找嚇一跳,居然有好幾家……

1、Windows Updates Downloader(WUD)
  參考:文件1

2、WSUS Offline Update(WSUS,好像是德文?)
  參考:文件2

3、WanMP Online System(WanMP,中文)
  參考:文件3

4、simplix.infoUpdatePack7R2,俄文)
  參考:文件4

5、nLite / NTLite(前者免費版,只支援到 XP ;後者須付費,支援到 Win10 )
  參考:文件5文件6

6、自己製作下載包……
  當然不是叫你手動逐一下載然後逐一安裝,雖然你確實也可以這樣做。
  是說使用 WUSA / Dism 製作自己的下載包。(3就是用 Dism 製作的)

  即使如此,也還是需要到微軟本站去手動下載那些你想要安裝的,例如
  微軟整合更新包 KB3125574 (至 2016 年 4 月,大約 500MB )
  以及其它更新約 900MB ……
  參考:文件7文件8

7、放棄,還是直接連網路跑微軟的 Update 吧(大概要 1.5GB 下載)

微軟更新本站:Microsoft?Update Catalog

--------------------------------------------------------------------------------------

Microsoft Visual C++ 可轉散發套件
(檔案名都是 vcredist_x86 、 vcredist_x64 之類,下載時記得改名)

2005

2005 Service Pack 1 可轉散發套件的安全性更新
(找不到 Microsoft 連結,從文件1文件2找到載點:2005SP1_x862005SP1_x64也都失效,這版本大概已經失傳?)

2005 Service Pack 1 ATL 可轉散發套件的安全性更新
(連結可能會失效,直接檔案試試:2005SP1ATL_x862005SP1ATL_x64
(這似乎是比較舊的版本,應該只要裝最後一個版本就行。)

2005 Service Pack 1 MFC 可轉散發套件的安全性更新
(連結可能會失效,直接檔案試試:2005SP1MFC_x862005SP1MFC_x64


2008

2008 Service Pack 1 可轉散發套件的安全性更新
(找不到 Microsoft 連結,從文件1文件2找到載點:2008SP1_x862008SP1_x64也都失效,這版本大概已經失傳?)

2008 Service Pack 1 ATL 可轉散發套件的安全性更新
(連結可能會失效,直接檔案試試:2008SP1ATL_x862008SP1ATL_x64

2008 Service Pack 1 MFC 可轉散發套件的安全性更新
(連結可能會失效,直接檔案試試:2008SP1MFC_x862008SP1MFC_x64


2010

2010 可轉散發套件 (x86)(直接檔案:2010_x86
2010 可轉散發套件 (x64)(直接檔案:2010_x64

2010 SP1 可轉散發套件 (x86)(直接檔案:2010SP1_x86
2010 SP1 可轉散發套件 (x64)(直接檔案:2010SP1_x64

2010 Service Pack 1 MFC 可轉散發套件的安全性更新
(直接檔案試試:2010SP1MFC_x862010SP1MFC_x64


2012

適用於 Visual Studio 2012 Update 4 的 Visual C++ 可轉散發套件
2012update4_x862012update4_x64


2013

適用於 Visual Studio 2013 的 Visual C++ 可轉散發套件
2013_x862013_x64

Update for Visual C++ 2013 Redistributable Package
2013_x862013_x64
(比較新的版本,這個版本似乎要用到 .NET ,所以裝完 .NET 之後再來裝。)


2015-2019

最新支援的 Visual C++ 下載(2015 ~ 2019 整合版)
vc_redist.x86.exevc_redist.x64.exe


Win7 x86 (也就是 32-bit 版本)只要安裝 x86 就行, x64 ( 64-bit 版本)兩個都要裝。

--------------------------------------------------------------------------------------

DirectX

DirectX 9.0c End-User Runtime (這是 web 安裝)

DirectX End-User Runtimes (June 2010)directx_Jun2010

[ Microsoft ] DirectX Download 微軟官方下載點收集
早期版本收集網站:http://falconfly.3dfx.pl/directx.htm

DirectX 在 Update 的時候應該就會更新到該系統所使用的最終版了。

DirectX 在 Win7 已經內附 11 版本。

--------------------------------------------------------------------------------------

Microsoft .NET Framework

這個似乎也是在 Update 的時候應該就會更新到該系統所使用的最終版了?
KB4503548 :用於 Windows 的 Microsoft .NET Framework 4.8 離線安裝程式

修正中……

.NET Framework 需要安裝的部分:

1、Windows 7 的 .NET Framework 3.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7 安全性和品質彙總套件(KB4049016、KB4041083)
  其實主要是 kb4019990 跟 kb4040980 , .NET 主程式的部分會改用 4.8 的版本)

2、一樣是安全性和品質彙總套件(KB4041083)
  主要是 kb4019990 (重複)跟 kb4532945 ,主程式的部分最後一樣是用 4.8 的版本取代

3、kb4503548 (.NET 4.8)
  有兩個部分:
  ndp48-x86-x64-enu.exe
  ndp48-kb4503575.exe

4、.net 4.8 繁體語言包(KB4497410)
  https://support.microsoft.com/zh-tw/help/4497410/microsoft-net-framework-4-8-language-pack-offline-installer-for-window

--------------------------------------------------------------------------------------

Dism++

先說點有關 Dism++ 的東西……

要使用 Dism++ 更新管理掃描功能,必須先下載它的掃描檔案 wsusscnN.cab

之所以說N,是因為在它的文件說明裡面,是 wsusscn2.cab ;但找半天找不到這個檔案,
最後在這篇 Windows 7: Latest wsusscn2.cab? 才找到了新版 wsusscn3.cab 2020-03-15

其實這個檔案應該是由 Microsoft 的文庫來的:
A new version of the Windows Update offline scan file, Wsusscn2.cab, is available for advanced users
而後經過他們自己的編修……

雖然這些作者會更新,但不管怎麼說,總會有一點時間差,所以一般的打包方式很難做到完整安裝……

因此這裡不得不稱讚一下,上面提到的:
2、WSUS Offline Update(WSUS,好像是德文?)
這個離線安裝程式。

因為它是直接使用 Microsoft 的設定,只要在 WSUS URL 裡面貼上 Microsoft 的連結就可以了,不需要像其他 WUD 、 NTLite 、 Dism++ 那樣需要等待原廠作者製作出新的下載設定檔,這是它的一大優勢。

另, WSUS 9.2.1 是最後一個支援 Windows XP 的版本。

說回 Dism++ , Dism++ 原本網站垮了,改到 GitHub 去了……
https://github.com/Chuyu-Team/Dism-Multi-language

--------------------------------------------------------------------------------------

2020/04/14

終於做好了。還是用 Dism++ 製作的……雖然還是有點不盡理想,但也可以接受了,畢竟我也不是那麼完美的強迫癥患者,還是能容納得下些許瑕疵的。

安裝好之後,第一次執行 Windows Update ,看起來會是這樣:


但 Update 檢查完之後,就會是這樣:

(35 個選用更新,是 Windows7 旗艦版的語言更新包,沒什麼需求,所以不裝。)

……之前用的幾家產品, WUD 、 NTLite 甚至包括 Dism++ ,
製作出來的安裝光碟都無法完整安裝,總是會有幾個缺口,像是這樣:

(然後又越跑越多,往往需要兩三次重新開機才能完全裝完。)

這是有原因的。

一方面是微軟的安裝問題,可以看我另外一篇:
【懷舊】【心得】在 VirtualBox 上安裝 Win7 、 WinXP ……

而且微軟還有另一個安裝問題,就是在選擇性更新裡面的每月品質彙總 KB4539601

(這個 KB4539601 雖然也可以預先安裝,但沒用,檢查的時候還是會把它認定為沒裝過。)


而另外一個無法製作出完整安裝光碟的原因,是這些封裝程式的檢查更新過程。(上面 Dism++ 那裡有提到)

像 NTLite 來說,選工具下載更新選項

就會出現下載列表:

(這個功能需要正式版才有支援,如果是免費版就……手動下載囉。)

但問題就在於, NTLite 是用什麼判斷去決定這些安裝的?這我們不知道。安裝完這批之後,需不需要再安裝其他的?這我們也不知道。所以要怎麼製作出完整安裝光碟?那就只能實際裝個一次,然後記錄下所有的安裝,你手動下載回來,再封裝到安裝光碟……

……然後……

……有 247 個安裝??會裝到暈倒……


或者以 Dism++ 來說,只要選更新管理掃描,就能得出跟 Windows Update 差不多的結果:

然後只要勾選安裝,就能打包封裝好……但就算是全選全裝,也還是裝不完(文章最後補充說明)。上面那張 10 個重要更新 可以使用 的圖,就是用 Dism++ 選全選製作的(但結果也還是沒有)……


……本來幾乎都要放棄了,後來無意中在玩 Dism++ 的時候,突發奇想把 C: 儲存映像……


……就這樣還原了 install.wim ……

然後把這個 install.wim 取代原本 Win7 安裝光碟裡 .\sources\install.wim ,再用 Dism++ 裡的 工具箱> ISO 產生器 製作 ISO 檔,這樣就完成了!?

……這種安裝方式有點類似 GHOST ,但又不太一樣。
簡單來說……嗯……不知道這要怎麼簡單說……

總之,原本的打包方式是:

1、將 win7.iso 安裝光碟檔解開到 x86 目錄(或是將光碟裡面的東西複製到 x86 目錄)

2、執行 Dism++ ,掛載映像檔案 x86\sources\install.wim 到暫存目錄 tmp

3、選更新管理新增,將 KB3125574 (例)添加安裝

4、安裝完畢就儲存映像

5、用工具箱ISO 產生器製作 win7_2.iso 檔

6、掛載 win7_2.iso 到 VirtualBox 的光碟,開始安裝……

安裝好的機器裡面就會包括 KB3125574
如果想要一臺裝好之後就是完全安裝的機器,就要把上面的兩百多個都裝上……


而現在這個方法則是:

1、用原本的 win7.iso 安裝光碟檔,掛載到 VirtualBox ,先裝好一臺機器

2、用 Windows Update 安裝 KB3125574 (例)

3、執行 Dism++ ,將整個 C: 映像儲存成為 install.wim

4、將 win7.iso 安裝光碟檔解開到 x86 目錄

5、用剛剛做好的 install.wim 取代 x86\sources\install.wim

6、用工具箱ISO 產生器製作 win7_2.iso 檔

7、掛載 win7_2.iso 到 VirtualBox 的光碟,開始安裝……

這次安裝好的機器裡面就會包括 KB3125574

原本的打包方式,是比較有彈性,也比較理想的。可以選擇是否要安裝某些程式(如 Win7 的遊樂場等等),也可以設定帳號名稱。

這個複製方法則取決於第一次安裝時候的設定,如果第一次安裝的時候,並沒有安裝 Win7 的遊樂場,那麼後面製作出來的也不會有;帳號名稱等等也都是第一次安裝的時候的設定。

還有最大的問題便是:裝到第二臺機器上有可能會抓取不到某項設備的驅動程式。
這還是比較好的結果,最糟的情況是根本無法在第二臺機器上安裝成功。

所以第一臺機器要盡可能選標準型……

但這種方式也有好處,一個是它的檔案比較小,原本的打包方式, x64 全選來說,大約 6GB 左右,無法燒錄到一般 4.7G 的 DVD 裡。而這種方式則可以縮減到大約 4.3GB 。另一個好處則是,看到那無可用的重要更新就是比較爽~

……咦?咦?欸?
為什麼又多出了一個啊啊啊啊……
……………………
………………
…………
……
.
算了,雖然還是有點不盡理想,但就這樣吧……畢竟我也不是那麼完美的強迫癥患者,還是能容納得下些許瑕疵的。而且今天裝好了,哪天微軟又更新,還是會逐漸變多……不過,就當作是一個安裝紀念版吧……

--------------------------------------------------------------------------------------

2020/04/28

又改回了原本的製作方式……複製一臺機器的方法,雖然製作簡單也蠻好用的,但終究相容性比較差,兩個禮拜前製作的安裝光碟,在換了一臺幾乎完全不同的新機器之後,變得無法安裝使用,不得已,只好又改回來了……

這次花了蠻長的時間,逐漸收集並實際安裝檢查/重新製作,最後用 Dism++ 製作出一塊大約安裝了 95% 的安裝光碟,缺少的部分有:

1、KB2533552(這是 Win7 SP1 (KB976932) 的另一個部分,需要開機之後安裝)
2、.NET Framework 4.8(Setup, Patch, 繁體語言包共三個)
3、VC++ Runtime( 2005, 2008, 2010, 2012, 2013, 2015-2019 共六個)

4、Windows Defender 的病毒定義碼
5、惡意軟體移除工具(有兩個)
(就是因為這兩個還會有更新,所以經常會是還有 n個重要更新可以使用 的狀態……)

這幾個部分都是 exe 執行格式,所以 Dism++ 製作時候安裝不上去(其實也許可以?只是我不太清楚怎樣製作)。因此我用了 NTLite 來做最後封裝。

這次的版本,第一次執行 Windows Update ,看起來會是這樣:

執行之後 Update 檢查完之後,就會是這樣:

只有差了一個 KB4493132 (這個終止支援通知可以不用裝的)


雖然還是有點不盡理想,但比以前更能接受了。
畢竟前一版只是表面上無可用的重要更新看的比較爽,但安裝到不同機器時卻容易產生相容性問題。

就這樣了……這大概真的是最後一個版本了……

--------------------------------------------------------------------------------------

創作回應

ET
版主,請問有整合好的檔案載點可供下載,離線昇級的嗎?
2020-10-11 11:28:09
StudentC
抱歉, 沒有喔. 最終檔案有點大, 我的網路上傳很費時間.
試著自己做一個吧, 也比較符合自己的需求.
然後 Win7 ... 也算過時了, 不要再浪費時間在這上面了, 試試看 Win10 吧...
2020-10-11 21:39:55
ET
好,感謝。
本來我是想搞定 win7 64 無法裝 NET Framework 4.8 的 問題,但日前我已解決這問題了。
2020-10-12 21:26:02
Bill
這邊可以自己做
https://izaka.tw/windows-7-sp2-simplixed-updatepack7r2-guide/
2022-06-17 10:28:55

更多創作