近期(当时写文章时在今年4月份)在测试在Windows Server 2016 的虚拟桌面,在测试Windows 7的虚拟桌面时一切良好,但在测试Windows 10的虚拟桌面时,在对Windows 10的虚拟机进行封装时,出现"Sysprep无法验证你的Windows 安装"的错误提示,如图1-1所示。

图1-1 sysprep封装失败

在打开c:\windows\system32\sysprep\panther文件夹中的setupact.log文件查看时,有如下几行错误信息(部分):

SYSPRP Failed to remove apps for the current user: 0x80073cf2.

SYSPRP Exit code of RemoveAllApps thread was 0x3cf2.

SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'SysprepGeneralizeValidate' from C:\Windows\System32\AppxSysprep.dll; dwRet = 0x3cf2

SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x3cf2

SYSPRP RunPlatformActions:Failed while validating SysprepSession actions; dwRet = 0x3cf2

在网上搜索资料发现这种情况是普遍现象,基本上每个封装Windows 10的系统都会碰到。解决方法是将"Windows Media Player Networking Sharing Service"服务停用,但在Windows 10这个服务默认是"手动"状态,没有启用。

开始的时候我使用的是最新的Windows 10版本(版本1703),我以为是版本的问题,但尝试安装了1607、1511仍然报这个错误。我在MVP群询问,有MVP告诉我这个Bug一直存在。

之后进行测试,由于在安装Windows 10第一次登录的时候,使用的是一个新创建的帐户,例如我当前实验的机器创建的用户名是linnan,我估计可能是这个帐户权限不够。在系统中启用Administrator帐户,换用Administrator登录,仍然出现同样的错误。之后再看日志,无果。但我感觉可能是"应用商店"造成的。我尝试删除了Administrator以外的其他帐户,再次执行sysprep进行封装,成功!之后分别在Hyper-V、VMware Workstation创建新的虚拟机,安装不同版本的Windows 10进行测试,同样成功。

用一句话来概括:在Windows 10中进行系统封装时,启用并使用Administrator帐户登录,并删除Administrator以外的其他帐户即可。下面我们介绍一下主要步骤。

(1)在Windows 10中,打开"计算机管理→本地用户和组→用户",双击Administrator打开"属性"对话框,取消"帐户己禁用"的选项,如图1-2所示。

图1-2 启用Administrator帐户

(2)注销当前用户,以Administrator登录,如图1-3所示。

f89ef8b568df362b1848514ee9195f2b.png-wh_

图1-3 换用Administrator登录

(3)打开"所有设置→帐户→其他用户",可以看到当前共有2个帐户分别是linnan和ln,在确认已经备份了这两个帐户的数据后(实际上这就是安装完系统之后创建的用户,不会有数据,一般只有一个用户),选中一个用户,单击"删除"按钮,如图1-4所示。

d8cf9e1f5b33f49af8f7b630a54831cd.png-wh_

图1-4 删除帐户

(4)在弹出的"要删除帐户和数据吗"对话框中单击"删除帐户和数据"按钮,如图1-5所示。

图1-5 删除帐户和数据

(5)之后将其他帐户及数据一同删除,删除之后在"其他用户"中没有用户,如图1-6所示。

36d36045554e89a6d64e4020e732d434.png

图1-6 删除所有其他用户

(6)以管理员身份进入命令提示窗口,进入c:\windows\system32\sysprep文件夹,执行sysprep /generalize /shutdown,在"系统准备工具3.14"对话框单击"确定"按钮,如图1-7所示。

969ce8a585a6ef6fa326d6118f6b2c4c.png-wh_

图1-7 确认执行系统封装

(7)之后sysprep将开始执行,如图1-8所示。

49dc9bb74527bec9733f529a0e331c75.png-wh_

图1-8 sysprep开始执行

(8)执行完成之后,虚拟机关闭,如图1-9所示。之后可以用这个虚拟机作为模板,用以创建Windows 10虚拟桌面,这些不一一介绍。

图1-9 封装完成关机

(9)其中图1-10是在Windows Server 2016中发布的Windows 10虚拟桌面,使用Heaven Benchmark 4.0进行测试的截图。

图1-10 GPU测试

【说明】本文发表在《网络运维与管理》第10期上,发表时略有删减。