如何使用 PowerShell 一次性删除所有已安装的 Office 更新(通过 Windows 更新)?

如何使用 PowerShell 一次性删除所有已安装的 Office 更新(通过 Windows 更新)?

最近我删除了我的 Office 2016,但我的电脑仍然有很多 Office 更新补丁。


在此处输入图片描述


由此问题的回答,我学会了使用 Windows Update API 命令来搜索现有的 Office 更新补丁。在花了大量时间之后,我找不到任何可行的 Windows Update API 卸载命令。那么在找到所有现有的 Office 更新补丁后,如何执行卸载步骤呢?

答案1

尝试完全删除 Office(控制面板、程序和功能)。这样一来,Office 更新就会消失(对我来说,在所有机器上都是如此)。

答案2

下面的 PowerShell 脚本改编自这篇文章
PowerShell:如何查找和卸载 MS Office 更新

我还没有测试过,所以我建议至少在尝试之前创建一个系统还原点,并在注释掉执行实际卸载的命令时仔细调试它:$Installer.Uninstall() 以及它后面的命令。

$Session = New-Object -ComObject Microsoft.Update.Session

$Collection = New-Object -ComObject Microsoft.Update.UpdateColl
$Installer = $Session.CreateUpdateInstaller()
$Searcher = $Session.CreateUpdateSearcher()

$Searcher.QueryHistory(0, $Searcher.GetTotalHistoryCount()) | 
    Where-Object { $_.Title -match 'Update for Microsoft Office' } |
    ForEach-Object {
        Write-Verbose "Found update history entry $($_.Title)"
        $SearchResult = $Searcher.Search("UpdateID='$($_.UpdateIdentity.UpdateID)' and RevisionNumber=$($_.UpdateIdentity.RevisionNumber)")
        Write-Verbose "Found $($SearchResult.Updates.Count) update entries"
        if ($SearchResult.Updates.Count -gt 0) {
            $Installer.Updates = $SearchResult.Updates
            $Installer.Uninstall()
            $Installer | Select-Object -Property ResultCode, RebootRequired, Exception
            # result codes: http://technet.microsoft.com/en-us/library/cc720442(WS.10).aspx
        }
    }

相关内容