关闭Windows 11自动更新的方法‌

关闭Windows 11自动更新的方法‌

  1. 通过‌任务计划程序关闭

    • 右键单击“此电脑”,点击“管理”。
    • 导航到“任务计划程序”>“任务计划程序库”>“Microsoft”>“Windows”>“WindowsUpdate”。
    • 右键单击“Scheduled Start”任务,然后点击“禁用”即可停止Windows 11更新。
  2. 通过‌组策略编辑器关闭

    • 按Win+R输入gpedit.msc并按Enter键打开本地组策略编辑器。
    • 转到路径:本地计算机策略>计算机配置>管理模板>Windows组件>Windows更新>适用于企业的Windows更新。
    • 双击“选择目标功能更新版本”,配置为“已启用”,填入想停留的Windows版本,然后应用确定。重启计算机即可彻底停止更新。
  3. 通过‌服务管理器关闭

    • 按Win+R输入services.msc并按Enter键打开服务页面。
    • 在列表中找到“Windows Update”选项,双击进入详细属性页面,将启动类型配置为“禁用”,然后单击“应用”和“确定”即可关闭Windows自动更新。
import subprocess
import winreg
import platform
import ctypes  # 导入 ctypes 模块


def run_command(command):
    try:
        result = subprocess.run(
            command,
            check=True,
            shell=True,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True,
        )
        print("     3.命令成功关闭Windows 11自动更新:‌通过‌任务计划程序关闭")
        print(result.stdout)
    except subprocess.CalledProcessError as e:
        print(f"命令执行出错: {e}")
        print(f"错误详情: {e.stderr}   -------请用管理员权限运行。---------      ")


def get_current_windows_version():
    # 获取当前Windows版本
    return platform.version()


def set_registry_value(key_path, value_name, value, reg_type):
    try:
        # 打开或创建注册表项
        key = winreg.OpenKey(
            winreg.HKEY_LOCAL_MACHINE, key_path, 0, winreg.KEY_SET_VALUE
        )
    except FileNotFoundError:
        # 如果注册表项不存在,则创建它
        key = winreg.CreateKey(winreg.HKEY_LOCAL_MACHINE, key_path)

    # 设置注册表值
    winreg.SetValueEx(key, value_name, 0, reg_type, value)
    winreg.CloseKey(key)
    print(f"设置 {key_path}\\{value_name} 为 {value}")


def disable_windows_updates(current_version):
    # 禁用Windows更新服务
    set_registry_value(
        r"SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU",
        "NoAutoUpdate",
        1,
        winreg.REG_DWORD,
    )

    # 配置目标功能更新版本
    set_registry_value(
        r"SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate",
        "TargetReleaseVersion",
        1,
        winreg.REG_DWORD,
    )
    set_registry_value(
        r"SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate",
        "TargetReleaseVersionInfo",
        current_version,  # 使用当前版本号
        winreg.REG_SZ,
    )

    print("     2. Windows 11自动更新已成功禁用:‌通过‌组策略编辑器关闭")
    print("请重启计算机以应用更改。")


def disable_scheduled_start_task():
    # PowerShell 命令来禁用 "Scheduled Start" 任务
    powershell_command = (
        'Get-ScheduledTask -TaskName "Scheduled Start" -TaskPath "\\Microsoft\\Windows\\WindowsUpdate\\" | '
        "Disable-ScheduledTask"
    )

    # 运行 PowerShell 命令
    run_command(["powershell", "-Command", powershell_command])


def enable_scheduled_start_task():
    # PowerShell 命令来启用 "Scheduled Start" 任务
    powershell_command = (
        'Get-ScheduledTask -TaskName "Scheduled Start" -TaskPath "\\Microsoft\\Windows\\WindowsUpdate\\" | '
        "Enable-ScheduledTask"
    )

    # 运行 PowerShell 命令
    run_command(["powershell", "-Command", powershell_command])


def disable_windows_update_service():
    # 命令行指令用于禁用 Windows Update 服务
    command = "sc config wuauserv start= disabled"
    run_command(command)


def enable_windows_update_service():
    # 命令行指令用于启用 Windows Update 服务
    command = "sc config wuauserv start= auto"
    run_command(command)


if __name__ == "__main__":
    # 检查是否以管理员权限运行
    if not ctypes.windll.shell32.IsUserAnAdmin():
        print("请以管理员权限运行此脚本。")
        input("按 Enter 键退出...")
        exit()

    # 获取当前Windows版本
    current_version = get_current_windows_version()

    # 输出当前Windows版本
    print(
        f"     1. 通过‌服务管理器关闭Windows 11自动更新: 当前Windows版本: {current_version}"
    )

    # 禁用Windows更新
    disable_windows_updates(current_version)
    disable_scheduled_start_task()
    disable_windows_update_service()

    # 提示用户重启计算机
    print("所有操作已完成。请重启计算机以应用更改。")
    print("按 Enter 键退出...")
    input()

脚本说明

  1. 检查管理员权限

    • 脚本首先检查是否以管理员权限运行。如果不是,会提示用户以管理员权限重新运行脚本并退出。
  2. 获取当前Windows版本

    • 脚本获取并显示当前的Windows版本。
  3. 禁用Windows更新

    • 通过修改注册表禁用自动更新。
    • 通过PowerShell命令禁用“Scheduled Start”任务。
    • 通过命令行禁用Windows Update服务。
  4. 提示用户重启计算机

    • 脚本完成后,提示用户重启计算机以应用更改。
    • 最后,脚本等待用户按下Enter键后退出。

使用步骤

  1. 保存脚本

    • 将上述代码保存为一个Python文件,例如 disable_windows_update.py
  2. 以管理员权限运行脚本

    • 右键点击命令提示符或PowerShell图标,选择“以管理员身份运行”。
    • 导航到脚本所在的目录。
    • 运行脚本:
       sh 

      深色版本

      python disable_windows_update.py
  3. 完成操作

    • 脚本会依次执行禁用Windows更新的各项操作。
    • 完成后,脚本会提示用户重启计算机以应用更改。
    • 按下Enter键退出脚本。

注意事项

  • 备份重要数据:虽然这个方法可以禁用Windows更新,但请确保定期备份你的数据,以防任何意外情况发生。
  • 安全性:Windows更新通常包含重要的安全补丁。禁用更新可能会使你的系统面临安全风险。如果你决定禁用更新,请确保采取其他措施来保护你的系统。
  • 恢复更新:如果你将来需要重新启用更新,可以取消注释脚本中的 enable_scheduled_start_task() 和 enable_windows_update_service() 函数调用,并重新运行脚本。

希望这份文档能帮助你顺利禁用Windows 11的自动更新。如果有任何问题或需要进一步的帮助,请随时联系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值