如何以编程方式自动卸载 Office 更新
本文由高级支持升级工程师 Eric Ashton 撰写。
本文介绍如何使用如下所示的命令行自动卸载 Office 更新:
%windir%\System32\msiexec.exe /package {Office GUID} /uninstall {Update GUID} /QN
确定已安装 Office 版本的 GUID
若要确定已安装 Office 版本的 GUID,请执行以下步骤:
找到并检查以下注册表项。
对于 32 位 OS
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
对于 64 位 OS
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
请参阅以下文章,根据你的情况在 Office 版本中查找 GUID:
注意
通过在 GUID 中列出的密钥的 DisplayName 字段中验证产品是否找到了正确的 GUID。
确定更新的 GUID
若要确定更新的 GUID,必须检查包含在更新 .exe 文件中的 MSP 文件的属性。
首先,必须从更新可执行文件中提取 MSP 文件。 为此,请运行以下命令,将文件提取到 c:\temp 目录:
<MSP file name> /extract:c:\temp
例如,若要从 Office 2013 更新 4462201 (mso2013-kb4462201-fullfile-x64-glb.exe) 中提取内容,请运行以下命令:
mso2013-kb4462201-fullfile-x64-glb.exe /extract:c:\temp
从更新可执行文件获取 MSP 时,必须查找更新的 GUID。 若要查找 GUID,请右键单击 MSP 文件,找到 “属性”,然后查找 “修订号”。
有时 修订号 部分中有许多数字。 将修订号列表复制并粘贴到记事本中,然后删除除第一个编号以外的所有编号。 修订号列表中的第一个数字是 GUID。
现在,你知道 Office 版本中的 GUID 和 Office 更新的 GUID。 可以运行以下命令以编程方式删除更新。
%windir%\System32\msiexec.exe /package {Office GUID} /uninstall {Update GUID} /qn
注意
使用 /qb 通过进度栏自动卸载,或使用 /qn 进行完全无提示的卸载。
常见问题解答
如果我们知道更新的 GUID,如何确定是否以编程方式安装更新?
一旦将更新 GUID 转换为压缩的 GUID,就可以执行此操作。 下面是有关如何将未压缩 GUID 转换为压缩 GUID 的步骤。
将未压缩的 GUID 分为五个部分,并删除短划线。 例如,不带短划线的未压缩 GUID 显示为 90110409 6000 11D3 8CFE 0150048383C9。
反转前三节中每个编号的顺序。 在此示例中,前三个部分显示为 90401109 0006 3D11。
在第四节和第五节中,必须每两个字符转置一次。 为此,请按照下列步骤操作:
- 将两个部分分解为每两个用空格分隔的字符。 数字显示为 8C FE 01 50 04 83 83 C9。
- 转置每个部分。 数字显示为 C8 EF 10 05 40 38 38 9C。
将所有数字放在一起并删除空格。 压缩的 GUID 将变为 9040110900063D11C8EF10054038389C。
然后在以下注册表位置查询压缩的 GUID:
HKEY_CLASSES_ROOT\Installer\Patches
如果 GUID 存在,则表示已安装更新。
是否可以卸载本机不可卸载的更新?
尽管 Microsoft 不推荐也不支持它,但你可以卸载标记为不可卸载的更新。 同样,必须使用前面的方法将更新 GUID 转换为压缩的 GUID。
可以使用以下注册表项确定更新是否可卸载:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\Office GUID\Patches\Compressed GUID
“Uninstallable”=dword:00000001
注意
如果更新本身不可卸载,则可以将此注册表位置的 “可卸载” 值更改为 1,然后即可卸载更新。
我们有一个更新,其中包含多个 MSP 文件。 这正常吗? 我们是否会全部卸载它们?
Office 更新通常包含多个 MSP 文件。 如果要完全删除更新,则必须卸载每个 MSP 文件。
Office 更新也经常应用于多个产品。 因此,它们在 卸载或更改程序中多次显示。 在这些情况下,若要完全删除更新,必须针对安装了更新的每个 Office 产品的 GUID 运行卸载命令。