[转帖]Windows 2000修补程序安装和部署指南
作者不详:
来源 [蓝盾安全在线]
---------------------------------------------------------------------
本指南为管理员提供在 Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server 以及带有 Server Appliance Kit 的 Windows 2000 上安装修补程序的指导。本指南包括在小型商业或公司环境中的多台计算机上成功安装 Windows 2000 修补程序的技术细节、过程和建议。请注意,可以单独安装修补程序,也可以与 Windows 2000(带有或不带有 Service Pack)一起组合安装。
本指南假定您有 Windows 2000 和修补程序安装的工作知识。尽管本文档包括了一些基本操作系统信息,但它并不是 Windows 2000 文档或者正规培训资料的替代品。相反,其意图是使这些资源信息更完整。
本指南的结构
本指南包括以下主要章节:
什么是修补程序?
可以阅读本节以便熟悉修补程序。本节也提供了有助于计划修补程序部署的其他资源材料的信息。
更新安装
本节解释在已经运行 Windows 2000 的计算机上如何执行 Windows 修补程序的更新安装。
组合安装
本节解释如何执行与 Windows 2000 组合的 Windows 修补程序的无人参与安装。
删除 Windows 修补程序
本节解释如何删除 Windows 修补程序并讨论该过程的局限性。
本指南中使用的术语
开始之前,理解本指南中使用的一些特定术语非常重要。这些专用于 Windows 2000 或修补程序安装(或二者都有)的术语,在下表中作了定义。
术语 定义
systemroot 计算机硬盘上 Windows 安装的“根”目录。例如,在大多数计算机上,systemroot 是 C:\Winnt。
systemdrive 安装操作系统的驱动器。例如,在大多数计算机上,systemdrive 是 C:\。
集成 以单独安装的方式将产品一起安装(例如,Windows 2000 和 Service Pack 3)。
什么是修补程序?
修补程序是可应用于 Windows 2000 以纠正特定问题的一个或多个文件。
提供的修补程序是一种可执行 (.exe) 文件。安装修补程序时,将自动创建备份文件,以便在以后需要时可以删除修补程序。安装过程还将文件拷贝到特定文件夹并更新注册表设置。
Windows 2000 Hotfix.exe 程序根据以下规定命名:
Q######_XXX_YYY_ZZZ_LL.exe
其中:
Q###### = Microsoft 知识库文章编号(例如,Q123456)
XXX = 操作系统
YYY = Service Pack 级别
ZZZ = 硬件平台
LL = 语言
修补程序是以自安装格式打包的。修补程序安装有两种主要类型:
更新安装
使用这种类型的安装在已经运行 Windows 2000 的计算机上安装 Windows 修补程序。
组合安装
使用这种类型的安装,将执行与 Windows 2000 或者 Service Pack (或者这两种产品都有)组合的 Windows 修补程序的无人参与安装。
要点
修补程序只能用于在应用该程序前已安装的软件。例如,如果删除一个组件然后又重新安装它,则您必须重新安装应用于该组件的所有修补程序。Service Pack 中包含的修复文件不以这种方式工作。安装完 Service Pack 之后,修复文件将应用于添加或重新安装的所有组件,而无需重新安装 Service Pack。
更新安装
在更新安装过程中,Windows 修补程序应用于已经运行 Windows 2000 的计算机。运行修补程序软件包时,它将自动安装更新的系统文件并对注册表作必要的更改。重新启动计算机后(仅对安装过程中使用的某些系统文件必须),安装完成,然后 Windows 2000 使用更新的文件设置运行。
通过运行 Hotfix.exe 程序(该程序解压缩修补程序文件并运行 Update.exe 安装程序)可以安装修补程序。然后 Update.exe 检查当前运行的 Service Pack 版本。如果 Service Pack 版本发行时间早于修补程序,而且语言相同,则 Update.exe 程序自动安装修补程序。如果 Service Pack 版本发行时间晚于修补程序,则不能完成安装并出现错误消息,说明该版本不正确。
注意
如果 Service Pack 版本发行时间晚于修补程序,并且您正在执行无人参与安装(使用 /M 或 /Q 选项),则安装退出并且不显示消息。
如果修补程序的语言与 Windows 2000 设置的语言不匹配,则安装中断。如果没有版本冲突,则继续安装。Update.exe 程序在以下注册表项中注册修补程序:
HKEY_LOCAL_MACHINE \Software\Microsoft\WindowsNT\CurrentVersion\Hotfix\Q######
HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Updates\Windows 2000\SP4\Q######
在安装过程中,删除修补程序的信息存储在名为 systemroot\$NtUninstallQ######$ 的隐藏文件夹中。有关删除修补程序的信息,请参阅本文档后面的删除 Windows 2000 修补程序。
以下章节描述如何从共享的网络分发文件夹中安装 Windows 修补程序。
更新安装方法
有几种执行更新安装方法,包括使用安装选项的组合手动运行 Hotfix.exe 程序、使用系统管理服务器 (SMS) 和使用 Windows 安装服务。可以通过使用共享网络分发文件夹或者从网站下载修补程序来分发修补程序。因为本指南主要用于公司用户,所以本文档中提供的更新安装过程主要介绍共享网络分发方法,对于此类读者来说这是修补程序分发最常用的方法。
本章节中的指导内容解释如何在已经运行 Windows 2000 的计算机上安装修补程序。
使用 Qchain.exe
Windows 2000 支持更新安装过程中的 Hotfix chaining。Qchain.exe 是一种实用程序,它使您可以安装多个修补程序而无需在安装每个修补程序后重新启动计算机。如果多个修补程序替换同一文件,则 Qchain.exe 将确保安装正确的版本。Windows 2000 SP3 和所有已公布的 SP3 修补程序都内嵌了 Qchain.exe 功能。您可以安装 SP3,然后安装任何数量的已公布 SP3 修补程序而无需在每两次安装之间重新启动计算机。要确定给定的修补程序发行时间是否晚于 SP3,请下载修补程序然后检查所用的命名规则。所有已公布的 SP3 修补程序都使用以下命名规则:
Q######_W2K_SP4_x86_LL.exe
有关 Qchain.exe 实用程序的详细信息,请参阅 Microsoft 知识库中的文章 Q296861,“Use QChain.exe to Install Multiple Hotfixes with Only One Reboot”。
用于 Hotfix.exe 程序的命令行选项
下表用于识别 Hotfix.exe 程序支持的命令行选项。
命令行选项 说明
/F 在关机时强制关闭其他应用程序。
/N 不要为卸载备份文件。
/Z 安装完成后不重新启动计算机。
/Q 使用安静模式,不需要用户交互。
/M 使用无人参与安装模式。
/L 列出已安装的修补程序。
在运行 Windows 2000 的计算机上安装修补程序
要在一台计算机上安装 Windows 2000 修补程序,只需在要更新的计算机上运行修补程序:
Q######_XXX_YYY_ZZZ_LL.exe
如果要在多台计算机上安装修补程序,则可以在网络上创建一个共享分发文件夹。以下过程描述如何使用这种方法安装一个或多个 Windows 2000 修补程序。
注意
对于以下过程,“E:\”代表分发文件夹所在的网络或计算机驱动器。
通过运行 Hotfix.exe 程序安装 Windows 2000 修补程序
连接到要创建分发文件夹的网络或计算机。
在网络或计算机中,为修补程序文件创建一个分发文件夹。
例如,要创建名为 Hotfix 的分发文件夹,请键入如下命令:
mkdir E:\Hotfix
将 Windows 2000 Hotfix.exe 程序拷贝到第二步中创建的分发文件夹。
例如,要将 Windows 2000 Hotfix.exe 程序拷贝到名为 Hotfix 的分发文件夹中,请键入以下命令:
xcopy C:\Q######_XXX_YYY_ZZZ_LL.exe E:\Hotfix
要从共享网络分发文件夹中安装修补程序,请运行 Q######_XXX_YYY_ZZ.exe 程序。
例如,要从名为 Hotfix 的分发文件夹中安装修补程序,请键入以下命令:
E:\Hotfix\Q######_XXX_YYY_ZZZ_LL.exe
Q######_XXX_YYY_ZZZ_LL.exe 文件与 Hotfix.exe 程序支持相同的命令行选项。您可以使用本过程前面的表中描述的命令行选项。
要确保修补程序生效,请在完成所有修补程序的安装之后重新启动计算机。
同时安装多个修补程序
可以将多个修补程序组合在一个批处理文件中,并将其作为一个单元来安装;以这种方式,您无需在安装完每个修补程序后重新启动计算机。修补程序的安装程序提供了在执行此类型安装时可使用的选项。
以下代码示例是一个批处理文件,该批处理文件用于安装修补程序并确保在计算机重新启动后替换正确的文件。
@echo off
setlocal
set PATHTOFIXES=E:\hotfix
%PATHTOFIXES%\Q123456_w2k_sp4_x86.exe /Z /M
%PATHTOFIXES%\Q123321_w2k_sp4_x86.exe /Z /M
%PATHTOFIXES%\Q123789_w2k_sp4_x86.exe /Z /M
如果正在安装一些发行时间早于 SP3 的修补程序,则必须在批处理文件的末尾包括以下命令行,以便在安装完最后一个修补程序后运行 Qchain.exe:
%PATHTOFIXES%\qchain.exe
注意
可以从 Microsoft 知识库中的文章 Q296861,“Use Qchain.exe to Install Multiple Hotfixes with Only One Reboot”中下载 Qchain.exe。
要点
如果批处理文件不自动重新启动计算机,要确保安装的修补程序生效,请您重新启动计算机。
组合安装
组合安装与以下软件一起使用更新和集成两种安装过程来安装 Service Pack:
Windows 2000
Windows 2000 修补程序
Service Pack 光盘中包含的其他 Microsoft 和第三方软件
本节提供以无人参与的安装模式安装带有修补程序的 Windows 2000 的指导。
可以使用以下两种方法之一来执行组合安装:
在 Svcpack.inf 文件中包含要作为项目与修补程序一起安装的组件(建议使用该方法)。您也可以选择同时安装 Service Pack。
使用 Cmdlines.txt 文件包含其他命令和组件。
由于为组合安装设置共享安装文件夹时还涉及其他步骤,所以只有在文本模式安装过程中需要修补程序时,或者网络管理员希望在第一个用户登录到连接网络的计算机之前就安装上修补程序时,才推荐使用这种过程。
安装带有 Service Pack 和修补程序的 Windows 2000(推荐)
本节解释如何在网络共享分发文件夹下执行集成了 Service Pack 和已公布的 Service Pack 修补程序的 Windows 2000 的组合安装。不需要分别执行 Windows 2000、Service Pack 或 Windows 2000 修补程序的安装。请注意,如果要安装带有修补程序的 Windows 2000,必须使用这种方法。
要点
请确保安装的所有修补程序都是在此 Service Pack 版本(要将其与修补程序集成)之后发布的版本。有关详细信息,请参阅 Microsoft 知识库中的文章 Q290074,“Slipstreaming Earlier Fixes Into an Integrated Installation Share Breaks the Share”。
本过程在执行 Windows 2000 安装程序过程中安装 Windows 2000 修补程序。
准备组合安装
在通过网络运行 Windows 2000 安装程序部署 Windows 2000 和 Windows 2000 修补程序的安装之前,必须将 Windows 2000 和 Windows 2000 修补程序的安装文件复制到共享分发文件夹下,然后完成下列过程中描述的其他步骤。
如果您是原始设备制造商 (OEM),并且计划在目标计算机上安装其他 OEM 文件(例如,设备驱动程序、应用程序或组件文件),请在 \$OEM$ 子文件夹下创建一个 \$1 子文件夹。\$1 子文件夹映射到 systemdrive,即 Windows 2000 安装程序的目标驱动器。
注意
在以下过程中,“E:\”代表目标文件夹所在的网络或计算机的驱动器名称。
创建和设置要求的文件夹和文件
连接到要在其上创建分发文件夹的网络或计算机。
通过键入以下命令(用合适的驱动器名)创建一个 i386 分发文件夹:
mkdir E:\i386
使用命令行实用程序 xcopy 将文件和子文件夹从带有 SP3 的 Windows 2000 集成安装光盘复制到 E:\i386 文件夹下。例如,如果 D: 是您的光盘驱动器,请键入下列命令:
xcopy /E /I /V D:\i386 E:\i386
按下列方法编辑 E:\i386\dosnet.inf,以便将 svcpack 添加到 [OptionalSrcDirs] 部分:
[OptionalSrcDirs]
uniproc
svcpack
创建 E:\i386\svcpack 文件夹。例如,要在 i386 文件夹下创建 \svcpack 子文件夹,请键入以下命令:
mkdir E:\i386\svcpack
使用 8.3 命名格式 (Q######.exe) 将修补程序可执行程序 (Q######_XXX_YYY_ZZZ_LL.exe) 复制到 E:\i386\svcpack 文件夹,其中 ###### 代表实际的修补程序编号。
如果正在部署多个修补程序,请重新命名所有修补程序的程序包文件。
在一个唯一的临时位置展开修补程序。例如,要在名为 samplefolder 的文件夹下展开这些文件,请键入下列命令:
E:\i386\svcpack\Q###### /X E:\
按下列方法复制目录文件 (.cat) 和修补程序二进制文件(例如 .exe、.dll 和 .sys 文件):
将 Q######.cat 复制到 E:\i386\svcpack 文件夹。如果要同时部署多个修补程序,请确保已经复制了每个要部署的修补程序中的所有目录文件。每个修补程序都有一个唯一的目录文件,该文件必须以 Q######.cat 格式复制。
如果二进制文件在多个程序包中存在,则只让这些文件保留于最高版本的程序包中。
删除 i386 文件夹中所有要替换的二进制文件(通常,在共享文件夹中可以通过每个文件名末尾的下滑线“_”识别这些文件)。
将修补程序二进制文件和修补程序的所有子文件夹复制到 i386 文件夹。
例如,需要将修补程序中的 i386\uniproc\* file 复制到共享安装程序文件夹下的 i386\uniproc 文件夹中。不需要复制 Update.exe、Update.inf、SPmsg.dll、SPcustom.dll、SPuninst.exe、Update.ver 或符号文件。
删除 E:\i386\Svcpack.inf 文件。
使用下列内容在 E:\i386\Svcpack.inf 中创建新的 Svcpack.inf 文件:
[Version]
Signature="$Windows NT$"
MajorVersion=5
MinorVersion=0
BuildNumber=2195
[SetupData]
CatalogSubDir="\i386\svcpack"
[ProductCatalogsToInstall]
Q######.cat
[SetupHotfixesToRun]
Q######.exe /选项(用于修补程序的推荐选项为 /Q /N /Z)
要点
如果要同时部署多个修补程序,请在 [ProductCatalogsToInstall] 和 [SetupHotfixesToRun] 下为每个修补程序添加一项(如本段之后所示)。下面几行内容是这些部分的一个示例,用于说明安装多个修补程序的安装。如果正在安装 Service Pack,则不需要加入有关 Service Pack 的详细信息,因为在本过程的安装程序中包含独立的 Service Pack 安装程序。
[ProductCatalogsToInstall]
Q123456.cat
Q123478.cat
Q123490.cat
[SetupHotfixesToRun]
Q123456.exe /选项
(用于修补程序的推荐选项是 /Q、/N 和 /Z)
Q123478.exe /选项
(用于修补程序的推荐选项是 /Q、/N 和 /Z)
Q123490.exe /选项
(用于修补程序的推荐选项是 /Q、/N 和 /Z)
使用 Svcpack.inf 部署组合安装
可以从网络共享的分发文件夹向用户计算机部署 Windows 2000 和 Windows 2000 修补程序的安装。在标准安装过程中,Windows 2000 安装程序(无人参与安装模式中的 Winnt.exe 或 Winnt32.exe)安装操作系统并应用修补程序。
部署安装
请验证在您的分发文件夹中存在 Windows 2000 和 Windows 2000 修补程序的安装程序和可执行文件。
如果需要,请自定义 Windows 2000 安装程序。有关如何进行该操作的更多信息,请参阅 Microsoft Windows 2000 Professional Resource Kit 中的 Winnt32.exe 命令语法主题。
运行 Windows 2000 安装程序(无人操作安装模式中的 Winnt.exe 或 Winnt32.exe),从共享分发文件夹向用户计算机部署 Windows 2000 和 Windows 2000 修补程序的安装。
使用 Cmdlines.txt 安装带有修补程序的 Windows 2000
本部分提供在共享的网络分发文件夹下执行集成修补程序的 Windows 2000 组合安装的指导。不必分别执行 Windows 2000 和修补程序的安装。
要点
如果正尝试安装一个或多个修补程序以修复安全漏洞,则 Microsoft 建议您不要使用此类型安装。此类型安装最适用于未连接到用作生产环境的网络上的计算机。
因为 Windows 2000 安装程序要求分发文件夹中的所有文件和文件夹均为 8.3 命名惯例,所以必须更改修补程序文件名(将 Q######_XXX_YYY_ZZZ_LL 格式改为 Q###### 格式)。
准备组合安装
运行 Windows 2000 安装程序安装带有修补程序的 Windows 2000 之前,必须完成下列过程所描述的任务。
创建必需的文件和文件夹
开始组合安装之前,必须为 Windows 2000 和修补程序的安装程序文件创建一个分发文件夹和子文件夹,然后必须创建一个 Unattend.txt 应答文件(只用于无人参与的安装程序),这些操作在下列过程中进行描述。
注意
在下面的过程中,“E:\”表示分发文件夹所在的网络或计算机的驱动器。
创建必需的文件夹
连接到要在其上创建分发文件夹的网络或计算机。
在共享网络分发文件夹中,创建一个 \i386 分发文件夹。
例如,要创建 \i386 分发文件夹,请键入以下命令:
mkdir E:\i386
在步骤 2 中创建的 \i386 文件夹下,创建一个 \$OEM$ 子文件夹。
例如,要在 i386 文件夹下创建 \$OEM$ 子文件夹,请键入以下命令:
mkdir E:\i386\$OEM$
\$OEM$ 子文件夹包括满足 Microsoft OEM 要求以及您自己预装需要所必需的所有其他文件夹。有关这些其他文件夹的详细信息,请参阅“Microsoft Windows 2000 Server Resource Kit 部署计划指南”。
如果计划在用户计算机上安装任何其他文件(例如,设备驱动程序、应用程序或组件文件),请在步骤 3 中创建的 \$OEM$ 子文件夹下创建一个 \$1 子文件夹。
例如,要在 \$OEM$ 文件夹下创建一个 \$1 子文件夹,请键入下列命令:
mkdir E:\i386\$OEM$\$1
\$1 子文件夹映射到 %systemdrive%,即 Windows 2000 安装程序的目标驱动器。
注意
在 Windows 2000 安装程序完成后 $OEM$ 和分发文件夹自动从用户计算机上删除。
创建 Unattend.txt 应答文件
要安装修补程序,必须添加一个命令行到 Unattend.txt 文件中,以便安装程序识别 \i386\$OEM$ 文件夹下的文件夹和文件。
使用安装管理器工具,创建一个包括下列命令行的 Unattend.txt 文件,以便安装程序识别修补程序:
[Unattended]
OemPreinstall = Yes
有关使用安装管理器创建 Unattend.txt 应答文件的信息,请参阅 Microsoft Windows 2000 Professional Resource Kit 或 Microsoft Windows 2000 Server Resource Kit。有关应答文件参数和设置的信息,请参阅 Service Pack 3 光盘的 \Support\Tools 文件夹中的“Microsoft Windows 2000 无人参与安装指南”(Unattend.doc)。
要在执行 Windows 2000 安装程序过程中安装 Windows 2000 修补程序,必须将下列命令行添加到每一个修补程序的 Cmdlines.txt 文件中:
[Commands]
"Q######.exe /N /Q /Z"
其中 Q###### = 修补程序编号(例如 Q123456)。
例如,要安装 Q123456.exe 修补程序,请将下列命令行添加到 Cmdlines.txt 文件中的 [Commands] 部分:
[Commands]
"Q123456.exe /N /Q /Z"
要一起安装几个修补程序,请在 [Commands] 部分中将它们组成一组。最后,如果某个修补程序发布时间早于 SP3,请加入 Qchain.exe 文件,这将确保安装过程中文件的正确版本得到替换。即使计算机正在使用某些要替换的文件,Qchain.exe 仍可将其替换。
例如,要安装 Q123456.exe、Q123478.exe 和 Q123490.exe 修补程序,请将下列命令行添加到 Cmdlines.txt 文件中的 [Commands] 部分:
[Commands]
"Q123456.exe -n -q -z"
"Q123478.exe -n -q -z"
"Q123490.exe -n -q -z"
"QChain.exe"
有关如何使用安装管理器创建 Cmdlines.txt 文件的信息,请参阅 Microsoft Windows 2000 Professional Resource Kit 或 Microsoft Windows 2000 Server Resource Kit。
将安装文件复制到分发文件夹
必须将安装所需的所有文件全部复制到分发文件夹。除了所有设备驱动器文件和要安装的其他文件之外,分发文件夹还应包含用于 Windows 2000 和 Windows 2000 修补程序的安装程序和可执行文件。
将安装程序文件复制到分发文件夹
将 Windows 2000 光盘上 \i386 中的内容复制到共享网络分发文件夹中的 \i386 文件夹。
将下列文件复制到共享网络分发文件夹中的 \i386\$OEM$ 子文件夹:
Hotfix.exe 程序
Unattend.txt 和 Cmdlines.txt 文件
有关 \i386\$OEM$ 子文件夹中包含的文件的信息,请参阅“Microsoft Windows 2000 Server Resource Kit 部署计划指南”。
将包括要在系统驱动器上安装的附加设备驱动程序、应用程序或组件文件的所有文件夹复制到共享网络分发文件夹中的 \i386\$OEM$\$1 子文件夹。
使用 Cmdlines.txt 部署组合安装
按照本文档前面的使用 Svcpack.inf 部署组合安装中的描述,可以将 Windows 2000 和修补程序的组合安装部署到用户计算机上。
删除 Windows 2000 修补程序
使用“控制面板”中的“添加/删除程序”可以删除 Windows 2000 修补程序。
如果安装了替换同一文件的多个修补程序,并且要将计算机恢复到原始状态,则必须首先删除最近安装的修补程序。例如,假设 HotfixA 和 HotfixB 替换了同一文件,并且先安装了 HotfixA,然后安装了 HotfixB。如果要将计算机恢复到安装 HotfixA 之前的状态,则必须先删除 HotfixB,然后再删除 HotfixA。
删除 Windows 2000 修补程序
单击“开始”,指向“设置”,然后单击“控制面板”。
双击“添加/删除程序”,单击“Q######”,然后单击“更改/删除”。
按屏幕上的指示进行安装。
注意
不能删除通过组合安装方法安装的修补程序。