桌面文件再探 Windows 部署服务

Wes Miller

我最近的几期专栏都在讨论与 Windows Vista 以及下一版本的 Windows Server(代号为“Longhorn”)相关的部署技术。软件始终都是发展变化的,因此我今天要简单介绍与 Windows 部署服务 (WDS) 有关的更新功能,这些功能将在

Windows Server®“Longhorn”中提供。我还从读者那里以及过去几个月我所参与的讨论中收集了不少问题,并将借此专栏之机回答其中一些与 ImageX、WDS 和 Windows® PE 有关的问题。

新增功能和增强功能

在 WDS 构想之初,人们希望在 Windows Server 2003 中作为加载项提供的功能会与以后要在 Windows Server“Longhorn”中提供的功能基本上相同。然而,Windows Server“Longhorn”的 WDS 开发团队一直在刻苦研究三个关键的新功能,这三项新功能预计将是即将推出的服务器平台上的 WDS 所独有的。

这三项新功能分别为多播部署 (multicast deployment)、增强的 TFTP 下载性能和针对 x64 系统的可扩展固件接口 (EFI) 网络引导支持。这些强大的功能可以使 WDS 用户和管理员受益匪浅,因此我们将一一进行讨论,让大家对这些新特性有所了解。不过请注意:Windows Server 2003 的 WDS 的任一未来版本并不预定包含这些功能。

多播功能

远在我加入 Windows 团队以前,多播功能就是用户在运用远程安装服务 (RIS),甚至是进行一般 Windows 部署时讨论最多和要求最为强烈的功能之一。用过第三方部署技术的客户都知道多播部署的强大优势。Microsoft 内部的几种特定于方案的部署技术 - 特别是自动部署服务 (ADS) - 都实现了多播功能,但却没有一个针对 OEM 和企业部署,而且每当我与 OEM 或企业客户就部署展开探讨时,他们经常要求提供多播功能。

多播的一个主要优点是允许多台计算机同时接收信息。也就是说,发送方(这里指 WDS 服务器)只发送一次要传送的信息。随后各个客户端必须从头到尾侦听整个通信过程,以接收信息。由于所有客户端都在同时明确地侦听一个网络地址,因此具有双重好处:一是由于减轻了执行同一任务的多个客户端对网络造成的拥塞,因此提高了部署速度;二是由于每个客户端都在侦听单个流,网络饱和度也得到了降低。

但多播自身的基础架构一直以来也是它的不利之处。设想一下我们许多人在孩童时代玩过的“传话”游戏。您或许还能回忆起游戏的玩法:

  1. 您首先告诉旁边某人一句短语。
  2. 这个人听到了短语。
  3. 他继续向下一个人重复这句短语。
  4. 以此类推,在场的所有人都一一重复这一过程。

由此可见多播的固有问题是:要将整个短语告诉四个人,这些人必须都在屋子里并同时听您说短语。如果这时又进来一个人,并且不知道赶紧听其他人在说什么,您就必须向所有人重复整个短语。

多播的工作原理与传话游戏基本相同。您首先通过电缆发送一个二进制文件映像(通常是基于扇区的磁盘映像)。在首次广播映像时,如果需要接收映像的客户端尚未作好准备,它们通常必须排队等待。更麻烦的是,如果客户端由于网络出现故障或性能不佳而丢失过多数据,这些遇到问题的客户端或者需要完全退出通信队列(因为它们已无法确保能够收到完整的磁盘映像),或者会连累整个组必须放慢速度来顺应它们的需要。因此在为同时部署数百个系统的方案设计多播系统时,有一个问题就需要多加注意,那就是既要确保所有客户端同时启动,又要保证单个客户端速度的迟缓不会影响到其他客户端。

而 WDS 团队通过提供一个全新的多播引擎彻底改变了这种局面。该引擎利用基于文件的 Windows 映像格式 (WIM) 基础架构提供了一些非常独特的功能。虽然借助大多数第三方多播软件也可以执行相同的分步多播方案,但相比之下,WDS 多播解决方案提供的功能要强大得多。

第一,在传输期间,客户端计算机可随时加入。多播广播是一种文件流的“轮询”广播,它可以持续广播直至每台客户端计算机的需要都得到满足。因此,客户端何时进入联机状态都没有关系。它们会侦听 WDS 服务器,而服务器在完成映像文件广播后会再次从头开始广播。客户端如果错过了某个文件,只要继续侦听,直到该文件再次出现即可(就像旋转的木马)。

第二,协议是全新的,并提供了拥塞控制和流控制,这意味着它能很好地应用于实际网络环境,并且不会干扰现有网络通信。而通常网络管理员都担心这样一个问题,即在打开多播功能时,原本是想提高通信效率,但令人啼笑皆非的是,网络中竟因此充斥了巨大的流量(某些多播解决方案已经证实了这一点)。

第三,该解决方案是为了脱离对 WDS 和 Active Directory® 的依赖而设计的。这意味着要利用该解决方案,既不需要 Active Directory,也无需实施 WDS。ImageX 多播可以独立进行,适合许多方案使用。该多播客户端是一个命令行应用程序,可在 Windows Server“Longhorn”(及其关联的 Windows PE 版本)、Windows Vista™、Windows XP Service Pack 2 (SP2) 或最近发布的 Windows Server 2003 SP2 中运行。

WDS MMC 和 WDSUtil 应用程序中新增了一些用于设置和配置多播功能的管理任务。此外,WDS 客户端的用户界面还作出了改动,可以指示多播功能是否处于使用状态。

WDS 管理工具使管理员能够监控对客户端的实时传输进度(包括从传输中删除客户端)。管理工具还提供了全面的日志记录和报告功能,这意味着管理员现在有办法对安装进行记录 - 而这正是过去的 RIS 迫切需要的一项功能。

Windows Server“Longhorn”的 WDS 将提供多播功能,这是最近我所听到的比较令人兴奋的消息之一。团队能够以一种非常适合 OEM 和企业使用者的方式实现这一客户经常要求的功能,这确实是一个振奋人心的好消息。

增强的 TFTP 下载性能

普通文件传输协议 (TFTP) 是预引导执行环境 (PXE) 的一个关键组成部分,该环境本身是 RIS 和现在的 WDS 的基础。之所以选择 TFTP 并不是因为其网络效率高或比较稳定,而主要是因为它是一个非常小的协议(无状态、不安全且基于 UDP),能够封装在引导 ROM 中,而这正是系统从网络进行 PXE 引导所必需的。

Windows Server“Longhorn”的 TFTP Daemon (TFTPD) 已经过彻底重写,TFTP 下载性能有望显著改善(这是功能上的一个主要增强,所有 WDS 部署都基于一个从 RAM 映像引导的 Windows PE)。对于那些希望在 Windows Server 2003 平台上能够更高效地从 RIS 或 WDS 服务器下载 Windows PE 的用户来说,这是一个好消息。

随着 PC 领域开始从普遍应用的 BIOS(当今 x86 PC 的基础)向 EFI 迁移,Microsoft 已准备好将 WDS 应用于新推出的 x64 服务器系统,使用 EFI 来代替 BIOS 进行引导。其所包含的功能将使 x64 客户端系统能够从 WDS 服务器进行 PXE 引导。

问题

介绍了 WDS 更新,接下来我将利用本专栏的余下部分回答一些问题,其中包括我在电子邮件中收到的、最近网上讨论热烈的以及我认为读者可能普遍感兴趣的问题。

问:能否在无 DHCP 环境中使用 WDS?我的网络不支持 DHCP 或 PXE 通信。

答:是的,您可以在无 DHCP 环境中使用 WDS,但该解决方案无法扩展,因为您必须为打算支持的每个安装创建唯一的 CD 介质,并且每个安装都要有属于自己的唯一的 IP 地址。这种情况下使用 DVD 介质进行安装可能更为可取。如果必须通过无 DHCP 的 WDS 进行安装,请按以下步骤操作:

  1. 使用静态定义的服务器(指向安装操作将要使用的特定 WDS 服务器)创建一个 WDS Discover 映像。
  2. 在此目标 WDS 服务器的端口 4011 上启用 DHCP 通信。即使不使用 DHCP,也要启用此通信,因为 WDS 客户端要通过它与服务器握手。
  3. 使用静态 IP 地址(而不是 DHCP)创建唯一的 Windows PE 介质。

请注意,此解决方案采用起来比较麻烦,因为要避免 IP 地址冲突,客户端介质必须是唯一的,而且您必须指向网络上某台特定的 WDS 服务器。由于 PXE(它本身就基于 DHCP)是 WDS 的基础,因此您可以明白为什么您的环境中启用了 DHCP 后 WDS 的工作状况会大大改善。

问:我想从 PXE 服务器(而不是 WDS 服务器)通过 PXE 引导 Windows PE 2.0。应该怎样操作?

答:support.microsoft.com/kb/926172 上的知识库文章可能为如何从非 WDS 的 PXE 服务器引导 Windows PE 2.0 提供了一些指导,但请注意,Microsoft 在这方面的支持相当有限。

问:BDD 是什么?Windows 自动安装工具包 (WAIK) 是 BDD 的一部分吗?

答:BDD(实际上是 Business Desktop Deployment Solution Accelerator)是一个框架,它为如何以一种可管理、可重现的方式使用 Windows 部署工具(如 WAIK)提供指导。WAIK 并不直接从属于 BDD,但 BDD 会将所有必需的工具(包括 WAIK 在内)组织在一起以便您进行安装(如果您尚未安装这些工具的话)。因此虽然从技术上讲 BDD 并不包含 WAIK,但它要发挥作用确实离不开 WAIK。有关 BDD 的详细信息,请访问 microsoft.com/desktopdeployment

问:从哪里可以获得适用于我的 Windows Server 2003 系统的 WDS?

WDS 是作为 WDS 目录中 WAIK 下载的一部分提供的(请参阅 go.microsoft.com/fwlink/?LinkId=85377)。

问:如何配置 Windows PE 2.0 才能让其使用静态 IP 地址引导并支持 DNS 配置?

答:若要配置静态 IP,请使用图 1 所示的 unattend.xml 示例,并将其放在 CD、USB 闪存驱动器或其他可引导介质的根目录下以便提取。如果还需要 DNS 支持,您需要再运行以下命令:

Figure 1 图 1 unattend.xml

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
 <settings pass="windowsPE">
  <component 
   name="Microsoft-Windows-TCPIP" 
   processorArchitecture="x86" 
   publicKeyToken="31bf3856ad364e35" 
   language="neutral" 
   versionScope="nonSxS" 
   xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <Interfaces>
    <Interface wcm:action="add">
     <Ipv4Settings>
      <DhcpEnabled>false</DhcpEnabled>
     </Ipv4Settings>
     <UnicastIpAddresses>
      <IpAddress wcm:action="add" wcm:keyValue="1">
       192.168.0.1</IpAddress>
     </UnicastIpAddresses>
     <Identifier>Local Area Connection</Identifier>
    </Interface>
   </Interfaces>
  </component>
 </settings>
<cpi:offlineImage 
 cpi:source="wim:c:/simtest/winpe.wim#Microsoft Windows Vista PE (X86)" 
 xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

net start "DNS Client"
netsh interface ipv4 add dnsserver "Local Area Connection" 192.168.2.10 index=1

问:能否通过光纤通道控制器引导 Windows PE?

答:可以,提供的光纤通道 HBA 支持通过 Int13 注册启动卷,这样启动卷即可在 BIOS 中显示为 Windows PE 的可启动卷。您还必须像添加任何其他现成的存储控制器驱动程序那样添加光纤通道控制器的驱动程序。

问:Windows PE 2.0 总是从 RAMDisk 引导。我的某些系统没有足够的 RAM 来支持这种引导方式。请问不用 RAMDisk 能否能够引导 Windows PE 2.0?

答:能。特别是对于内存小于 256MB 的系统,为了进行引导,可能需要实现不基于 RAMDisk 的 Windows PE。目前 Microsoft 正在计划提供一篇支持文章来讲解如何实现这一点。有两点需要特别注意:一是您将不能像使用 RAMDisk 时那样交换介质,二是引导速度将比基于 RAMDisk 的 Windows PE 2.0 版本慢很多。

问:我尝试过从非 DVD 介质引导 Windows PE 2004 和 Windows PE 2005(1.5 或 1.6)以及从 DVD 复制图像(或其他数据)。我并未从该 DVD 引导,只是从中复制数据,但却无法执行操作。在完整安装的 Windows 下该 DVD 是可读的,但在 Windows PE 下却报错说该卷已损坏或不可读。这一问题可以解决吗?

答:可以解决。默认情况下,Windows PE 1.x 并不支持 UDF 格式的介质。根据定义,DVD 可以为 ISO Bridge 格式(一种兼容 ISO 和 UDF 的双格式)或仅为 UDF 格式。要运行正常,您需要向 Windows PE 安装中添加 UDF 驱动程序。Windows PE 中已经提供了此驱动程序,只是没有安装而已。要安装此驱动程序,请执行以下操作:

  1. 在记事本中打开 I386 目录(对于 Windows PE 的硬盘安装应为 MiniNT)中的 txtsetup.sif 文件。
  2. 找到称为 [CdRomDrivers.Load] 的部分,然后查找包含名为 cdfs.sys 的驱动程序的行。在该行下面添加这样一行代码:udfs = udfs.sys。此输入应类似于以下所示:
[CdRomDrivers.Load]
cdfs = cdfs.sys
udfs = udfs.sys

3. 找到称为 [CdRomDrivers] 的部分,然后查找包含 cdfs 的行。在该行下面添加这样一行代码:udfs = "Universal Disk File System"。此输入应类似于以下所示:

[CdRomDrivers]
cdfs = "CD-ROM File System"
udfs = "Universal Disk File System"

4. 保存并关闭 txtsetup.sif,根据需要重新创建 Windows PE 映像。现在您应该能够从 Windows PE 中读取任何 UDF 格式的 DVD 介质了。

问:我有许多较早的系统,运行的是 Windows XP,并不支持 ACPI。我能在这些系统上使用 Windows PE 2.0 以便将这些系统迁移到 Windows Vista 或者重新安装 Windows XP 吗?

答:不能。Windows PE 2.0 只支持与高级配置和电源接口 (ACPI) 相兼容的系统,无法在您的早期系统上启动。如果您需要在这些较早的系统上使用 Windows PE,请选择 Windows PE 1.6 或更低版本。

问:我想在 Windows PE(1.x 或 2.0)上运行我用 Visual Studio® 2005 编写的应用程序。请问可以运行吗?

答:这取决于您的应用程序的编写方式。如果您采用的是非托管 C++,应该可以,您的应用程序应该能够运行。但如果您采用的是托管代码语言(如 C# 或 J#),或者所写代码为托管的 C++ 代码,则应用程序无法运行。因为 Windows PE 并不支持 Microsoft® .NET Framework(无论何种版本),所以托管代码无法运行。

问:我正在尝试编写可用于 Windows PE 2.0 的应用程序,并且需要一些帮助。我最好到哪里去寻求帮助呢?

答:建议您先看一看《Windows PE Developer's Guide whitepaper》

问:我已经连续几次从 CD 引导 Windows PE 2.0,但驱动器号 (RAMDisk) 一直是 X。我怎样才能知道它到底是从哪个驱动器号引导的呢?

答:请看一下注册表,下面的注册表项应反映了 Windows PE 最初引导时使用的真实驱动器号:

HKEY_LOCAL_MACHINE\SYSTEM\Setup\SystemPartition 

如果您发现由于 Windows PE 中使用了第三方外壳程序而导致此注册表项未被填充,运行以下命令可将此注册表项更新为正确的值:

start /w wpeinit UpdateBootInfo

问:能否使用 ImageX 和 WIM 文件备份我的系统?

答:理论上是可以的,但我不建议您这样做。因为 ImageX 不能像真正的备份工具那样备份锁定的或打开的文件。建议继续使用真正的备份工具,以保护那些打开的和锁定的文件。

问:如果我捕获一个未压缩的 WIM 文件,其部署速度会比经过压缩的同一卷映像快一些吗?

答:效果并不明显,速度并不快。由于压缩,执行捕获操作时间会长些。但不管采用何种压缩类型(不压缩、XPress 或 LZX),将该映像应用于目标系统所花费的时间都不会有太大差别。因此我建议您根据实际所需的映像大小以及可用于捕获的时间来选择压缩类型。

问:要将 WIM 映像应用于磁盘,是否需要对磁盘进行重新分区和格式化?

答:是的,需要。为获得干净的系统映像,需要先用 Diskpart 工具清除卷的内容(或者先删除然后重新创建目标分区)。您也可以在应用映像之前对该卷进行完全格式化。

另外还必须记住,Windows Vista 之前的 Windows 版本使用不同的引导扇区,因此,如果使用 Windows PE 2.0 部署 Windows Server 2003 或更早版本,在开始安装 Windows 或应用其 WIM 之前,需要从 Windows PE 中运行以下命令,以便将引导扇区设置为能够引导 Windows Server 2003 及更早版本的引导扇区:

bootsect /nt52 sys C: /force

总结

我希望本文有关 WDS 的更新内容和我对这些问题的回答不仅对您有所帮助,而且正是您所关心的。我会认真对待您提出的所有问题,并且只要专栏版面允许,我会尽我所能回答您的问题。请随时通过邮件将您的问题发送到我在简介中提供的电子邮件地址。

Windows Vista 硬件评估

Baldwin Ng

好消息 - 您的经理终于对您在一个月之前提出的建议作出了答复。显然,他一直在认真考虑您所提出的在整个组织内部署 Windows Vista 的建议,并已开始认识到管理单一操作系统所带来的好处和节约的成本。不过,他还没有完全认可将所有 PC 全部更新为 Windows Vista 系统从财务角度讲是有意义的。他希望看到具体、详细的信息,说明哪些 PC 可以立刻迁移到 Windows Vista,而哪些 PC 需要一些小的升级才能迁移,例如增加系统内存和硬盘空间。他还希望您在本周末之前给出答复。那么,您该如何入手呢?在您的组织还没有任何完善的资产或网络管理工具的情况下,您如何在短短几天内给出答复呢?更糟糕的是,您的前任也没有留下足够的关于现有网络资产的信息。

Microsoft 刚刚发布了 Windows Vista 硬件评估,这是一个解决方案加速器,可帮助您确定组织的就绪程度是否能够迁移到 Windows Vista(请参阅 microsoft.com/technet/wvha)。对于大多数中型组织,此工具可在几小时内快速评估网络上的 PC,并生成有关硬件和设备兼容性的详细报告,以显示其是否已为迁移做好准备。所有这一切无需在您网络的任何 PC 上安装任何软件代理。

Windows Vista 硬件评估基于之前为 Microsoft 评估和部署解决方案(ADS,Microsoft Assessment and Deployment Solution)开发的强大的清单收集和报告技术,通过三个步骤即可创建一组就绪程度报告:

1. 硬件清单

通过使用 Windows Management Instrumentation (WMI)、Active Directory® 和其他诸如 NetServerEnum 的 Windows 网络协议,此工具可以查找到域内的计算机和工作组计算机。清单生成后,所有系统资源和设备信息都被存储在一个 SQL Server™ 2005 Express 数据库中。此工具的当前版本可支持多达 5,000 台计算机的网络查找。未来版本可能会支持更大规模的网络。

2.兼容性分析

该工具利用 Windows 团队提供的最新设备和 BIOS 数据库,围绕 Windows Vista 的硬件和设备兼容性来分析每台 PC 的就绪程度。此外,驱动程序信息通过一个定期更新的 Web 服务来提供,因此每次运行该工具时都可以获得最新的信息。

3.就绪程度报告

最后一步是自动生成一组 Microsoft Word 文档和 Excel® 电子表格形式的就绪程度报告。这些报告提供了每台 PC 的就绪状况信息和升级建议。

Windows Vista 硬件评估是对其他 Windows Vista 解决方案加速器(包括 Business Desktop Deployment 2007 和 Windows Vista 安全指南)的补充。有关详细信息,请访问解决方案加速器主页

**Baldwin Ng 是 Microsoft 解决方案加速器团队的产品经理,致力于创建自动化的软件工具来帮助客户和咨询人员更快、更有效地采用 Microsoft 软件。您可以通过电子邮件 Baldwin.Ng@microsoft.com 与他联系。

Wes Miller是位于得克萨斯州奥斯汀市的 Pluck 公司 (www.pluck.com) 的一名开发经理。他曾在奥斯汀市的 Winternals Software 公司任职,并在 Microsoft 担任过 Windows 项目经理和产品经理。Wes 的联系方式是:technet@getwired.com。对于 Scott Dickens(Microsoft Windows 部署服务的项目经理)为本文介绍 WDS 新增功能提供的帮助,Wes 在此表示感谢。

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