必须用微软官方wushowhide.diagcab工具隐藏——该工具一步到位,稳定可靠,不改系统核心,不影响其他补丁;支持已安装与未安装状态,自动卸载再隐藏,刷新后补丁彻底消失。

当你在 Windows 更新界面反复看到某个已知引发蓝屏、打印机失灵或软件崩溃的补丁(例如 KB5101650 或 KB5063878),又不想关闭全部更新功能时,必须让它从“可选更新”和“检查更新”结果中彻底消失——不是暂停、不是延迟,而是精准抹除该补丁的可见性与推送路径。
用微软官方 wushowhide.diagcab 工具隐藏(推荐,一步到位)
这是目前最稳定、无需编程基础、且能同时处理“已安装”和“未安装”两种状态的方案。工具由微软官方发布,不修改系统核心服务,也不影响其他补丁接收。
第一步:访问微软支持页面下载 wushowhide.diagcab 文件,保存到一个路径不含中文、空格或特殊符号的文件夹(如 C:\WUHide),双击运行。
第二步:点击“下一步”→ 选择“隐藏更新”→ 等待扫描完成(通常需 30~90 秒,期间不要切换窗口)。
第三步:在列表中勾选你要屏蔽的补丁(如 KB5034765),注意核对标题末尾年份和版本号,避免误选同编号不同修订版;若该补丁已安装,工具会自动先卸载再隐藏,此过程不可逆,卸载后需手动重装原补丁包才能恢复。
第四步:点击“下一步”→ 完成。刷新 Windows 更新页面,该补丁将不再出现,也不会被后台静默下载。
用 PowerShell 临时隐藏 + 立即固化(适合批量或脚本化)
适用于你已在多台设备部署自动化流程,或需要在无人值守场景下快速执行。单独 PowerShell 隐藏仅驻留内存,重启即失效,必须紧接固化步骤。
方法一:管理员身份运行 PowerShell → 粘贴并执行整段代码(把 5101650 替换为你的真实 KB 编号):
function Hide-SpecificUpdate { param([string]$KB) $session = New-Object -ComObject Microsoft.Update.Session $searcher = $session.CreateUpdateSearcher() $updates = $searcher.Search("IsInstalled=0").Updates foreach ($update in $updates) { if ($update.Title -match $KB) { $update.IsHidden = $true Write-Host "已临时隐藏:$($update.Title)" -ForegroundColor Green } } } Hide-SpecificUpdate -KB "5101650"
⚠️ 这一步只是标记,关机后就清空,不做下一步等于白操作。
方法二:立即运行 wushowhide.diagcab 工具 → 选择“显示隐藏的更新”→ 勾选刚隐藏的条目 → 点击“取消隐藏”→ 再次选择“隐藏更新”→ 重新勾选同一项 → 完成。这相当于用图形界面把 PowerShell 的内存标记刷进系统持久层。
用组策略永久锁定(仅限专业版/企业版)
如果你管理的是公司内网设备,或追求策略级管控,这条路径可让指定补丁从源头被系统忽略——既不扫描、不下载、不提示,连“已安装更新”历史里都不会留下痕迹。
第一步:按 Win + R 输入 gpedit.msc 回车,打开本地组策略编辑器。
第二步:依次展开:计算机配置 → 管理模板 → Windows 组件 → Windows 更新 → Windows 更新代理设置。
第三步:双击右侧「指定不应在“检测更新”中显示的更新」→ 设为【已启用】→ 点击「显示…」。
第四步:在弹出窗口中输入你要屏蔽的补丁编号,格式必须严格为 KB1234567(KB 全大写、无空格、无括号、每行一个),例如:
KB5034765
KB5063878
输错任意一个字符都会导致整条策略失效。
第五步:点击确定 → 应用 → 确定 → 重启电脑。此后系统将完全跳过这些补丁的全部生命周期。











