TA的每日心情 | 开心 23 小时前 |
---|
签到天数: 846 天 [LV.10]以坛为家III
至尊会员
   
- 积分
- 195295
|
本帖最后由 萌新新 于 2025-2-24 18:38 编辑
第二个是用.bat禁用的,可以用文本编辑器打开看看
以下是gpt对disable updates.bat的解释,压缩包里那个PsExec.exe是微软自己的工具
https://learn.microsoft.com/zh-cn/sysinternals/downloads/psexec
这个 .bat 文件的目的是完全禁用 Windows 更新功能,主要通过停止和禁用与更新相关的服务、删除已下载的更新文件、禁用相关的任务计划程序等手段来实现。具体步骤如下:
1. 提升权限
- if not "%1"=="admin" (powershell start -verb runas '%0' admin & exit /b)
- if not "%2"=="system" (powershell . '%~dp0\PsExec.exe' /accepteula -i -s -d '%0' admin system & exit /b)
复制代码
这两行代码确保脚本以管理员权限和系统权限运行。
第一个 if 判断检查是否已用管理员权限运行脚本,如果没有,则以管理员权限重新启动脚本。
第二个 if 判断检查是否已用系统权限运行,如果没有,则使用 PsExec 工具以系统权限重新启动脚本。
2. 停止并禁用 Windows 更新相关服务
- for %%i in (wuauserv, UsoSvc, uhssvc, WaaSMedicSvc) do (
- net stop %%i
- sc config %%i start= disabled
- sc failure %%i reset= 0 actions= ""
- )
复制代码
这部分代码停止并禁用以下服务:
wuauserv:Windows 更新服务。
UsoSvc:更新服务中的用户模式驱动。
uhssvc:用于服务更新的一个组件。
WaaSMedicSvc:Windows 更新修复服务。
使用 net stop 停止这些服务,并且通过 sc config 将这些服务的启动类型设置为“禁用”。
3. 重命名 Windows 更新相关的 DLL 文件
- for %%i in (WaaSMedicSvc, wuaueng) do (
- takeown /f C:\Windows\System32\%%i.dll && icacls C:\Windows\System32\%%i.dll /grant *S-1-1-0:F
- rename C:\Windows\System32\%%i.dll %%i_BAK.dll
- icacls C:\Windows\System32\%%i_BAK.dll /setowner "NT SERVICE\TrustedInstaller" && icacls C:\Windows\System32\%%i_BAK.dll /remove *S-1-1-0
- )
复制代码
这部分代码通过命令 takeown 获取对 DLL 文件的所有权,接着通过 icacls 命令为当前用户授予文件完全访问权限。
然后,将与更新相关的 DLL 文件(如 WaaSMedicSvc.dll 和 wuaueng.dll)重命名为 *.BAK.dll,有效地禁用它们的使用。
最后,将文件的所有权恢复为 NT SERVICE\TrustedInstaller,并移除对当前用户的访问权限。
4. 更新注册表以禁用自动更新
- reg add "HKLM\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v Start /t REG_DWORD /d 4 /f
- reg add "HKLM\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" /v FailureActions /t REG_BINARY /d 000000000000000000000000030000001400000000000000c0d4010000000000e09304000000000000000000 /f
- reg add "HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /t REG_DWORD /d 1 /f
复制代码
这部分代码修改注册表,禁用 WaaSMedicSvc 服务的启动和自动修复功能。
通过设置注册表键值 NoAutoUpdate 为 1,禁用自动更新功能。
5. 删除已下载的更新文件
- erase /f /s /q c:\windows\softwaredistribution\*.* && rmdir /s /q c:\windows\softwaredistribution
复制代码
这行代码删除了 Windows 更新下载目录中的所有文件,并删除该目录本身。
6. 禁用与更新相关的计划任务
- powershell -command "Get-ScheduledTask -TaskPath '\Microsoft\Windows\InstallService\*' | Disable-ScheduledTask; Get-ScheduledTask -TaskPath '\Microsoft\Windows\UpdateOrchestrator\*' | Disable-ScheduledTask; Get-ScheduledTask -TaskPath '\Microsoft\Windows\UpdateAssistant\*' | Disable-ScheduledTask; Get-ScheduledTask -TaskPath '\Microsoft\Windows\WaaSMedic\*' | Disable-ScheduledTask; Get-ScheduledTask -TaskPath '\Microsoft\Windows\WindowsUpdate\*' | Disable-ScheduledTask; Get-ScheduledTask -TaskPath '\Microsoft\WindowsUpdate\*' | Disable-ScheduledTask"
复制代码
使用 PowerShell 禁用 Windows 中与更新相关的所有计划任务。这样可以防止 Windows 自动触发更新过程。
7. 完成提示
输出 "Finished",提示脚本执行完成,并使用 pause 暂停,等待用户按键以关闭窗口。
总结
这个批处理脚本主要是通过停止服务、删除更新文件、修改注册表设置和禁用任务来彻底禁用 Windows 更新功能。请注意,这种做法可能会对系统安全性产生影响,因为更新通常包含安全补丁。
|
评分
-
查看全部评分
|