概要
本文讨论管理员如何将使用 Update.exe 的 Windows 软件更新与它们的 Windows 安装源文件集成起来。(软件更新包括重要更新、Feature Pack、修复程序、安全更新、Service Pack、更新和累积更新。)如果安装是从管理员创建的 Windows 分发文件夹中进行的,而管理员必须在安装期间应用一个或多个软件更新,则这些过程可能会很有用。如果您要集成安全更新,以便在新的安装启动时不会受到病毒感染,则这些过程也很有用。
注意: 如果软件更新不使用 Update.exe 作为安装程序,则这些过程不适用。例如,有些 Microsoft Windows 2000 和 Microsoft Windows XP 的 Microsoft Internet Explorer 更新使用基于 INF 的安装而不使用 Update.exe。因此,您无法使用这些过程来集成这些 Windows 2000 或 Windows XP 的 Internet Explorer 更新。
如果您使用这些过程集成软件更新,则系统不会正确创建 Filelist 注册表项。例如,如果您将 824146 安全修补程序集成到 Microsoft Windows Server 2003 安装源文件中,则系统不会正确创建下面的注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows Server 2003\SP1\KB824146\Filelist
当您使用这些过程中的任何一个集成更新时,会在“添加或删除程序”控制面板中为每个更新添加一个条目。但是,“删除”按钮是不可用的,因为如果删除了更新,则经过更新的文件没有可供还原的早期版本。
如果以下条件同时成立,管理员可能还必须对 Microsoft Windows 预安装环境 (Windows PE) 应用软件更新: 管理员使用 Windows PE 运行 Windows 安装程序。
管理员使用网络共享上已经集成了软件更新的操作系统。
有关如何执行此操作的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
828217 (http://support.microsoft.com/kb/828217/) 如何将 824146 安全修补程序应用于 Windows 预安装环境
本文中的说明也可用于基于远程安装服务 (RIS) RISETUP 的映像。RISETUP 映像的 I386 目录结构和网络分发文件夹一样。对于 RIPREP 映像,请将映像“拉入”客户机,安装软件更新,然后通过 RIPREP 方式将映像放回服务器。
在使用这些过程来防止感染病毒时,我们建议您仅集成无需用户操作的软件更新。如果您集成的软件更新不会阻碍 Windows 安装程序的完成,请使用 Unattend.txt 文件中的“[guirunonce]”节,或在完成安装后使用软件更新服务 (SUS) 来部署更新。
此过程专为全新安装而设计,不适用于升级安装。
“Update.exe 5.4.15.0 或更高版本”部分描述了集成使用 Update.exe 5.4.15.0 版或更高版本的软件程序包的过程。“Update.exe 的早期版本”部分描述了集成使用早期版本 Update.exe 的软件程序包的过程。
要确定软件更新程序包是否使用 Update.exe 5.4.15.0 版或更高版本作为安装程序,请按照下列步骤操作:1. 将软件更新程序包解压缩到一个唯一的临时文件夹中。例如,要将名为 KBArticleNumber.exe 的更新程序包文件解压缩到驱动器 C 上名为 ExtractedPackage 的文件夹中,请在命令提示符处键入以下命令:KBArticleNumber /X:C:\ExtractedPackage
2. 打开包含软件更新程序包的解压缩文件的临时文件夹。例如,打开 C:\ExtractedPackage。
3. 右键单击该文件夹中的 Update.exe 文件,然后单击“属性”。
4. 在“版本”选项卡上,查看“文件版本”的值。如果版本号为 5.4.15.0 或更高版本,则支持本文提到的新功能。
Update.exe 将确定更新对安装源是否合适。例如,Windows 2000 Service Pack 4 (SP4) 包含的修复程序将不会集成到已经集成了 SP4 的 Windows 2000 安装源中。 Update.exe 还将确定安装源是否可用于正确的硬件平台。 /integrate 开关不能用于解压缩后的程序包。
如果不想集成安装程序低于 Update.exe 5.4.15.0 版的软件更新,请不要执行步骤 6 到步骤 13。如果想集成安装程序低于 Update.exe 5.4.15.0 版的软件更新,请执行步骤 6 到步骤 13,集成这些更新。
Update.exe 5.4.15.0 或更高版本
要将使用 Update.exe 5.4.15.0 或更高版本的软件更新集成到 Windows 安装源文件中,请按照下列步骤操作:1. 将某个驱动器映射到要在其上创建分发文件夹的网络共享。或者,登录到要在其上创建分发文件夹的计算机。下面的步骤假定您在驱动器 X 上创建分发文件夹。
2. 创建分发文件夹。例如,要在驱动器 X 上创建名为 Winflat 的分发文件夹,请在命令提示符处键入以下命令:
mkdir X:\Winflat
3. 在 Winflat 分发文件夹上设置权限,以使管理员仅具有“完全控制”权限,所有其他用户仅具有“读取”和“执行”权限。
4. 将 Windows 产品 CD 插入 CD 驱动器中,然后将 CD 上 I386 文件夹的内容复制到您在步骤 2 中创建的 Winflat 分发文件夹中。为此,请在命令提示符处键入以下命令:
xcopy /E /I /V D:\i386 X:\Winflat\i386
5. 要集成使用 Update.exe 5.4.15.0 版或更高版本作为安装程序的软件更新,请在命令提示符处为要集成的每个更新键入以下内容:
KBArticleNumber /integrate:path
注意:对于 path,请指定分发文件夹的路径。例如,要将 KB123456.exe 文件集成到位于 X:\Winflat 的分发文件夹中,请键入下列内容:
KB123456 /integrate:x:\winflat
Update.exe 的早期版本
要将使用早期版本 Update.exe 的软件更新集成到 Windows 安装源文件中,请按照下列步骤操作:1. 将某个驱动器映射到要在其中创建分发文件夹的网络共享,或登录到要在其中创建分发文件夹的计算机。下面的步骤假定您在驱动器 X 上创建分发文件夹。
2. 创建分发文件夹。例如,要在驱动器 X 上创建名为 Winflat 的分发文件夹,请在命令提示符处键入以下命令:
mkdir X:\Winflat
3. 在 Winflat 分发文件夹上设置权限,以使管理员仅具有“完全控制”权限,所有其他用户仅具有“读取”和“执行”权限。
4. 将 Windows 产品 CD 插入 CD-ROM 驱动器中,然后将 CD 上 I386 文件夹的内容复制到您在步骤 2 中创建的 Winflat 分发文件夹中。为此,请在命令提示符处键入以下命令:
xcopy /E /I /V D:\i386 X:\Winflat\i386
5. 编辑 X:\Winflat\i386\dosnet.inf,将“svcpack”添加到 [OptionalSrcDirs] 节。例如:
[OptionalSrcDirs]
uniproc
svcpack
注意:对于 Windows XP 或 Windows Server 2003 分发文件夹,您可能必须在 Dosnet.inf 文件中创建 [OptionalSrcDirs] 节。Windows 2000 中包括的 Dosnet.inf 文件已经包含此节。
6. 创建 X:\Winflat\i386\svcpack 文件夹。为此,请在命令提示符处键入以下命令:
mkdir X:\Winflat\i386\svcpack
7. 将要集成的更新程序包 (ProductName-KBArticleNumber-Option-Language.exe ) 复制到 X:\Winflat\i386\svcpack 文件夹中。为此,请使用 8.3 命名格式 (KBArticleNumber.exe),其中 ArticleNumber 是与更新相关联的 Microsoft 知识库文章编号。如果您要应用多个更新,请复制并重命名所有更新程序包。
8. 将每个更新程序包解压缩到唯一的临时文件夹中。例如,要将某个更新程序包的文件解压缩到驱动器 Y 上名为 ExtractedPackage 的文件夹中,请在命令提示符处键入以下命令:
C:\i386\svcpack\KBArticleNumber /X:Y:\ExtractedPackage
9. 对于每个更新,从 Y:\ExtractedPackage 复制编录文件 (KBArticleNumber.cat) 和已更新的二进制文件(例如 .exe、.dll 或 .sys 文件)。为此,请按照下列步骤操作:a.
对于每个更新,将 KBArticleNumber.cat 从 Y:\ExtractedPackage 复制到 X:\Winflat\i386\svcpack 文件夹中。对 .cat 文件使用与更新程序包 (KBArticleNumber.cat) 的名称相同的名称,不要复制 Empty.cat。
b.
对于每个更新,如果 Y:\ExtractedPackage 中存在相同的二进制文件,则只保留版本最高的文件。
c.
对于每个更新,应检查 Y:\ExtractedPackage 中包含的每个二进制文件,确定在 X:\Winflat\I386 文件夹中是否存在相同的文件。如果 I386 文件夹中存在该文件,则从 X:\Winflat\I386 中删除该文件。
注意:I386 文件夹中文件扩展名的最后一个字符可能是下划线 (_)。例如,Rpcss.dll 在 I386 文件夹中名为 Rpcss.dl_。
d.
对于每个更新,将已更新的二进制文件从 Y:\ExtractedPackage 复制到 X:\Winflat\I386。
e.
对于每个更新,查看 Y:\ExtractedPackage 中是否存在任何与 X:\Winflat\I386 的子文件夹同名的子文件夹。如果某个文件夹中包含任何这样的子文件夹,请将已更新的二进制文件从 Y:\ExtractedPackage 子文件夹复制到 X:\Winflat\I386 中相应的子文件夹中。例如,如果 Y:\ExtractedPackage 中包含名为 Uniproc 的文件夹,则将 Y:\ExtractedPackage\Uniproc 中的文件复制到 X:\Winflat\I386\Uniproc 中。
注意: 由于 Microsoft 提供对最新和次新的 Service Pack(N 和 N-1)的支持,因此 Microsoft 将某些更新打包为双模式更新,您可以将这些双模式更新应用于具有不同 Service Pack 级别的计算机。例如,Windows XP 更新可能同时包含 SP1 和 SP2 两个子目录,其中 SP1 文件夹包含 Windows XP 原始版本的更新文件,SP2 文件夹包含对 Windows XP SP1 的更新文件。在本示例中,如果安装源是 Windows XP 原始版本(版本 2600),则必须使用 SP1 目录中的文件。如果安装源是 Windows XP SP1,则必须使用 SP2 目录中的文件。 有关 Windows XP 双模式更新程序包的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
328848 (http://support.microsoft.com/kb/328848/) Windows XP 双模式更新程序包说明
Microsoft 还可能在发布 Service Pack 1 后将 Windows Server 2003 更新打包为双模式更新。
Windows Server 2003 更新程序包还在 nnnQFE 和 nnnGDR 文件夹中包含两组更新的二进制文件,分别用于最新和次新 Service Pack(N 和 N-1),其中 nnn 是最新和次新 Service Pack(N 和 N-1)的原始发行版本、“SP1”、“SP2”,依此类推。在这种情况下,您必须使用相应的 nnnQFE 文件夹中的文件。 有关 Windows Server 2003 更新程序包内容的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824994 (http://support.microsoft.com/kb/824994/) Windows XP Service Pack 2 和 Windows Server 2003 软件更新程序包内容说明
您不必复制 Common 或 Update 文件夹中的文件,例如 Update.exe、Update*.inf、SPmsg.dll、SPcustom.dll、SPuninst.exe、Update.ver 或符号(.dbg 文件)。
10. 对于在步骤 9 中复制的每个文件(KBArticleNumber.cat 除外),请在 X:\Winflat\I386\Dosnet.inf 文件中查找,以确定该文件名是否在 [Files] 节中列出。在 [Files] 节中列出的所有文件的前面都有“d1,”。例如:
d1,Filename
如果您在步骤 9 中复制的任何文件的文件名都没有列出,请使用此语法添加一个条目。 例如,如果修复程序包含 Win32k.sys,由于 Win32k.sys 未在 Dosnet.inf 中列出,因此应将 d1,win32k.sys 添加到 X:\Winflat\I386\Dosnet.inf 的 [Files] 节中。此添加可确保在 Windows 安装过程中复制 Win32k.sys 的更新版本。
11. 删除 X:\Winflat\I386\Svcpack.in_ 文件。
12. 在 X:\Winflat\I386 文件夹中创建 Svcpack.inf 文件。为此,根据您要部署单个更新还是部署多个更新,请使用以下内容中的相应部分。(用更新 .cat 文件的知识库文章编号替换 ArticleNumber):
Windows 2000
[Version]
Signature="$Windows NT$"
MajorVersion=5
MinorVersion=0
BuildNumber=2195
[SetupData]
CatalogSubDir="\i386\svcpack"
[ProductCatalogsToInstall]
KBArticleNumber.cat
[SetupHotfixesToRun]
KBArticleNumber.exe /options
Windows XP
[Version]
Signature="$Windows NT$"
MajorVersion=5
MinorVersion=1
BuildNumber=2600
[SetupData]
CatalogSubDir="\i386\svcpack"
[ProductCatalogsToInstall]
KBArticleNumber.cat
[SetupHotfixesToRun]
KBArticleNumber.exe /options
Windows Server 2003
[Version]
Signature="$Windows NT$"
MajorVersion=5
MinorVersion=2
BuildNumber=3790
[SetupData]
CatalogSubDir="\i386\svcpack"
[ProductCatalogsToInstall]
KBArticleNumber.cat
[SetupHotfixesToRun]
KBArticleNumber.exe /options
注意: 用于安装更新的推荐选项为 /Q、/N 和 /Z。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
262841 (http://support.microsoft.com/kb/262841/) 用于 Windows 软件更新程序包的命令行开关
824687 (http://support.microsoft.com/kb/824687/) Microsoft 软件更新程序包的命令行开关
如果要应用多个更新,请同时在 [ProductCatalogsToInstall] 和 [SetupHotfixesToRun] 节下为每个更新添加一个条目。在安装多个更新的安装中,这些节的示例如下:
[ProductCatalogsToInstall]
KB123456.cat
KB123478.cat
KB123490.cat
[SetupHotfixesToRun]
KB123456.exe /options
KB123478.exe /options
KB123490.exe /options
Windows x64 版本的技术支持
硬件制造商提供了 Microsoft Windows x64 版本的技术支持和帮助。硬件制造商提供支持是因为您的硬件中包括了 Windows x64 版本。您的硬件制造商可能自定义了使用唯一组件的 Windows x64 版本安装。唯一组件可能包括特定设备驱动程序,或者包括用于将硬件性能发挥到最大的可选设置。如果您需要 Windows x64 版本的技术帮助,Microsoft 将尽可能提供合理的帮助。但是,您可能必须与制造商直接联系。您的制造商最有资格为安装在您的硬件上的软件提供支持。