Windows 7 SP2 更新整合光碟製作教學 (IE11+Hotfix+.NET 4.8+USB 3.0+NVMe)

在微軟不遺餘力的推廣下,依照 NetMarketShare 2020/1 的統計數據,Windows 10 的市占率已經來到 57.08%,只是不管是考量作業系統轉換後程式相容性的問題或者使用習慣使然等因素,即便微軟在 2020/1/14 已經正式終止 Windows 7 延伸支援,仍有 25.56% 的主機使用 Windows 7 作業系統。

由於微軟的更新有很嚴重的依存關係,甚至不同版本的瀏覽器或者 .NET Framework,也會因為使用者更新時間點差異導出出不完全相同的更新清單,所幸微軟後來提出彙總套件的更新模式,大幅減少更新檔案數量,只是在乾淨的 Windows 7 SP1 的環境下進行更新,即便在系統碟使用 SSD 的情況下,安裝所有更新會耗費的時間還是讓人無法忽略。

Windows 7 SP2 更新整合光碟主要是以個人偏好進行作業系統封裝紀錄與分享,除了微軟釋出的更新檔之外,還加入了 Internet Explorer 11、.NET Framework 4.8、Microsoft Visual C++ 可轉散發套件及常見的 USB 3.0、USB 3.1 與 NVMe 驅動程式至 Windows 7 Service Pack 1 x64 Ultimate 版本之中。

由於個人已不繼續維護封裝腳本,如果製作包含 ESU 的 Windows 7 更新整合光碟的需求,請參考 如何使用 UpdatePack7R2 製作 Windows 7 SP2 更新整合光碟 (2021.10) 一文。

[spoiler title=”封裝更新日誌 (2020/03/05)”]

基本封裝套件

  • KB3020369 服務堆疊更新 (April 2015 servicing stack update)
  • KB3125574 便利性彙總套件 (Convenience Rollup)
  • KB3172605 更新彙總套件 (July 2016 update rollup)
  • KB3179573 更新彙總套件 (August 2016 update rollup)
  • KB4534310 更新彙總套件 (2020-01 Security Monthly Quality Rollup)
  • KB4539601 每月彙總套件預覽 (2020-2 Preview of Monthly Quality Rollup)

SHA-2 簽章更新套件

  • KB4474419 安全性更新 (Security Update)
  • KB4490628 服務堆疊更新 (Servicing Stack Update)

其他封裝項目

  • Microsoft Visual C++ 可轉散發套件 (含2005~2019)
  • .NET Framework 4.8 (含語言套件, 2020/01/09)
  • KB4535102 更新彙總套件 (2020-01 Security and Quality Rollup for .NET Framework)
  • DirectX End-User Runtimes (June 2010)

重要更新未封裝

  • KB890830 微軟惡意軟體移除工具
  • KB915597 Windows Defender 更新
  • KB971033 You-Know-Who 😈

選擇性更新未封裝

  • KB3021917 客戶經驗改進計畫 (CEIP),涉及使用者隱私
  • KB3068708 客戶經驗改進計畫 (CEIP),涉及使用者隱私
  • KB3080149 客戶經驗改進計畫 (CEIP),涉及使用者隱私
  • KB4493132 Windows 7 終止服務通知

[/spoiler]

參考資訊

封裝前置作業

光碟映像檔下載

一般封裝會建議還是使用微軟官方所提供的光碟映像,若是不確定手中的版本是否為已經封裝過的整合版本或者手邊無現成可使用的ISO檔,可以參考微軟光碟映像下載工具這篇文章使用 Microsoft Windows and Office ISO Download Tool 從微軟網站下載

更新檔下載工具

為了確保檔案下載來源的可靠性與避免打包檔案所需額外的雲端空間,封裝流程所需更新檔需要安裝 Windows Updates Downloader (WUD) 後直接從微軟所屬網站下載

映像檔編輯工具

更新檔主要是透過 DISM 封裝至 Windows Imaging Format (WIM),文中使用 UltraISO 作為光碟映像檔提取 WIM 並重製 ISO 檔輔助工具

封裝操作流程

至於整合光碟製作需要的相關批次檔連結,除非有能力自行配置,不然建議還是依樣畫葫蘆,免得處理過程中造成批次檔執行過程中出現錯誤,更新包下載連結如下。

步驟一 : 更新檔下載

20200309131830 85
點我下載 ,滑鼠右鍵點選檔案選取”內容”,勾選”解除封鎖“後套用

20200309131833 95
將檔案解壓縮至 C:\W7SP2,滑鼠左鍵雙擊執行 “1.建立下載更新路徑.bat“建立封裝過程中所需的對應資料夾

20200309131834 58
滑鼠左鍵雙擊執行 “windows-7-sp1-x64-cht_20200305.ulz” 匯入更新檔下載清單至 Windows Updates Downloader

20200309131836 59

  1. 開啟 Windows Updates Downloader 下拉並選取最新匯入的下載清單
  2. 勾選所有下載項目(灰色代表目前下載對應資料夾缺少的更新項目)
  3. 按下 Download 開始下載封裝所需更新檔

注意事項

20180411220544 71
若按下 Download 出現上述錯誤訊息,代表忘記建立下載更新檔對應資料夾

20200309131838 24
20200309131840 41
下載完成後,所有項目圖示會從灰色變成綠色

步驟二 : 更新封裝檔

20180411221255 64
使用 UltraISO 開啟 Windows 7 Ultimate x64 SP1 光碟映像檔,選取 \sources\ 下的 install.wimboot.wim 按下滑鼠右鍵,將檔案提取到 C:\W7SP2

20200309131840 31
檔案管理員切換至 C:\W7SP2 ,滑鼠右鍵點擊”2.更新檔封裝.bat“以系統管理員身份執行

20200309131841 7
此時就會開始進行更新檔封裝作業

注意事項

  • 個人封裝作業系統版本為 Windows 7 Ultimate,如果要對其他版進行封裝,需要手動修改 install.bat 裡頭的 index 參數
  • 1~4 分別代表 HOME BASIC、HOME PREMIUM、PROFESSIONAL、ULTIMATE,企業版請使用 index:1

20200309131842 12

  • 出現”請按任意鍵繼續”的訊息時,就代表整個封裝流程已經接近尾聲,主要是用來確認封裝過程中有無出現異常
  • 若要刪除封裝過程中的一些冗雜檔案來減少鏡像檔案大小,請先不要按下任意鍵,直接操作進入步驟三來刪除檔案
  • 若要繼續封裝驅動程式,請見步驟四的驅動程式封裝操作流程,若無封裝驅動程式需求,請跳到步驟六重新建立光碟映像檔章節

步驟三 : 刪除冗雜檔案 (選用)

即便有了彙總套件,隨著時間累積以及額外封裝項目,完成後的install.wim檔案大小的成長仍是相當可觀,個人在封裝過程中習慣移除一些原始 iSO 檔中一些可有可無的資訊以及封裝過程中產生的備份檔案,操作時間點是在步驟二(更新封裝檔)停在”請按任意鍵繼續”的時候,此時\mount\資料夾還處於掛載的狀態,可透過取得權限的方式來移除檔案。

[spoiler title=”冗雜檔案刪除列表”]

  • 移除對象 : 更新還原檔
  • 檔案路徑 : C:\W7SP2\mount\Windows\winsxs\Backup
  • 注意事項 : 若是不打算還原更新,路徑下方檔案可以全數移除
  • 移除對象 : 公用範例檔
  • 檔案路徑 : C:\W7SP2\mount\Users\Public
  • 注意事項 : 公用資料夾下方的範例檔案全數都可以刪除
  • 移除對象 : 桌布檔
  • 檔案路徑 : C:\W7SP2\mount\Windows\Web\Wallpaper
  • 注意事項 : 建議僅保留 Windows 下的桌布檔案,其餘分項皆可直接移除
  • 移除對象 : 預先搭載驅動程式
  • 檔案路徑 : C:\W7SP2\mount\Windows\System32\DriverStore\FileRepository
  • 檔案路徑 : C:\W7SP2\mount\Windows\inf
  • 注意事項 : 預先搭載的驅動程式,種類繁雜,個人會刪除 mdm*、prn*
  • 移除對象 : 微軟輸入法
  • 檔案路徑 : C:\W7SP2\mount\Windows\IME
  • 檔案路徑 : C:\W7SP2\mount\Windows\System32\IME
  • 檔案路徑 : C:\W7SP2\mount\Windows\SysWOW64\IME
  • 注意事項 : 移除 IMEJP10、imekr8、IMESC5 (日文、韓文、簡體中文輸入法)

[/spoiler]

20200309131842 72
檔案管理員切換至 C:\W7SP2 ,滑鼠右鍵點擊”3.刪除冗雜檔案.bat“以系統管理員身份執行

20200309131843 57
20200309131844 79
此時在命令提示字元視窗中會依照批次檔刪除檔案

20200309131846 75
刪除完成後,回到步驟二所開啟的命令提示字元視窗,按下任意鍵繼續儲存與卸載映像

步驟四 : 驅動程式封裝操作流程 (選用)

一般來說,使用 USB 3.0 來安裝作業系統會因為先天頻寬優勢,速度會遠比使用 USB 2.0 來得更有效率,只是 Windows 7 Sp1 並未預先搭載 XHCI 驅動程式,儘管 USB 3.0 硬體向下支援 USB 2.0,但是如果使用者將隨身碟插在 USB 3.0 Port 上頭要來安裝 Windows 7,安裝過程中會出現無法找到光碟機的錯遇訊息,所以自己也會習慣將常見的 USB 3.0/3.1 以及目前已經被廣泛使用的 NVMe SSD 驅動程式一併封裝到 iSO 檔中。

[spoiler title=”封裝驅動程式列表”]

C:\W7SP2\DRIVER

├─NVMe
│ ├─Hotfix
│ │ Windows6.1-KB2990941-v3-x64.msu
│ │ Windows6.1-KB3087873-v2-x64.msu
│ │
│ ├─Intel
│ │
│ ├─Lite-On
│ │
│ ├─Micron
│ │
│ ├─OCZ
│ │
│ └─Samsung

└─USB3
├─AMD
│ ├─USB_3.0_1.1.0.0249
│ │
│ ├─USB_3.0_2.0.0.0048
│ │
│ └─USB_3.1_1.0.5.3

├─Asmedia
│ └─USB_3.0_3.1__1.16.59.1

├─Etron
│ └─USB_3.0_0.0.0119

├─Fresco
│ └─USB_3.0_3.8.5514.0

├─Intel
│ ├─USB 3.0_1.0.10.255 (Intel 7 Series/C216 Chipsets)
│ │
│ └─USB 3.0_3.1_5.0.4.43 (Intel 8, 9, 100, 200 Series/C220, C230, C610)

├─Renesas
│ ├─Renesas200_2.1.39.0
│ │
│ └─Renesas201_3.0.23.0

├─TI
│ └─USB_3.0_1.16.6.0

└─VIA
└─USB_3.0_6.1.7600.5101

[/spoiler]

說明事項

  • Intel 1.0.10.255 (Intel 7 Series/C216 Chipsets) 以及 Intel 5.0.3.42 (Intel 8, 9, 100, 200 Series/C220, C230, C610) 兩者請依需求擇一進行封裝

20200309131847 75
檔案管理員切換至 C:\W7SP2 ,滑鼠右鍵點擊”4.驅動程式封裝.bat“以系統管理員身份執行

20200309131848 19
20200309131848 60
這時就會開始進行驅動程式封裝作業,出現請按任意鍵繼續的訊息時,就代表相關更新檔都已經匯入,這時可按下任意鍵建立新的 install.wimboot.wim

步驟五 : 壓縮WIM (選用)

此步驟主要是透過 imagex.exe 與 wimlib-imagex.exe 來處理封裝過後的 install.wim 與 boot.wim,提高壓縮比來進行檔案瘦身。

20200309131849 57
檔案管理員切換至 C:\W7SP2 ,滑鼠右鍵點擊”5.壓縮WIM.bat“以系統管理員身份執行

20200309131851 18
分別處理 boot.wim 與 install.wim

步驟六 : 重新建立光碟映像檔

20180411224148 41
開啟 UltraISO,使用”動作“功能來”加入檔案“至光碟映像檔的 \source\

20180411224150 6
選取封裝完成的 boot.wiminstall.wim

20180411224152 7320180411224154 92
取代原本的 boot.wiminstall.wim

20180411224158 100
最後另存新檔,完成 Windows 7 x64 SP1 更新整合光碟製作

可開機隨身碟製作工具

小記

自 2020/2 起,雖然在 Microsoft Update Catalog 仍然可以下載微軟釋出給 Windows 7 的相關更新檔案,不過檔案本身屬於 ESU 範疇,以 2020-2 Security Monthly Quality Rollup 為例,封裝過程中會出現錯誤訊息,除非有比較穩當的處理方式,不然目前暫時不對擴展安全更新進行封裝。