前言
生産環境中,當我們使用SCCM部署計算機作業系統時,你會發現部署系統過程中下載下傳計算機驅動會耗費比較久的時間。
因為使用傳統的驅動程式包(包含數千個小檔案),單個部署可能需要 5-10分鐘甚至更久才能完成下載下傳大型驅動程式包,具體情況取決于你的環境。
思路
如果你有嘗試過從網絡共享目錄下載下傳包含大量碎片檔案的目錄,你會發現将該目錄複制到本地的時間會遠遠大于将檔案夾壓縮後作為單個檔案下載下傳的速度。
那麼,我們在使用SCCM部署作業系統的時候,也完全可以使用這個思路,将對應機型的驅動生成為單個
zip
或
WIM
檔案,然後将其替換傳統的系統驅動包導入的方法。
相比
WIM
,
zip
包因為其壓縮屬性,更具有優勢。是以我使用
zip
這個方案。
步驟
如何下載下傳對應機型的驅動包,請參考《MDT部署Windows系列 (二): 基礎篇—導入鏡像、驅動、軟體、語言包》,本文不再介紹
生成ZIP包(方法一)
# 壓縮單個驅動封包件夾
Compress-Archive -Path "D:\OSD\Hardware Drivers & Packages\Drivers\Lenovo\ThinkPad X1 Carbon 7th" -DestinationPath "D:\OSD\Hardware Drivers & Packages\Drivers\Lenovo\Drivers.zip" -CompressionLevel Fastest
# 壓縮多個驅動封包件夾
$DriverSources = Get-ChildItem "E:\Sources\OSD\DriverSources\Dell"
$DriverPackages = "E:\Sources\OSD\DriverPackages\Dell"
Foreach ($folder in $DriverSources) {
New-Item -ItemType Directory "$DriverPackages\$($folder.Name)"
Compress-Archive -Path $folder.FullName -DestinationPath "$DriverPackages\$($folder.Name)\Drivers.zip" -CompressionLevel Fastest
}
通過上述
Powershell
執行對應驅動檔案夾進行壓縮後的效果如下(本案例隻做了壓縮單個驅動封包件夾)生成的Driver.zip檔案目錄格式為
Drivers.zip\ThinkPad X1 Carbon 7th\
從下圖可以看到單個機型的驅動,通過壓縮後,驅動包大小縮減了一半。如果你的生産環境中品牌、機型種類很多。使用這種方法不僅可以
在系統部署過程中縮減驅動包下載下傳的時間
而且還可以
節約SCCM伺服器或DP伺服器磁盤空間
。
生成ZIP包(方法二)
也可以直接使用
7zip
對驅動目錄進行壓縮
将生成的壓縮包驅動添加至 SCCM
建立驅動Driver.zip檔案後,隻需将其複制到一個檔案夾,然後在 ConfigMgr 中使用該檔案夾作為源建立新的Package包(記得要分發至DP伺服器)。
修改系統部署任務序列
下一步就是使用新的驅動包替換舊的傳統方式導入的驅動任務。與傳統預設的驅動安裝方式對比,使用
Package
包的方式需要 2步:
識别對應驅動包并下載下傳
;
解壓縮并安裝
注意: 使用本文方式,請記得将PowerShell添加到啟動映像,否則下文的
Expand-Archive
指令将無法正常工作
- 禁用舊的驅動安裝任務;
-
添加新的驅動安裝;
我用于提取驅動程式包的 Zip 版本内容的指令行如下:
PowerShell -ExecutionPolicy Bypass -Command "Expand-Archive -Path .\Drivers.zip - DestinationPath %_SMSTSMDataPath%\Drivers"
-
設定該驅動包比對條件
如果忽略了這一步,你添加了多少個機型的驅動,部署過程中就會下載下傳多少個驅動。
該步驟主要是在執行下載下傳驅動包之前,判斷計算機的機型是否與之比對,如果比對則下載下傳,不比對則跳過。
Select * from Win32_ComputerSystem where SystemFamily like "%ThinkPad X1 Carbon 7th%"
-
使用 DISM 将提取到本地的驅動程式的驅動程式安裝
這一步一定要放在所有驅動下載下傳的後面。
DISM.exe /Image:%OSDTargetSystemDrive%\ /Add-Driver /Driver:%_SMSTSMDataPath%\Drivers\ /Recurse /logpath:%_SMSTSLogPath%\dism.log
- 設定驅動安裝條件
在
第3步
如果機型與驅動比對,則将驅動下載下傳下來并經過
第 4 步
執行解壓縮,如果一切正常,本地會有一個
Drivers
的目錄(請注意與你前面用7zip 或 PS 壓縮的目錄結構命名保持一緻。