236 不好!Windows更新已经在后台偷偷开始!如何安全终止“妊娠”?
不好!Windows更新已经在后台偷偷开始!如何安全终止“妊娠”?
如果你不喜欢Windows系统偷偷下载更新,那么当你看见Windows“设置”应用中的“更新和安全”页面中的“正在下载更新...”字样,心情肯定已经到了崩溃的边缘。一边埋怨自己为什么不提前设置好暂停更新,一边又无计可施,无可奈何,只能眼睁睁的看着更新下载结束,然后重启电脑进行系统更新。
那么究竟如何才能安全的阻止这台电脑继续进行系统更新的下载和安装,把系统退回到“什么都没发生过”时候的状态,并暂停Windows更新到几千年以后?
今天详细的聊聊这件事。
PE下删除文件和更新UI界面记录
在Windows正在下载更新的情况下,我们想要在这个系统里删除这些文件和记录极为困难。因为结束下载系统更新和结束系统更新的系统进程非常难,而且经常会发生结束进程后进程又立刻启动的情况,很难杀。
因此,我们选择使用PE系统中操作。因为PE系统中那些进程绝对不可能运行。
进PE系统后,我们都需要删除那些文件和文件夹呢?
下面给出需要删除的文件夹和文件的列表:
假设原系统盘在 PE 下为 C: 盘:
- Windows Update 下载包与状态数据库
C:\Windows\SoftwareDistribution文件夹 - 传递优化(DoSvc)下载缓存与状态记录
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Windows\DeliveryOptimization - 更新编排器(UsoSvc)设置界面状态记忆库
C:\ProgramData\USOPrivate\UpdateStore - BITS 后台传输任务队列数据库
C:\ProgramData\Microsoft\Network\Downloader\(注:删除里面的qmgr.db、qmgr.jfm、qmgr0.dat、qmgr1.dat等所有文件) - 大版本功能更新(UUP)预解包隐藏目录
C:\$WINDOWS.~BTC:\$WINDOWS.~WS - CBS 组件后台流式预解包临时目录
C:\Windows\WinSxS\Temp\(注:清空该目录下的InFlight、PendingDeletes等临时解包残留) - 已进入挂起阶段的更新配置(若已有子包下载并解包完成才会生成)
C:\Windows\WinSxS\pending.xmlC:\Windows\WinSxS\cleanup.xml(注:若存在pending.xml,建议在 PE 中执行dism /Image:C:\ /Cleanup-Image /RevertPendingActions)
一键脚本
我知道你看了上面那么多眼花缭乱的文件和文件夹会感到反胃,所以我给你制作了bat脚本,可以直接放在PE系统里双击运行,只需要你输入PE系统里Windows系统盘的盘符,就可以删除上面所有内容,恢复Windows到下载更新之前的状态。
bat脚本的内容如下:
@echo off
setlocal
:input
set "drive="
set /p "drive=请输入Windows系统盘盘符并回车:"
if not defined drive goto input
set "drive=%drive:~0,1%"
if not exist "%drive%:\Windows\System32" (
echo 未在 %drive%: 盘下找到 Windows 系统目录,请重新输入。
echo.
goto input
)
echo.
echo 正在清理 %drive%: 盘上的 Windows 更新文件与状态...
if exist "%drive%:\Windows\WinSxS\pending.xml" (
echo 检测到已挂起的更新,正在执行 DISM 回滚...
dism /Image:%drive%:\ /Cleanup-Image /RevertPendingActions
del /f /q /a "%drive%:\Windows\WinSxS\pending.xml" 2>nul
del /f /q /a "%drive%:\Windows\WinSxS\cleanup.xml" 2>nul
)
rd /s /q "%drive%:\Windows\SoftwareDistribution" 2>nul
rd /s /q "%drive%:\Windows\ServiceProfiles\NetworkService\AppData\Local\Microsoft\Windows\DeliveryOptimization" 2>nul
rd /s /q "%drive%:\ProgramData\USOPrivate\UpdateStore" 2>nul
del /f /q /a "%drive%:\ProgramData\Microsoft\Network\Downloader\*" 2>nul
attrib -r -s -h "%drive%:\$WINDOWS.~BT" 2>nul
rd /s /q "%drive%:\$WINDOWS.~BT" 2>nul
attrib -r -s -h "%drive%:\$WINDOWS.~WS" 2>nul
rd /s /q "%drive%:\$WINDOWS.~WS" 2>nul
if exist "%drive%:\Windows\WinSxS\Temp" (
del /f /q /a "%drive%:\Windows\WinSxS\Temp\*" 2>nul
for /f "delims=" %%i in ('dir /b /ad "%drive%:\Windows\WinSxS\Temp" 2^>nul') do (
rd /s /q "%drive%:\Windows\WinSxS\Temp\%%i" 2>nul
)
)
del /f /q /a "%drive%:\ProgramData\USOShared\Logs\*" 2>nul
del /f /q /a "%drive%:\Windows\Logs\WindowsUpdate\*" 2>nul
del /f /q /a "%drive%:\Windows\Logs\CBS\*" 2>nul
echo.
echo 清理完成!
pause
上面bat脚本PEUpdatekill.bat的下载链接:https://wwawp.lanzouu.com/iT1Rv4f48zda 密码:ffme
运行完上述脚本,就可以直接重启进入Windows系统了。
重启之后
需要阻止Windows系统继续探测更新!如果不及时阻止,Windows系统的计划任务会在几分钟之后重新检测Windows更新,然后毫不留情的重新下载Windows更新。那么我们刚刚的工作又前功尽弃了。
那么请看这篇文章吧。
浙公网安备 33010602011771号