有没有一种干净的方法可以使用Batch/PowerShell命令卸载MS Word KB文章?
背景:
我一直在尝试卸载一个知识库文章 (KB4475558( MS Word 2013.作为手动团队解决方案的一部分,谁想要卸载所有新安装的知识库文章。我成功地尝试安装多篇知识库文章。但是卸载一直很棘手。
到目前为止尝试过,
方法1:wusa /uninstall /KB:4475558
wusa.exe /uninstall /kb:4475558 /norestart /quiet
---- 它给出"此操作仅对当前安装的产品有效"错误。
方法 2:使用 GUID
Msiexec /I {90150000-006E-0401-1000-0000000FF1CE} MSIPATCHREMOVE={80BC2A33-0ADF-4731-AC75-046BA9B6B7AF} /qb
---- 它给出"此操作仅对当前安装的产品有效"错误。
方法3:
通过下面的链接使用Microsoft.Update.Searcher,
PowerShell:如何查找和卸载 MS Office 更新
-- 不起作用。
你能帮我解决这些问题吗:
1:我已经手动安装了这些知识库文章,我可以手动卸载它:但是通过脚本,它显示了上述错误。为什么会这样?
2: 我可能缺少其他方法吗?
注意: MS Office不仅安装了MS word和共享点,我的机器中没有可用的Trail版本。 我也尝试过重新启动机器一次,但无济于事。
任何帮助都会非常有帮助!谢谢
您是否尝试过使用批处理文件从注册表卸载密钥解析卸载字符串?我通常不推荐这种方法,但总比没有好。
@(For /F "Delims=" %%G In (
'^""%__AppDir__%reg.exe" Query "HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall" /S /F "(KB4475558)" /D 2^>NUL^|Find "{"^"'
)Do @For /F "Tokens=2*" %%H In ('^""%__AppDir__%reg.exe" Query "%%G" /V "UninstallString" 2^>NUL^"')Do @Echo(%%I)&Pause
如果您对结果感到满意,可以修改代码以尝试卸载它(您可能需要运行脚本或命令"以管理员身份"(:
从批处理文件:
@For /F "Delims=" %%G In (
'^""%__AppDir__%reg.exe" Query "HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall" /S /F "(KB4475558)" /D 2^>NUL^|Find "{"^"'
)Do @For /F "Tokens=2*" %%H In ('^""%__AppDir__%reg.exe" Query "%%G" /V "UninstallString" 2^>NUL^"')Do @%%I
或来自CMD:
For /F "Delims=" %G In ('""%__AppDir__%reg.exe" Query "HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall" /S /F "KB4475558" /D 2>NUL|Find "{""')Do @For /F "Tokens=2*" %H In ('""%__AppDir__%reg.exe" Query "%G" /V "UninstallString" 2>NUL"')Do @Echo(%I
如果您尝试为办公产品的所有 KB 更新执行此操作,则类似这样的事情可能会让您接近:
@(For /F "Delims=" %%G In (
'^""%__AppDir__%reg.exe" Query "HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall" /S /F "0FF1CE}_Office" /K 2^>NUL^|Find "{"^"'
)Do @For /F "Tokens=2*" %%H In ('^""%__AppDir__%reg.exe" Query "%%G" /V "UninstallString" 2^>NUL^"')Do @Echo(%%I)&Pause
如果您对结果感到满意,可以修改代码以尝试卸载它(您可能需要运行脚本或命令"以管理员身份"(:
从批处理文件:
@(For /F "Delims=" %%G In (
'^""%__AppDir__%reg.exe" Query "HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall" /S /F "0FF1CE}_Office" /K 2^>NUL^|Find "{"^"'
)Do @For /F "Tokens=2*" %%H In ('^""%__AppDir__%reg.exe" Query "%%G" /V "UninstallString" 2^>NUL^"')Do @Echo(%%I)&Pause
或来自CMD:
For /F "Delims=" %G In ('""%__AppDir__%reg.exe" Query "HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall" /S /F "0FF1CE}_Office" /K 2>NUL|Find "{""')Do @For /F "Tokens=2*" %H In ('""%__AppDir__%reg.exe" Query "%G" /V "UninstallString" 2>NUL"')Do @%I
请注意,上面的示例仅解析注册表项HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall
。可能还有其他位置,例如HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall
保存您所需的信息。