用powershell 批量卸载 windows 更新

复制代码
$KBID = "KB958488" 
$KBID1 = "KB976902"
cls
function Remove-Update {

$HotFixes = Get-HotFix
[int]$count = 0;
foreach ($HotFix in $HotFixes) 
{
    $count = $count + 1
    Write-Host $count / $HotFixes.Count
    if (($KBID -ne $HotFix.HotfixId) -and ($KBID1 -ne $HotFix.HotfixId)) 
    { 
        "Inside first if" 
        $KBID = $HotFix.HotfixId.Replace("KB", "") 
        $RemovalCommand = "wusa.exe /uninstall /kb:$KBID /quiet /norestart" 
        Write-Host "Removing $KBID from the target." 
        Invoke-Expression $RemovalCommand 
        
    } 
    
    if ($KBID -match "All") 
    { 
        $KBNumber = $HotFix.HotfixId.Replace("KB", "") 
        $RemovalCommand = "wusa.exe /uninstall /kb:$KBNumber /quiet /norestart" 
        Write-Host "Removing update $KBNumber from the target." 
        Invoke-Expression $RemovalCommand 
        
    } 
    
    if ($KBID -match "Security") 
    { 
        if ($HotFix.Description -match "Security") 
        { 
        
            $KBSecurity = $HotFix.HotfixId.Replace("KB", "") 
            $RemovalCommand = "wusa.exe /uninstall /kb:$KBSecurity /quiet /norestart" 
            Write-Host "Removing Security Update $KBSecurity from the target." 
            Invoke-Expression $RemovalCommand 
        } 
    } 
   

    while (@(Get-Process wusa -ErrorAction SilentlyContinue).Count -ne 0) 
    { 
        Start-Sleep 3 
        Write-Host "Waiting for update removal to finish ..." 
    } 
}

}

Remove-Update
复制代码

 



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   疯吻IT  阅读(5668)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示