桌面文件使用 WAIK 部署 Windows XP

Wes Miller

客户所表现出的多样性实在是让人惊奇(甚至是令人生畏)。理想情况下,所有客户部署 Windows 的进度和版本均相同。这样肯定会使测试轻松得多。当然,事实并非如此。尽管你们中的某些人正在(或已完成)部署

Windows Vista®,或正满腔热情地准备在生产环境中部署首个 Windows Server® 2008 只读域控制器 (RODC),仍有许多人一直提醒我(感谢他们)你们也在部署规划已久的 Windows® XP 和/或 Windows Server 2003 R2。

几天前,我收到读者的一封电子邮件,问:“Windows 自动安装工具包 (WAIK) 能否用于 Windows XP?在部署 Windows XP 时应如何使用 WAIK 呢?”好吧,我来试着回答这一问题。

再访 WAIK

就在一年前,我撰写过一篇有关 WAIK 的专栏,它是一套功能非常强大的工具,旨在帮助用户部署 Windows Vista (technetmagazine.com/issues/2007/01/DesktopFiles)。WAIK 现在也可处理 Windows Server 2008 部署,这两种操作系统均具有一个新的安装基础结构 — WAIK 中的工具大大有助于有效利用它们。并且,好坏暂且不论,Windows Vista 之前的 Windows 版本无论是使用无人参与安装还是 Sysprep,均要求您使用专门为其设计的工具。但是,我想再来看看 WAIK,重点介绍可用于帮助部署 Windows XP 的工具。

Windows PE 2.0 为了让大家了解一些基础知识,首先来看看我在 2008 年 2 月撰写的有关 Windows PE 2.0 和 Windows XP 双引导的专栏 (technetmagazine.com/issues/2008/02/DesktopFiles)。实质上,如果该情形中的 Windows PE 2.0 对您适用,则它也同样适用我在此描述的情况。您需要问自己的问题是:“对于 RAM 不足 512MB 或 Windows Vista 不支持高级配置和电源接口 (ACPI) 的那些系统,是否要部署 Windows XP?”如果答案为是,则需使用 Windows PE 1.6,并且必须确认它属于软件保障的内容。目前仅 Windows PE 2.0 和 2.1 为免费使用,版本 1.6 和更低版本则仍需要具有软件保障成员资格。

ImageX/WIM ImageX 和 Windows 映像格式 (WIM) 两者均设计用于自 Windows 2000 起的所有 Windows 版本,适用 NTFS 和 FAT 两种格式 — 因此,您当然可用它们来部署 Windows XP(或 Windows Server 2003)。

Windows 部署服务 Windows 部署服务 (WDS) 取代了远程安装服务 (RIS),最初是作为带外 (OOB) 版本随 WAIK 1.0 提供,之后更新并集成到 Windows Server 2003 SP2 中。现在,Windows Server 2008 中随附了该服务,它具备了更多功能,并且仍然非常适合于 Windows XP 部署。

如果您使用的是 RIS 服务器或运行于旧模式的 WDS 服务器,那它就不太适合您。但是,如果您已开始向运行于混合模式或本机模式的 WDS 过渡,那没问题 — 应将 WDS 看做 Windows XP 部署的备选内容。

Windows 系统映像管理器 (WSIM) WSIM 实际只适用部署 Windows Vista 和 Windows Server 2008。如果要部署 Windows Server 2003 或更低版本,WSIM 的帮助则不大。

Windows XP 部署工具

Windows XP(就像 Windows NT® 4.0 到 Windows Server 2003 的所有 Windows 版本)可通过 unattend.txt 文件或“映像”进行部署。在本专栏中,我将不再讲述无人参与安装,因为它现在确实已经成为过去。如果要利用 WAIK(尤其是 ImageX),您执行的是基于映像的部署。因此,您需要的是 Sysprep.inf(Sysprep 的应答文件格式)而非 unattend.txt。

映像这一术语在此泛指如何获取 OS 图像。您以前很可能是使用 Ghost、PQDI 或其他映像工具。在 ImageX 之前,Microsoft 并未提供任何方法来获取经 Sysprep 处理的 OS 和应用程序,并将它们复制到一个或多个目标计算机中。

在构建 Windows 映像时,必须记住两点:

  • 除非需要在单处理器和多处理器之间转换,否则不能更改硬件抽象层 (HAL)。正如我在之前发布的专栏中提到的,在 ACPI 和非 ACPI 体系结构之间转换时,无法安全地更改映像。
  • 您可更改大容量存储控制器。通常人们都认为不能做此更改,但那是一种误解。但是,为实现这一目标,必须使用 Sysprep 来安装目标计算机可能需要的所有大容量存储控制器;部署后,除了“粘在”目标系统上的驱动器,需使用 Sysprep 删除其他所有控制器。我马上就会讲到这一点。

记住这两点后,就可制作某个系统的映像,并在使用相同或兼容 HAL 的任何目标系统上使用它。

使用的工具

只要在基于映像的部署方案中处理 Windows XP,都需要备妥以下三项以供使用:

Ref.chm 无人参与安装文本文件参照。请记住,在 Windows Vista 之前的任意 Windows 版本中配置可选组件的最佳时机是进行映像之前。然而,如果确实需要在安装后再安装可选组件,可通过运行 sysocmgr.exe 来达此目标(如 support.microsoft.com/ kb/222444 所述)。如果要部署 Windows XP Tablet PC Edition,请遵循 go.microsoft.com/fwlink/?LinkId=108589 中的步骤来创建单个映像,将 Tablet PC 组件安装到适合的系统上。

Sysprep 它是 Microsoft 支持的磁盘复制系统制作方法。我偶尔仍然会看到有人建议使用第三方安全标识符 (SID) 更改程序;我坚持建议使用 Sysprep,因为其他工具容易漏掉关键的 Windows SID 位置(特别是并非打开状态导出的位置)。

安装管理器 创建 sysprep.inf 文件最快捷最轻松的方法。按照惯例,请确保已准备了正确的版本 — 它通常应与要部署的 Windows 版本相同(例如,使用 Windows XP SP2 部署工具来部署 Windows XP SP2)。

Windows XP CD 上提供了以上三项。在 go.microsoft.com/fwlink/?LinkId=107541 上提供了更新版本。

还需准备 tap.exe。该实用程序包含在 Windows XP Embedded 工具中(go.microsoft.com/fwlink/?LinkId=108590),即使是免费的评估版也一样。在 Windows PE 下,tap.exe 会返回有关 Windows PE 找到的所有即插即用 (PnP) 设备的信息;最有趣的是,它会告知您 Windows PE 为设备所选择的 HAL(请参阅图 1)。这一点非常重要,主要原因是 Windows PE 用于选择 HAL 的逻辑与整个 Windows 安装程序用于确定放置哪个 HAL 的逻辑一样 — 因此,Windows PE 中的 tap.exe 非常有助于了解 Windows 为特定系统推荐哪个 HAL。

Figure 1 Tap.exe 实用程序会告知您 Windows PE 为特定系统所选择的 HAL

Figure 1** Tap.exe 实用程序会告知您 Windows PE 为特定系统所选择的 HAL **(单击该图像获得较大视图)

创建映像

通过完成以下步骤,可使用 ImageX(是的,可使用其他映像工具,但是您很快就会知道为什么 ImageX 是该特定工作流的理想工具)开始制作要部署的 Windows XP 映像。

第一步是收集所有必需的工具和组件,包括 Sysprep、安装管理器、ImageX 和 Windows PE(版本 2.0 或 1.6,具体取决于您的需求以及您的权限。请记住,如果要搭配使用版本 2.0 和 ImageX,则在创建您的分区时需使用 bootsect.exe 和 /nt52 开关,以确保您的引导代码与 Windows XP 兼容)。

当然,还需要安装有 Windows XP(任意 SKU)的 PC,以及 Windows 和任意其他已安装软件的最新更新项。理想情况是该系统之前应从未加入过域,这样以后出现域/网络问题的可能性更小。系统应仅安装了可映像的应用程序,没有会秘密存储机器名、SID、域或用户特定信息的应用程序,更改 SID 时,Sysprep 可能会漏掉或无法替换这些信息。此外,应使用您希望部署时最常用的 HAL。在较新的硬件上,通常是 ACPI 多处理器 (MP) HAL,因为现在基本流行的都是 ACPI 和多核(之前的超线程也使用 MP HAL)。

现在,按您为最终用户设定的方式配置 Windows XP 系统。安装希望大多数用户都具有的全部应用程序(以及无法以无人参与方式安装的应用程序)。安装或删除任意 Windows 可选组件,这样系统就会按您所需的最终用户方式安装。然后配置桌面。以“管理员”身份登录,并对配置文件进行修改,包括桌面背景、屏幕保护程序、“开始”菜单等等。默认情况下(从 Windows XP SP2 起),Sysprep 会将设置从“管理员”帐户复制到“默认用户”帐户。

接下来,运行安装管理器(请参阅图 2),指定要创建一个新的 Sysprep 无人参与文件并且完全自动化安装。请注意,由于您要运行安装管理器,因此需输入一个产品密钥。如果您手边没有或者希望稍后编写一个脚本(并且您没有批量许可证密钥),可指定在 Windows XP 或 Windows Server 2003 CD 上的默认 unattend.txt 文件中所提供的密钥(它允许完成安装但不允许激活)。

Figure 2 使用安装管理器创建 Sysprep 应答文件

Figure 2** 使用安装管理器创建 Sysprep 应答文件 **(单击该图像获得较大视图)

还需提供机器名。您可能希望在稍后使用 SQL 或其他方式来自动化这一过程,但是现在,在机器上部署 WIM 之后,只需在运行 Sysprep 之前输入一些值然后使用脚本来替换机器名即可。

请记住,如果要为“管理员”帐户提供密码,仅当映像中的现有“管理员”帐户没有密码时才适用。并且,请注意,域加入部分不允许加密域加入凭据。应尽可能使用最低权限帐户来设置机器帐户。最后,建议使用安装管理器中的“Version String”(版本字符串)选项来跟踪刚创建的映像“版本”。

现在,将 Sysprep.inf 文件放到包含 sysprep.exe 和 setupcl.exe 的 C:\Sysprep 目录中,并且将以下代码添加到 .inf 文件中:

[Sysprep]
BuildMassStorageSection = Yes

[SysprepMassStorage]

然后运行 Sysprep –bmsd。它会修改您的 sysprep.inf,并添加您的 Windows 安装程序所知道的所有大容量存储 ID(如图 3 所示)。如果希望添加其他设备,当然可以,或者可将它们添加到您的 Windows 安装程序并重新运行 sysprep –bmsd。

Figure 3 将大容量存储 ID 添加到 sysprep.inf

Figure 3** 将大容量存储 ID 添加到 sysprep.inf **(单击该图像获得较大视图)

接下来,将 sysprep.inf 文件复制到共享中,然后运行 sysprep.exe –factory 并关闭您的系统。使用以下代码重新启动 Windows PE 并连接 UNC 共享(建议):

NET USE Y: \\myserver\myshare
/USER:DOMAIN\USER password

现在,使用以下代码捕获映像:

ImageX /capture C: Y:\NewImage.wim 
"Factory Mode capture from 4/1/2008"

然后关闭系统。

现在就拥有了可通过 factory 模式更新的映像。在此我就不介绍它的细节,简单地说,factory 模式是映像做好部署准备之前最安全的保存模式。有关详细信息,请参阅之前提及的 Windows XP deploy.cab 文档。

如果准备好制作映像以进行部署时(即一旦准备好实施),引导到 Windows PE 并使用 Diskpart 来创建所需分区。使用 format 命令来格式化分区,并根据需要使用 bootsect.exe 来应用 Windows Vista 之前的引导代码 (/nt52)。现在,使用以下代码连接到 UNC 共享(或使用 cd 命令进入映像所在的目录):

NET USE Y: \\myserver\myshare
/USER:DOMAIN\USER password

然后按如下方式应用映像:

ImageX /apply Y:\NewImage.wim C: 1

最后,重启到 Windows Factory 模式并对映像进行所有必要的更新(此处需使用 winbom.ini 文件;如需帮助,请参阅 deploy.cab 中的 ref.chm)。Winbom.ini 应始终包含以下行,它们要求它重新密封准备在下次重新启动时运行 Mini-Setup 的映像:

[FACTORY]
ResealMode = Mini

完成后关机。重复之前用于捕获映像的步骤,但现在将 capture 命令修改为:

ImageX /append C: Y:\NewImage.wim "Resealed 
and ready for deployment – captured 4/4/2008"

通过使用 /append,可节省相当大的空间。您刚才已将 factory 模式和重新密封映像结合到一起,因此可轻松地在两者之间切换。也可使用 /delete 来丢弃任何不想使用的映像。但是,请记住,这样不会节省空间,因为它只是丢弃对指定卷映像的参照。如果要清理未使用的空间,需导出希望保存的所有卷映像。

无论您要部署的是最新版本还是早期版本的 Windows,WAIK 均会对您有所帮助,尽管其设计目的和支持对象主要是 Windows Vista 和 Windows Server 2008。虽然需要结合使用 Windows XP 工具和 WAIK 工具(主要是 ImageX 和可能使用 Windows PE 2.0),Microsoft 现在提供了开始部署任意版本 Windows 需要的所有一切。

Wes Miller 是位于德克萨斯州奥斯汀市的 CoreTrace 公司 (www.CoreTrace.com) 的高级技术产品经理。在此之前,他在 Winternals Software 公司任职,并曾在 Microsoft 担任项目经理。您可以通过电子邮件 technet@getwired.com 与 Wes 联系。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.