You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10下无需任务计划程序/BIOS,通过脚本实现自动开机并登录指定账户

在Windows 10用脚本实现自动开机+指定账户登录(无需任务计划界面/BIOS/WOL)

嘿,刚好能解决你的问题!不用任务计划图形界面、BIOS,也跳过WakeOnLAN的话,咱们分两步走就行——用脚本后台创建唤醒任务实现自动开机,再修改注册表搞定自动登录,全程不用碰图形界面,给你详细拆解:

一、自动开机:用脚本创建唤醒任务

你之前试Python的Task Scheduler模块没成功,大概率是没配好唤醒触发的参数。其实不管用Batch还是Python,核心都是调用系统的schtasks命令来创建带唤醒功能的任务,完全绕开任务计划的图形界面。

1. Batch脚本实现

新建一个.bat文件,把下面代码粘进去,右键以管理员身份运行就行:

@echo off
:: 创建每天早上7点自动唤醒开机的任务(时间可以自己改)
schtasks /create /tn "AutoWakeUp" /tr "cmd.exe /c exit" /sc daily /st 07:00 /ru "SYSTEM" /f /rl highest /wakeonlan

给你唠唠参数:

  • /tn:给任务起个名字,这里叫AutoWakeUp
  • /tr:触发后执行的命令,这里填exit就行,毕竟咱们只需要唤醒电脑,不用跑别的程序
  • /sc:触发频率,daily是每天,你也可以改成once(一次)或者其他周期
  • /st:具体触发时间,比如改成08:30就是早上8点半
  • /ru SYSTEM:用系统权限运行,确保能唤醒电脑
  • /f:如果已经有同名任务,直接覆盖不用提示
  • /rl highest:拿最高权限,避免权限不够创建失败
  • /wakeonlan:开启唤醒功能(划重点:你的主板得支持ACPI唤醒,而且Windows电源选项里要开「允许此设备唤醒计算机」哦)

2. Python脚本实现

要是你偏好Python,用subprocess调用系统命令就行,代码如下,记得以管理员身份运行

import subprocess

# 构建创建唤醒任务的命令
task_command = [
    "schtasks", "/create", "/tn", "AutoWakeUp",
    "/tr", "cmd.exe /c exit", "/sc", "daily", "/st", "07:00",
    "/ru", "SYSTEM", "/f", "/rl", "highest", "/wakeonlan"
]

try:
    # 执行命令
    result = subprocess.run(task_command, check=True, capture_output=True, text=True)
    print("自动唤醒任务创建成功啦!", result.stdout)
except subprocess.CalledProcessError as e:
    print("创建失败了,看看错误:", e.stderr)

二、自动登录指定账户:修改注册表实现

自动登录就简单了,改一下Windows的Winlogon注册表项就行,脚本直接搞定。

1. Batch脚本实现

新建.bat文件,把YourUsernameYourPassword换成你的账户名和密码,管理员身份运行:

@echo off
:: 开启自动登录开关
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 /f
:: 设置要自动登录的用户名
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "YourUsername" /f
:: 设置账户密码
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "YourPassword" /f
:: 要是你是域账户,把下面这行注释去掉,改成你的域名
:: reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d "YourDomain" /f

2. Python脚本实现

用Python的winreg模块直接改注册表,同样要管理员权限:

import winreg

# 替换成你的账户名和密码
target_username = "YourUsername"
target_password = "YourPassword"
winlogon_reg_path = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

try:
    # 打开Winlogon注册表项(需要写入权限)
    reg_key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, winlogon_reg_path, 0, winreg.KEY_WRITE)
    
    # 开启自动登录
    winreg.SetValueEx(reg_key, "AutoAdminLogon", 0, winreg.REG_SZ, "1")
    # 设置默认登录用户名
    winreg.SetValueEx(reg_key, "DefaultUserName", 0, winreg.REG_SZ, target_username)
    # 设置登录密码
    winreg.SetValueEx(reg_key, "DefaultPassword", 0, winreg.REG_SZ, target_password)
    
    winreg.CloseKey(reg_key)
    print("自动登录设置成功!下次开机就自动进你的账户啦")
except Exception as e:
    print(f"设置失败了:{e}")

几个重要提醒

  1. 硬件支持:自动开机需要主板支持定时/ACPI唤醒,而且Windows电源选项里要开启对应设备的唤醒权限(可以去设备管理器里找网卡或电源相关选项设置)。
  2. 安全问题:把密码明文写在脚本里有风险,要是在意的话,Python可以用getpass模块让你运行时手动输入密码,Batch也可以改成弹窗输入的方式,不过上面的写法是最直接的。
  3. 测试任务:创建完唤醒任务后,可以用schtasks /run /tn "AutoWakeUp"命令测试下,电脑处于睡眠/休眠状态时应该能唤醒,关机状态下只要主板支持也能开机。

内容的提问来源于stack exchange,提问作者Karol Szczepański

火山引擎 最新活动