SCCM小技巧 - 部署系统时提高驱动下载速度,缩短系统部署时间
Posted 微风ATBJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SCCM小技巧 - 部署系统时提高驱动下载速度,缩短系统部署时间相关的知识,希望对你有一定的参考价值。
前言
生产环境中,当我们使用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 压缩的目录结构命名保持一致。
所以这里使用%_SMSTSMDataPath%\\Drivers\\
作为判断条件,如果该路径下的Drivers目录存在则执行安装驱动的任务,否则则跳过。
至此,用驱动包的方式替代传统驱动安装的任务已经设置完成。欢迎各位同学提问或纠正。 Enjoy~~ :smile:
以上是关于SCCM小技巧 - 部署系统时提高驱动下载速度,缩短系统部署时间的主要内容,如果未能解决你的问题,请参考以下文章