用于Windows 软件更新程序包的命令行开关

概要 有些 Microsoft 软件更新使用 Hotfix exe 或 Update exe 作为安装程序。这些安装程序会检查 Windows Service

概要

有些 Microsoft 软件更新使用 Hotfix.exe 或 Update.exe 作为安装程序。这些安装程序会检查 Windows Service Pack 的版本和操作系统的语言,并在计算机上安装和注册软件更新,然后对文件进行备份以允许删除软件更新。

使用上述安装程序之一的软件更新支持多个命令行开关,管理员可使用这些开关来部署更新。

要确定 2004 年 7 月之后发布的软件更新程序包是使用 Hotfix.exe 还是 Update.exe 作为安装程序,只需该程序包“属性”对话框的“版本”选项卡上的“安装程序引擎”值即可。对于 2004 年 7 月之前发布的程序包,则必须解压缩程序包的内容才能查看它使用的是安装程序。


简介
Microsoft 使用几种不同的自解压缩文件格式来对软件更新进行打包,这些文件格式能够自动运行程序包中所包含的安装程序。本文描述了可与使用 Hotfix.exe 或 Update.exe 作为安装程序的软件更新程序包一起使用的命令行开关。下文将这些程序包称为“Windows 软件更新程序包”。

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 (http://support.microsoft.com/kb/824684/) 有关用于描述 Microsoft 软件更新标准术语的介绍


更多信息
要确定软件更新程序包是否使用 Update.exe 作为安装程序以及它所使用的版本,请按照下列步骤操作:1. 右键单击该程序包,然后单击“属性”。
2. 在“版本”选项卡上的“其他版本信息”下,单击“安装程序引擎”。如果使用 Update.exe,它应出现在“值”字段中。
3. 要确定版本,请单击“安装程序版本”。程序包中使用的安装程序的版本出现在“值”字段中。
对于 2004 年 7 月之前发布的程序包,或者“常规”选项卡上的“说明”值显示为“自解压缩 Cabinet”的程序包,请执行下列步骤来确定它们使用的是 Update.exe 还是 Hotfix.exe,以及它们所使用的版本:1. 将软件更新程序包解压缩到一个唯一的临时文件夹中。例如,要将名为 KBArticleNumber.exe 的更新程序包的文件解压缩到驱动器 C 上名为 ExtractedPackage 的文件夹中,请在命令提示符处键入以下命令:
KBArticleNumber /X:C:\ExtractedPackage
2. 打开软件更新程序包的解压缩文件所在的临时文件夹。例如,打开 C:\ExtractedPackage。
3. 在临时文件夹或子文件夹中找到 Update.exe 或 Hotfix.exe 文件。
4. 要判断 Update.exe 或 Hotfix.exe 的版本,右键单击该文件,然后单击“属性”。
5. 单击“版本”选项卡,然后记下“文件版本”行上的值。

注意:如果程序包说明是“Win32 Cabinet 自解压程序”,则软件更新程序包是一个 IExpress 程序包。 有关 IExpress 程序包的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
197147 (http://support.microsoft.com/kb/197147/) IExpress 软件更新程序包的命令行参数


如果该程序包使用 .msi 或 .msp 文件扩展名,则表明软件更新程序包使用 Windows Installer 作为安装程序。有关 Windows Installer 使用的命令行选项的其他信息,请访问下面的 Microsoft 网站:
http://msdn.microsoft.com/library/en-us/msi/setup/command_line_options.asp (http://msdn.microsoft.com/library/en-us/msi/setup/command_line_options.asp)
用于 Windows NT 4.0 的软件更新以及 Windows 2000 Service Pack 3 或更低版本中包含的软件更新使用 Hotfix.exe 作为安装程序。

Windows 2000 Service Pack 4 和更高版本以及 Windows XP 和 Windows Server 2003 中包含的软件更新使用 Update.exe 作为安装程序。

注意:用于“适用于”部分中所列 Windows 版本的一些软件更新程序包使用 IExpress 或 Windows Installer 程序包。这些程序包不使用 Hotfix.exe 或 Update.exe 作为安装程序。


安装过程概述
运行 Windows 软件更新程序包时,如果不使用命令行开关,则会自动运行 Hotfix.exe 或 Update.exe 安装程序来安装软件更新。安装程序执行的操作如下:• 安装程序(Hotfix.exe 或 Update.exe)检查当前使用的 Service Pack 版本。如果 Service Pack 版本低于软件更新版本,但是不低于软件更新指定的最低版本,并且语言相同,则安装程序将自动安装软件更新。如果 Service Pack 版本高于软件更新版本,则不会继续安装。 
• 如果软件更新语言版本与操作系统语言不匹配,则不会继续安装。
• 如果不存在版本冲突,则 Hotfix.exe 或 Update.exe 将安装该软件更新。
• 安装程序会在下面某个注册表项下注册该软件更新:
HKEY_LOCAL_MACHINE \Software\Microsoft\Updates\<operating system>\<service pack level>\KB<nnnnnn>
HKEY_LOCAL_MACHINE \Software\Microsoft\Windows NT\CurrentVersion\Hotfix\Q<nnnnnn>
HKEY_LOCAL_MACHINE \Software\Microsoft\Windows NT\CurrentVersion\Hotfix\KB<nnnnnn>
• 软件更新的删除信息存储在 %Systemroot% 下名为 $NtUninstallQnnnnnn$ 或 $NtUninstallKBnnnnnn$ 的隐藏文件夹中。


Update.exe 程序的命令行开关
下表列出了 Update.exe 程序的各个不同版本所支持的命令行开关。

标准开关 开关说明 支持此开关的 Update.exe 版本
/help 显示命令行帮助。 5.3.24.3 版本和更高版本支持 /help 开关。为了与旧版本兼容,可以使用 /? 开关。 

/passive 无人值守安装模式。无需用户交互,但会显示安装状态。如果安装完成时需要重新启动计算机,则会出现一个对话框,其中包含一条计时器警告,指出计算机将在 30 秒后重新启动。 5.3.24.3 版本和更高版本支持 /passive 开关。为了与旧版本兼容,可以使用 /u 开关。 

/quiet 安静模式 - 与无人值守模式相同,但不显示状态或错误信息。 5.3.24.3 版本和更高版本支持 /quiet 开关。为了与旧版本兼容,可以使用 /q 开关。 

/norestart 安装完成后不重新启动计算机。 5.3.24.3 版本和更高版本支持 /norestart 开关。为了与旧版本兼容,可以使用 /z 开关。 

/warnrestart 出现一个对话框,其中包含一条计时器警告,指出计算机将在 x 秒后重新启动。(默认为 30 秒)。应与 /quiet 或 /passive 开关一起使用。 6.1.22.0 版本和更高版本支持 /warnrestart 开关。
/forcerestart 安装后重新启动计算机,并强制其他应用程序在关机时立即关闭,而不是先保存打开的文件。 5.3.24.3 版本和更高版本支持 /forcerestart 开关。

/promptrestart 出现一个对话框,提示用户在必要时重新启动计算机。应与 /quiet 一起使用。 6.1.22.0 版本和更高版本支持 /promptrestart 开关。

/forceappsclose 强制其他程序在计算机关机时关闭。 5.4.15.0 版本和更高版本支持 /forceappsclose 开关。为了与旧版本兼容,可以使用 /f 开关。 

/nobackup 不为备份卸载文件。 6.1.22.0 版本和更高版本支持 /nobackup 开关。为了与旧版本兼容,可以使用 /n 开关。 

/overwriteoem 不经提示即覆盖 OEM 文件。 6.1.22.0 版本和更高版本支持 /overwriteoem 开关。为了与旧版本兼容,可以使用 /o 开关。 

/integrate:path 将软件更新整合到位于指定路径的 Windows 安装源文件中。注意,:path 指包含 i386 文件夹的文件夹。 5.4.15.0 版本和更高版本支持 /integrate:path 开关。为了与旧版本兼容,可以使用 /s 开关。 

/log:path 允许用户指定日志文件的创建位置。 6.1.22.0 版本和更高版本支持 /log 开关。
/ER 启用扩展错误报告。 所有版本都支持 ER 开关。

/verbose 启用详细日志记录。安装时创建 %Windir%\CabBuild.log,以详细描述要复制的文件。使用此开关可能导致安装速度变慢。 5.3.24.3 版本和更高版本支持 /verbose 开关。为了与旧版本兼容,可以使用 /v 开关。 

/d:path 指定 Windows Service Pack 安装的备份目录。:path 指备份文件的目标文件夹。默认备份位置为 %Systemdrive%\$ntservicepackuninstall$。  此开关不能用于 Service Pack 以外的更新,并且只能在 Installer 5.3.16.5 版本和更高版本中使用。 

/extract[:path] 解压缩文件,但不启动安装程序。如果不包含“:path”,则会提示您提供要将文件解压缩到的目标文件夹的路径。如果包含“:path”,则将文件解压缩到指定的目标文件夹中。 5.3.24.3 版本和更高版本支持 /extract 开关。为了与旧版本兼容,可以使用 /x 开关。 

/hotpatch:disable 禁用热修补功能,只安装冷修补程序。 这只用于支持热修补的 Windows Server 2003 程序包,并且可在 6.1.22.0 版本和更高版本中使用。有关热修补的更多信息,请参见本文的“参考”部分,获取指向“Inside Update.exe”白皮书的链接。


注意:• 我们采用的是一致的命令行开关集,您可以使用这些开关部署包含软件更新的程序包。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824687 (http://support.microsoft.com/kb/824687/) Microsoft 软件更新程序包的命令行开关
为了实现向后兼容,实施新的标准开关名称的 Windows 软件更新也支持较低版本的 Update.exe 所使用的安装开关。但是,我们建议您停止使用这些旧开关,因为将来的软件更新可能会取消这种支持。
• 列出的所有开关均使用正斜杠 (/)。为了与旧版本兼容,您也可以使用连字符 (-) 来代替正斜杠 (/)。
• 要安全地删除软件更新,应首先删除最近安装的软件更新。例如,假定修复程序 A 和 B 都替换同一文件或注册表项,并且您先安装的是 A,后安装的是 B。要使系统恢复到安装 A 之前的状态,必须先卸载 B,再卸载 A。 有关如何删除 Update.exe 更新的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
823836 (http://support.microsoft.com/kb/823836/) 以错误顺序删除 Windows 软件更新可能导致操作系统停止工作 


Hotfix.exe 程序的命令行开关
下表列出了 Hotfix.exe 程序所支持的命令行开关。
命令行开关 说明
/f 强制其他程序在关机时退出
/l 列出已安装的软件更新
/m 无人值守模式
/n 不为卸载备份文件
/q 安静模式 - 无需用户交互
/y 执行卸载(必须与 /m 或 /q 一起使用)
/z 安装后不重新启动计算机

有关如何安装和删除使用 Hotfix.exe 的软件更新,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
184305 (http://support.microsoft.com/kb/184305/) 如何使用 Hotfix.exe 安装和删除修复程序


参考
以下白皮书讨论了 Windows 和 Windows 组件的程序包安装程序 Update.exe:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/deployment/winupdte.mspx