附微软官方说明:
https://support.microsoft.com/zh-cn/topic/%E5%8D%B3%E4%BD%BF-au-%E9%80%89%E9%A1%B9%E8%A2%AB%E7%A6%81%E7%94%A8-windows-8-1-%E5%92%8C-windows-server-2012-r2-%E4%B8%AD%E6%8E%A5%E6%94%B6%E5%88%B0%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E9%80%9A%E7%9F%A5-18b4b73a-3910-9408-809c-7eaad0e1fbc7
补充一下:
重启电脑后生效!
"AUOptions"是Windows注册表中的一个键值,用于控制Windows更新的行为。其值对应的功能如下:
值为1:禁用Windows更新。
值为2:通知下载和自动安装更新。
值为3:自动下载并通知安装更新。
值为4:自动下载并安装更新。
值为5:允许本地管理员选择配置设置。
NoAutoUpdate 值为1 也是禁用更新,但是有些系统可能不具有兼容性
易语言源码:
.版本 2
.子程序 禁止Windows自动更新, 逻辑型
.局部变量 temp, 逻辑型
.局部变量 temp1, 逻辑型
' https://support.microsoft.com/zh-cn/topic/%E5%8D%B3%E4%BD%BF-au-%E9%80%89%E9%A1%B9%E8%A2%AB%E7%A6%81%E7%94%A8-windows-8-1-%E5%92%8C-windows-server-2012-r2-%E4%B8%AD%E6%8E%A5%E6%94%B6%E5%88%B0%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E9%80%9A%E7%9F%A5-18b4b73a-3910-9408-809c-7eaad0e1fbc7
temp = 写注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate”, 1)
temp1 = 写注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUOptions”, 1)
返回 (选择 (temp = 真, 选择 (temp1 = 真, 真, 假), 假))
.子程序 启用Windows自动更新, 逻辑型
.局部变量 temp1, 逻辑型
.局部变量 temp, 逻辑型
' https://support.microsoft.com/zh-cn/topic/%E5%8D%B3%E4%BD%BF-au-%E9%80%89%E9%A1%B9%E8%A2%AB%E7%A6%81%E7%94%A8-windows-8-1-%E5%92%8C-windows-server-2012-r2-%E4%B8%AD%E6%8E%A5%E6%94%B6%E5%88%B0%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E9%80%9A%E7%9F%A5-18b4b73a-3910-9408-809c-7eaad0e1fbc7
temp = 删除注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate”)
temp1 = 删除注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUOptions”)
返回 (选择 (temp = 真, 选择 (temp1 = 真, 真, 假), 假))
更新:
.版本 2
.子程序 禁用Windows自动更新, 逻辑型
.局部变量 temp, 逻辑型
.局部变量 temp1, 逻辑型
.局部变量 temp2, 逻辑型
.局部变量 temp3, 逻辑型
.局部变量 temp4, 逻辑型
.局部变量 注册表, 注册表操作
' https://support.microsoft.com/zh-cn/topic/%E5%8D%B3%E4%BD%BF-au-%E9%80%89%E9%A1%B9%E8%A2%AB%E7%A6%81%E7%94%A8-windows-8-1-%E5%92%8C-windows-server-2012-r2-%E4%B8%AD%E6%8E%A5%E6%94%B6%E5%88%B0%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E9%80%9A%E7%9F%A5-18b4b73a-3910-9408-809c-7eaad0e1fbc7
temp = 写注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate”, 1)
temp1 = 写注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUOptions”, 1)
.判断开始 (注册项是否存在 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauserv”))
temp2 = 写注册项 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauserv\Start”, 4) ' 设置 Windows Update 更新服务为禁用
temp3 = 运行 (“net stop wuauserv”, 假, #隐藏窗口)
temp4 = 注册表.项重命名 (“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv”, “wuauservbak”) ' 将Windows Update服务的注册表更名,使该服务不可用
.判断 (注册项是否存在 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauservbak”))
返回 (真)
.默认
.判断结束
返回 (位与 (1, 到整数 (temp), 到整数 (temp1), 到整数 (temp2), 到整数 (temp3), 到整数 (temp4)) = 1)
.子程序 启用Windows自动更新, 逻辑型
.局部变量 temp, 逻辑型
.局部变量 temp1, 逻辑型
.局部变量 temp2, 逻辑型
.局部变量 temp3, 逻辑型
.局部变量 temp4, 逻辑型
.局部变量 注册表, 注册表操作
' https://support.microsoft.com/zh-cn/topic/%E5%8D%B3%E4%BD%BF-au-%E9%80%89%E9%A1%B9%E8%A2%AB%E7%A6%81%E7%94%A8-windows-8-1-%E5%92%8C-windows-server-2012-r2-%E4%B8%AD%E6%8E%A5%E6%94%B6%E5%88%B0%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E9%80%9A%E7%9F%A5-18b4b73a-3910-9408-809c-7eaad0e1fbc7
temp = 删除注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate”)
temp1 = 删除注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUOptions”)
.判断开始 (注册项是否存在 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauservbak”))
temp2 = 注册表.项重命名 (“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauservbak”, “wuauserv”) ' 恢复Windows Update服务的注册表名
temp3 = 写注册项 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauserv\Start”, 3) ' 设置 Windows Update 更新服务为启用
temp4 = 运行 (“net start wuauserv”, 假, #隐藏窗口)
.默认
返回 (假)
.判断结束
返回 (位与 (1, 到整数 (temp), 到整数 (temp1), 到整数 (temp2), 到整数 (temp3), 到整数 (temp4)) = 1)
.版本 2
.子程序 禁用Windows自动更新, 逻辑型
.局部变量 temp, 逻辑型
.局部变量 temp1, 逻辑型
.局部变量 temp2, 逻辑型
.局部变量 temp3, 逻辑型
.局部变量 temp4, 逻辑型
.局部变量 注册表, 注册表操作
' https://support.microsoft.com/zh-cn/topic/%E5%8D%B3%E4%BD%BF-au-%E9%80%89%E9%A1%B9%E8%A2%AB%E7%A6%81%E7%94%A8-windows-8-1-%E5%92%8C-windows-server-2012-r2-%E4%B8%AD%E6%8E%A5%E6%94%B6%E5%88%B0%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E9%80%9A%E7%9F%A5-18b4b73a-3910-9408-809c-7eaad0e1fbc7
temp = 写注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate”, 1)
temp1 = 写注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUOptions”, 1)
.判断开始 (注册项是否存在 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauserv\Start”))
temp2 = 写注册项 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauserv\Start”, 4) ' 设置 Windows Update 更新服务为禁用
temp3 = 运行 (“net stop wuauserv”, 假, #隐藏窗口)
.如果真 (注册项是否存在 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauservbak\Start”))
删除注册项 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauserv”)
返回 (位与 (1, 到整数 (temp), 到整数 (temp1), 到整数 (temp2), 到整数 (temp3)) = 1)
.如果真结束
temp4 = 注册表.项重命名 (“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv”, “wuauservbak”) ' 将Windows Update服务的注册表更名,使该服务不可用
.判断 (注册项是否存在 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauservbak\Start”))
返回 (真)
.默认
.判断结束
返回 (位与 (1, 到整数 (temp), 到整数 (temp1), 到整数 (temp2), 到整数 (temp3), 到整数 (temp4)) = 1)
.子程序 启用Windows自动更新, 逻辑型
.局部变量 temp, 逻辑型
.局部变量 temp1, 逻辑型
.局部变量 temp2, 逻辑型
.局部变量 temp3, 逻辑型
.局部变量 temp4, 逻辑型
.局部变量 注册表, 注册表操作
' https://support.microsoft.com/zh-cn/topic/%E5%8D%B3%E4%BD%BF-au-%E9%80%89%E9%A1%B9%E8%A2%AB%E7%A6%81%E7%94%A8-windows-8-1-%E5%92%8C-windows-server-2012-r2-%E4%B8%AD%E6%8E%A5%E6%94%B6%E5%88%B0%E4%B8%8D%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E9%80%9A%E7%9F%A5-18b4b73a-3910-9408-809c-7eaad0e1fbc7
temp = 删除注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate”)
temp1 = 删除注册项 (#本地机器, “SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUOptions”)
.判断开始 (注册项是否存在 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauservbak\Start”))
temp2 = 注册表.项重命名 (“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauservbak”, “wuauserv”) ' 恢复Windows Update服务的注册表名
temp3 = 写注册项 (#本地机器, “SYSTEM\CurrentControlSet\Services\wuauserv\Start”, 3) ' 设置 Windows Update 更新服务为启用
temp4 = 运行 (“net start wuauserv”, 假, #隐藏窗口)
.默认
返回 (假)
.判断结束
返回 (位与 (1, 到整数 (temp), 到整数 (temp1), 到整数 (temp2), 到整数 (temp3), 到整数 (temp4)) = 1)
禁止自动更新.bat
@fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~f0","%*",,"runas",1)(window.close) && exit /b
@echo off
schtasks /change /tn "\Microsoft\Windows\WindowsUpdate\Scheduled Start" /disable
sc stop wuauserv
sc config wuauserv start= disabled
sc stop UsoSvc
sc config UsoSvc start= disabled
恢复自动更新.bat
@fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~f0","%*",,"runas",1)(window.close) && exit /b
@echo off
schtasks /change /tn "\Microsoft\Windows\WindowsUpdate\Scheduled Start" /enable
sc config wuauserv start= auto
sc start wuauserv
sc config UsoSvc start= delayed-auto
sc start UsoSvc