如何从 CAB 和 MSU 文件手动安装 Windows 更新
Windows 更新以带有 MSU 或 CAB 文件扩展名的包形式发布。如果 Windows 更新服务无法运行(或被禁用),您可以手动下载并安装系统所需的累积更新或安全更新。在本文中,我们将展示如何下载并离线安装 MSU 或 CAB 格式的 Windows 更新。
如何手动下载 MSU Windows 更新文件?
Microsoft 以CAB(Windows Cabinet)文件格式发布了安全更新和补丁。这是您的计算机从 Microsoft 更新服务器或本地 WSUS 服务器接收更新的格式。为了使使用 Microsoft 更新目录手动分发单独的更新更加方便,这些 CAB 文件以特殊的 MSU 格式(Microsoft Update 独立安装程序包)进行打包。
您可以从 Microsoft 更新目录 (https://www.catalog.update.microsoft.com/) 下载 MSU Windows 更新文件(有时还包括 CAB 文件)或其他 Microsoft 产品的文件。转到 Microsoft 更新目录,查找并下载您需要的更新。例如,我想要安装适用于基于 x64 的系统的 Windows 10 版本 21H2 的 2022-05 服务堆栈更新 (KB5014032)。单击下载按钮。
将已下载的文件 ssu-19041.1704-x64_70e350118b85fdae082ab7fde8165a947341ba1a.msu 移至 C: emp 文件夹。将其重命名为较短的名称windows10.0-kb4056887-x64.msu。
从 MSU 文件安装 Windows 更新
要开始安装 Windows 更新包,只需双击您已下载的 MSU 文件。如果更新适用于此计算机,将打开 Windows 更新独立安装程序窗口,系统将在其中提示您确认更新安装。
您可能会收到错误“
The update is not applicable to your computer安装 MSU 更新时。链接中的文章详细讨论了此错误的原因。
您还可以使用 wusa.exe 工具从命令行安装 MSU 更新包。
要以静默模式(用户不会看到任何弹出窗口)延迟重新启动安装更新,请以管理员身份打开命令提示符并运行以下命令:
wusa.exe c:\Temp\windows10-21h2-kb5014032.msu /quiet /norestart提示。如有必要,您还可以使用 wusa 工具卸载更新。
稍等片刻后,检查更新是否已成功安装:
wmic qfe list | findstr 5014032或者,您可以在事件查看器 -> Windows 日志 -> 设置中找到来自 WUSA 源的事件 ID 2 的条目:
Windows update "Security Update for Windows (KB5014032)" was successfully installed. (Command line: "wusa.exe c:\Temp\windows10-21h2-kb5014032.msu /quiet /norestart")
请注意,在 Windows 中通过 wusa.exe 安装 MSU 格式的更新比安装与 CAB 文件相同的更新要慢。原因是在 Windows 更新/WSUS 服务器上执行了额外扫描。
如何从 MSU 更新包中提取 CAB 文件?
如果 Windows 更新服务 (
wuausrv)无法正常工作,您将无法从 MSU 文件安装更新。在这种情况下,您可以手动解压 MSU 软件包,从中提取 CAB 更新文件,然后在 Windows 上手动安装。
您可以重置 Windows Update 代理组件以恢复 wuauserv 功能。
为了将 MUS 包解压到 C:\Temp\kb4056887 文件夹中,请运行以下命令(您必须提前创建此文件夹):
expand -f:* “C:\Temp\windows10.0-kb4056887-x64.msu” C:\Temp\kb4056887Microsoft (R) File Expansion Utility Version 10.0.10011.16384
Copyright (c) Microsoft Corporation. All rights reserved.
Adding C:\Tmp\kb4056887\WSUSSCAN.cab to Extraction Queue
Adding C:\Tmp\kb4056887\Windows10.0-KB4056887-x64.cab to Extraction Queue
Adding C:\Tmp\kb4056887\Windows10.0-KB4056887-x64-pkgProperties.txt to Extraction Queue
Adding C:\Tmp\kb4056887\Windows10.0-KB4056887-x64.xml to Extraction Queue
Expanding Files ….
Expanding Files Complete …
4 files total.可以看到,文件夹中出现了4种文件类型:
.xml 文件 (Windows10.0-KB4056887-x64.xml) - 包含 MSU 包元数据并由 wusa.exe 使用;
.cab 文件(Windows10.0-KB4056887-x64.cab — 一个或多个)— 是一个包含 Windows 更新的文件柜(存档);
-
*pkgProperties.txt 文件 (Windows10.0-KB4056887-x64-pkgProperties.txt) - 包含程序包属性(发布日期、架构、程序包类型、知识库链接等)。
您还可以使用 7-ZIP 打开任何 MSU 文件并从中提取 CAB 文件。
在 Windows 10/11 上安装 CAB 更新文件
您可以通过两种方式安装 CAB 更新文件。
从 CAB 文件安装更新的最常见方法是使用 DISM.exe。安装命令可能如下所示:
DISM.exe /Online /Add-Package /PackagePath:c:\Temp\kb4056887\Windows10.0-KB4056887-x64.cabDeployment Image Servicing and Management tool
Version: 10.0.10240.16384
Image Version: 10.0.10240.16384
Processing 1 of 1 — Adding package Package_for_KB4056887~31bf3856ad364e35~amd64~~10.0.1.0
[==========================100.0%==========================]
The operation completed successfully.注意。请注意,与使用 wusa.exe 从 MSU 文件安装更新相比,通过 DISM 安装 CAB 包的速度有多快。
如果必须以静默模式安装 CAB 软件包并稍后重新启动,请使用以下 DISM 命令:
start /wait DISM.exe /Online /Add-Package /PackagePath: c:\Temp\kb4056887\Windows10.0-KB4056887-x64.cab /Quiet /NoRestart这
DISM.exe /Add-Package命令还允许您安装 MSU 更新(仅支持脱机 Windows 映像)。您可以使用
/PackagePath参数指定 MSU 和 CAB 更新文件存储目录的路径。 DISM 将递归扫描指定的目录和子文件夹,并将任何找到的 CAB 和 MSU 更新包安装到 Windows 映像中。
请注意,在将 CAB 文件添加到 Windows 映像时,DISM.exe /Add-Package 命令不会检查依赖项和环境要求(与 wusa.exe 不同,wusa.exe 首先检查 MSU 更新是否适用于计算机)。
要在 Windows 映像中安装 CAB 文件,可以使用 PowerShell 命令
Add-WindowsPackage -Online -PackagePath "C:\win10_kb123456.cab"而不是 DISM /Add-Package 命令。
在 Windows 8 和 Windows 7 上,您可以使用 Pkgmgr 命令安装 CAB 更新:
start /w Pkgmgr /ip /m:c:"c:\Temp\kb4056887\Windows10.0-KB4056887-x64.cab"注意。 Windows 10/11 和 Windows Server 2016/2019 不再支持 PkgMgr.exe 包管理器。运行它时,您会收到一条警告,提示您需要使用 DISM.exe 来管理包。
Note: The PkgMgr.exe has been deprecated. Please update your scripts to use dism.exe to extract, install, uninstall, configure and update features and packages for Windows. Operation failed with 0x80070003.注意。请注意,Windows 语言包 (MUI) 也以 CAB 格式分发。但是,您将无法使用 DISM 命令来安装它们。您必须使用单独的 lpksetup.exe 工具来在系统中安装新语言。
您可以将安装 CAB 文件的选项添加到文件资源管理器上下文菜单。为此,请将以下 *.reg 文件导入注册表:
Windows Registry Editor Version 5.00
[-HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs]
[HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs]
@="Install CAB"
"HasLUAShield"=""
[HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs\Command]
@="cmd /k dism /online /add-package /packagepath:\"%1\""现在要安装 CAB 文件,您只需从上下文菜单中选择安装。
使用 PowerShell/批处理批量安装多个 MSU 或 CAB 更新文件
如果需要一次在计算机上安装多个 CAB 或 MSU 更新,可以使用 BAT 和 PowerShell 脚本。有了这样的脚本,您就不必一一手动安装更新。
在驱动器上创建一个目录,并将需要安装的所有 Windows MSU 更新文件复制到其中。运行 install_msu.bat 脚本以安装指定文件夹中的所有 MSU 更新:
Set Folder="C:\updates"
for %%f in (%Folder%\*.msu) do (
wusa.exe %%f /quiet /norestart
)同样,您可以使用以下 PowerShell 脚本从指定文件夹安装 MSU 更新:
$dir = (Get-Item -Path c:\updates -Verbose).FullName
Foreach($item in (ls $dir *.msu -Name))
{
echo $item
$item = $dir + "\" + $item
wusa $item /quiet /norestart | Out-Null
}本指南使用 MSU 和 CAB 文件手动安装累积更新或任何其他 Windows 更新,适用于所有支持的 Windows 操作系统版本:Windows 11/10/8.1/7 和 2022/2019/2016/2012R2/2008R2。









