企业使用Windows Sysprep工具来封装Win10、Win11操作系统(最新最全)

以前我分享过如何《使用Windows Sysprep来封装系统》,但是当时写的比较简略,很多朋友肯定还没看懂。回想起当初自己做封装的时候,也是没有人教,自己翻阅相关资料和别人的分享,虽然磕磕绊绊的但也还算顺利。这次重新编辑下,写的详细点,希望对大家能有帮助,少走些弯路。

1、制作模板机

1.1 把一台电脑安装好操作系统、官网原版驱动和需要标准化安装的软件。

注意事项:
(1)操作系统最好是到Windows官网或者msdn下载安装官方纯净版的,不要用戴尔联想等厂商出厂的系统,出厂的系统往往做过一些改动,封装之后容易出很多奇奇怪怪的问题;
(2)安装电脑必备常用的软件和工具;
(3)最好不要封装杀毒软件;
(4)如果要安装语言包,必须要使用lpksetup来安装语言包才行,否则封装会报错;
(5)不要打开微软商店,因为打开之后微软商店可能会对系统里的用户UWP应用自动更新,这些应用都是安装给当前用户的,安装后会导致封装报错。同理,也不要在微软商店安装UWP应用;
(6)不要加域,因为每台电脑主机名都不一样,要等装完系统手动更改后再加域;
(7)如果企业里有多种型号的电脑的话,为了减少驱动问题带来的影响,建议对每个型号的电脑都分开封装,避免以后带来不必要的麻烦。不过因为现在Win10可以自动下载兼容性的驱动,也可以尝试给其他型号的电脑安装;
(8)所有安装设置完成后重启电脑,封装系统前要确保此次开机电脑没有任何更改且系统没有任何异常。

1.2 创建首次登陆计划任务

创建首次首次登陆计划任务主要是为了解决一些无法在系统封装前解决的问题,目前我遇到的问题主要有3点:

(1)笔记本带有NVIDIA的独显,系统弹出提示要到微软商店安装NVIDIA控制面板,但是前面说到不能到微软商店下载安装(戴尔的一些电脑需要安装Waves MaxxAudio Pro才能使用耳机的麦克风功能,要实现封装也可以参考这个案例);
(2)Windows 11系统封装后会出现无法打开Windows安全中心的问题,必须要使用powershell命令重置一下Windows安全中心这个应用;
(3)现在的笔记本安装Windows 11后会自动开启bitlocker加密(部门版本Win10也会),但是用户们不懂管理秘钥,有的公司又是使用本地账户,这对于管理员来说简直就是噩梦,万一出了问题又搞不到秘钥,数据就都没了,详情可参考这篇文章《为了你的数据安全,请立即关闭新电脑的bitlocker!》。所以我这边一般不打开bitlocker加密,对于财务HR等电脑保存的信息比较敏感的人,可以再手动弄下bitlocker加密,并把秘钥保存到服务器上。

1.2.1 获取NVIDIA控制面板的appx文件

(1)先在网页Microsoft应用商店这里找到NVIDIA 控制面板,将链接地址复制下;
在这里插入图片描述
(2)到https://store.rg-adguard.net/这个网址粘贴链接,点击确定后会出现下载列表,点击最新版本的.appx格式文件即可下载,下载后在C盘新建一个名为“Tools”的文件夹,把下载的文件放在里面。
在这里插入图片描述

1.2.2 编写powershell脚本

将以下代码复制到记事本,重命名为.ps1格式的powershell脚本文件,放在刚刚新建的“Tools”文件夹里,脚本名称最好用英文名,且不要有空格。

#重置Windows安全中心
Get-AppxPackage Microsoft.SecHealthUI -AllUsers | Reset-AppxPackage
#安装NVIDIA控制面板
add-appxprovisionedpackage -online -packagepath C:\Tools\NVIDIACorp.NVIDIAControlPanel_8.1.962.0_x64__56jybvy8sckqj.Appx -skiplicense
#关闭c,d,e,f,g驱动器的bitlocker加密
manage-bde -off c:
manage-bde -off d:
manage-bde -off e:
manage-bde -off f:
manage-bde -off g:
#禁用计划任务
Disable-ScheduledTask -TaskName "FixSomeProblemsOnFirstLogin"
pause
1.2.3 创建计划任务

(1)创建一个名为“FixSomeProblemsOnFirstLogin”的计划任务,可以选择其他名字,但是必须是英文且没有空格,且要与上面脚本中禁用的计划任务名字一致,勾选【使用最高权限运行】,配置选择【Windows 10】;
在这里插入图片描述

(2)新建触发器,开始任务选择【登录时】;
在这里插入图片描述

(3)新建操作,操作选择【启动程序】,程序或脚本处填写powershell的路径:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

添加参数处输入:

-executionpolicy unrestricted -file "C:\Tools\FixSomeProblemsOnFirstLogin.ps1"

【-executionpolicy unrestricted】 参数是为了不受限制的执行脚本,【-file】参数后面跟着的是脚本路径;
在这里插入图片描述

(4)取消勾选【只有在计算机使用交流电源时才启动此任务】,其他的选项可以自己按需配置;
在这里插入图片描述

(5)点击确定后完成计划任务的创建,想要的效果就是系统在安装之后第一次登录时自动运行这个计划任务,运行脚本来修复一些我们想要解决的问题,然后最后一行脚本自动禁用这个计划任务,实现只在首次登录时运行一次的效果。可以重启下电脑来看下效果是否符合自己的预期,封装前记得要启用这个计划任务。

1.3 检查系统文件是否有损坏并尝试修复

打开CMD,运行以下命令

sfc /scannow
DISM /Online/Cleanup-Image /RestoreHealth

2、实现无人值守自动应答安装

电脑在第一次安装后会进入oobe开箱体验阶段,创建此文件可以实现无人值守自动安装,跳过oobe阶段,同时还可以设置一些电脑设置。

2.1 安装 Windows ADK

https://docs.microsoft.com/zh-cn/windows-hardware/get-started/adk-install下载适用于匹配你当前系统版本的ADK工具,只需要安装里面的部署工具功能,要在其他电脑上安装,不要在要封装的电脑上安装。
在这里插入图片描述
在这里插入图片描述

2.2 创建自动应答文件

(1)提前将Windows镜像中的ISO/sources/install.wim文件复制出来,在Windows系统映像管理器中选择此文件来创建自动应答文件;
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)新建应答文件;
在这里插入图片描述
(3)目前我的需求是只需要跳过oobe阶段,设置个电脑型号就行了,以下以实现我的需求为例,展开【Components】,再展开【amd64_Microsoft-Windows-Shell-Setup_10.0.22000.65_neutral】找到【OEMInformation】,右键选择【添加设置以传送4 specialize(4)】;
在这里插入图片描述
(4)参考下图进行设置,“Junson”改成自己的公司英文简称;
在这里插入图片描述
(5)参考下图设置电脑型号;
在这里插入图片描述
(6)找到【OOBE】,右键选择【添加设置以传送7 oobeSystem(7)】;
在这里插入图片描述
(7)参考下图进行设置,用于跳过oobe阶段;
在这里插入图片描述
(8)更多设置可参考以下这篇文章:
How to create an unattended installation of Windows 10
完成后将应答文件保存并命名为【unattend.xml】。

3、开始封装

将应答文件unattend.xml放到要封装的电脑的C:\Windows\System32\Sysprep目录中,封装系统前要确保此次开机电脑没有任何更改且系统没有任何异常。打开CMD,运行以下命令

C:\Windows\System32\Sysprep\Sysprep /generalize /oobe /shutdown /unattend:C:\Windows\System32\Sysprep\unattend.xml

如果到这步提示封装失败可以找C:\Windows\System32\Sysprep\Panther里的setupact.log和setuperr.log日志排错

注意,这里封装完成后电脑会自动关机,下次开机一定不要进系统,一定要直接进入PE系统来导出镜像,否则刚封装好的系统又进去的话会直接打开安装,就无法封装了。


4、导出镜像

进入PE系统,打开cmd,使用DISM命令把镜像导出成.wim格式

例如:把 C 分区的系统备份到 D 分区的根目录中,备份文件名为 Thinkpad_T14_Win11.wim,可以封装好后在PE系统的CMD中运行以下命令

Dism /Capture-Image /ImageFile:D:\Thinkpad_T14_Win11.wim /CaptureDir:C:\ /Name:Thinkpad_T14_Win11 /Description:2022-06-24
命令解释:
/Capture-Image - 指定捕获映像。
/ImageFile: - 指定映像文件路径。                
/CaptureDir: - 指定捕获目录。
/Name: - 指定名称。此项不能省略。
/Description: - 指定描述。描述是为了说明这次备份的具体情况,我们这里用了日期。此项可省略。

导出成功后,我们就得到.wim格式的系统安装映像了,保存好此文件,可以放到WDS服务器上进行WDS部署,也可以用PE里的Windows安装器来安装。
在这里插入图片描述


5、常见问题

问题一、封装失败,查看日志提示:

Package Microsoft.OneDriveSync_21220.1024.5.0_neutral__8wekyb3d8bbwe was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image.

在这里插入图片描述

在这里插入图片描述
原因:
系统里有某些UWP应用自动更新安装了,但是更新只是针对当前用户更新,所以需要卸载,如果要安装UWP应用,请参考上面安装NVIDIA控制面板的方法。

解决方法:
使用powershell进行卸载,以管理员方式打开powershell,输入以下命令,找到这个应用,星号为通配符:

Get-AppxPackage *Microsoft.OneDriveSync*

在这里插入图片描述

找到之后再在上条命令加上| Remove-AppxPackage,卸载这个UWP应用:

Get-AppxPackage *Microsoft.OneDriveSync* | Remove-AppxPackage

问题二、封装搜狗输入法或者WinRAR等某些软件报错

原因:网上搜索资料后,某些国内软件有外壳,或者是安装包有某些原因,导致无法封装或封装后无法使用。

解决方法:封装之后使用首次登录任务脚本,加上静默参数来静默安装。

问题三、某些设置在封装之后就没有了

原因:封装不是克隆,并不是封装前什么样子,安装之后就是什么样子。有一篇文章写的很好,可以了解下:《简单介绍一下封装和克隆》

  • 10
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
CDimage 是一款镜像制作工具,出自微软。它是微软内部“专用的”ISO 封装工具,不向外提供;所以,我们平时所看到的、使用的都是从微软内部泄露出来的~!!CDimage是系统整合不可少的利器,大大节省了光盘存放空间;我们平时见的"N合1”光盘大都是由CDimage(或内置CDimage内核的光盘工具,如Easyboot等)创建的。 但是我想网友们最关心的或许并不是以上问题,而是“CDimage到底能不能封装出SHA1值和官方一致的ISO镜像?”。下面我们就来说说CDimage的用法--其实你英文好的话用help命令查看即可!以下是常用参数[2.47版]的中文说明: -l 卷标,无空格(例如:-lMYLABEL) -t 所有目录和文件的时间标记,无空格,任意分隔符(例如:-t12/31/2000,15:01:00) -g 把文件时间从本地时间转换为GMT时间 -h 包含隐藏的文件和目录 -n 允许长文件名(比DOS的8.3文件名长) -nt 允许长文件名,与NT3.51兼容(-nt与-d不能同时使用) -d 不强制转换文件名的小写字母为大写字母 -c 使用ANSI文件名,不用源OEM文件名 -b "El Torito"光盘启动文件,无空格(例如:-bc:\location\cdboot.bin) -p "El Torito"启动目录的平台ID -e 在El Torito启动目录中不要设置软盘模拟方式 -s 在镜像文件中签上数字签名(无空格,给出RPC服务器名和结束点名称,像这样-sServerName:EndPointName) -x 在镜像中计算并制作"AutoCRC"值 -o 优化容量:重复的文件只制作一次 -y 试验选项,跟一个数字(例如:-y1),为试验的目的而产生ISO-9660的非标准变化: 1 在文件名后续加版本号';1'(7.5.1) 2 圆整目录大小为2K的倍数(6.8.1.3) 5 先写\i386目录,逆序 6 允许目录记录正好排到扇区结束点(符合ISO-96606.8.1.1但是突破了MSCDEX) 7 产生NT4.0下的16位应用程序时报警 -oc 更慢的重复文件探测方式:二进制比较而不是MD5哈西值 -oi 比较文件时忽略diamond压缩时间标记 -os 建立镜像时显示重复的文件(-o选项可以组合,像这样:-ocis) -k (keep)即使某些源文件打开失败也生成镜像 -m 忽略镜像文件最大681,984,000bytes的限制 -a 《分配概要》显示文件和目录的大小 -q 只扫描源文件,不建立镜像文件
微软内部镜像封装工具:CDIMAGE_2.52 参数: CDIMAGE 2.46 CD-ROM and DVD-ROM Premastering Utility Copyright (C) Microsoft, 1993-2000. All rights reserved. For Microsoft internal use only. Usage: CDIMAGE [參數] 來源目錄 目標影像檔 -l 光碟標籤,不含空白鍵 (e.g. -lMYLABEL) -t 將所有檔案和目錄都設為同一日期,不含空白鍵和任何特殊符號 (e.g. -t12/31/2000,15:01:00) -g 將時間設為 GMT 時間而非本地時間 -h 包含隱藏檔和隱藏目錄 -n 允許長檔名 (超過 8.3 檔名) -nt 允許長檔名,但受限於 NT3.51 相容性 (-nt 和 -d 不可同時使用) -d 不強制將小寫檔名改為大寫檔名 -c 使用 ANSI 檔名以對應原始目錄中的 OEM 檔名 -j1 編碼為 Joliet Unicode 檔名並在 ISO-9660 名稱空間中產生相容於 DOS 的 8.3 檔名格式. (可在 Joliet 系統或其他一般的 ISO-9660 系統中被讀取, 但某些檔名在 ISO-9660 名稱空間中可能會被改變, 以遵守 DOS 8.3 與 ISO-9660 命名限制) -j2 編碼為 Joliet Unicode 檔名而不遵守 ISO-9660 檔名規則 (必須在 Joliet 作業系統從 CD 讀取檔案) 當使用 -j1 或 -j2 參數時, -n, -nt, 和 -d 參數無法生效 並且不可使用. -js 以 -j2 參數將影像檔中的非 Joliet 檔案 "readme.txt" 編碼. (e.g. -jsc:\location\readme.txt). 這樣可以讓這張光碟的這個唯一的檔案在不支援 Joliet 格式的系統中 (Windows 3.1, NT 3.x...等)被看見. -u1 編碼為 "UDF-Bridge" 媒體 -u2 編碼為 "UDF" 檔案系統而不對映 ISO-9660 檔案系統 (必須有 UDF 相容作業系統才可讀取檔案) -ur 以 -u2 參數將影像檔中的非 UDF 檔案 "readme.txt" 編碼. (e.g. -usc:\location\readme.txt). 這樣可以讓這張光碟的這個唯一的檔案在不支援 UDF 格式的系統中 被看見. -us 分散 UDF 檔案 -ue embed file data in UDF extent entry -uf embed UDF FID entries -uv UDF Video Zone compatibility enforced -b "El Torito" 開機區段檔案,不佔檔案空間 (e.g. -bc:\location\cdboot.bin) -p Platform ID for the "El Torito" boot catalog -e 在 El Torito 開機記錄中設置不模擬軟碟。 -s 在影像檔中加入數位簽章 (不佔空間, 必須提供 RPC 伺服器與終點名稱如下 -sServerName:EndPointName) -x 在影像檔中計算與編碼 "AutoCRC" 值 -o 處理重複檔名以將影像檔大小最佳化 (譯註:縮小影像檔容量,即本程式之精華所在) -oc 使用二進位比對代替 MD5 雜湊值, 這會以較慢的速度比對重複的檔案. -oi 比對檔案時忽略高度壓縮的時間戳記 -os 建立影像檔時顯示重複的檔名 (-o 等類似參數不可簡寫為 -ocis) -w 依照數字提供不同的警告等級 (e.g. -w4) 1 回報非 ISO 或非 Joliet 相容檔名或路徑 2 回報非 DOS 相容檔名 3 回報長度為零的檔案 4 回報每一個加入影像檔中的檔名 -y 依照數字提供不同的測試選項 (e.g. -y1),用於測試用途, 可產生不遵守 ISO-9660 的變體影像檔 1 encode trailing version number ';1' on filenames (7.5.1) 2 round directory sizes to multiples of 2K (6.8.1.3) 5 write \i386 directory files first, in reverse sort order 6 allow directory records to be exactly aligned at ends of sectors (ISO-9660 6.8.1.1 conformant but breaks MSCDEX) 7 warn about generated shortnames for 16-bit apps under NT 4.0 b blocksize 512 bytes rather than 2048 bytes d suppress warning for non-identical files with same initial 64K l UDF - long ads used in file entries instead of short ads r UDF - number of ad's is random w open source files with write sharing t load segment in hex for El Torito boot image (e.g. -yt7C0) f use a faster way to generate short names -k (保留) 即使開啟部分來源檔案失敗時也強制建立影像檔 -m 忽略 681,984,000 bytes 的影像檔限制,以便產生 650MB 以上的影像檔 -a allocation summary shows file and directory sizes -q 只掃描來源檔案,不建立影像檔 NOTE: 大部分選項允許您建立不依循 ISO-9660 的影像檔, 並且也可能和一個或多個作業系統不相容。 若您想嚴格的依循 ISO 標準或 DOS, 使用 -w2 警告層級並更正任何不一致的報告 YOU are responsible for insuring that any generated CDs are compatible with all appropriate operating systems. Also note that Microsoft company information is placed in the image volume header, so don't use this program to generate CDs for companies other than Microsoft.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值