问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Windows 11自动开机与带确认自动关机设置指南

创作时间:
作者:
@小白创作中心

Windows 11自动开机与带确认自动关机设置指南

引用
CSDN
1.
https://m.blog.csdn.net/weixin_60302467/article/details/145317343

在办公室或家中使用电脑时,有时需要让电脑在特定时间自动开机或关机。例如,你可能需要远程操控电脑,但又不想让电脑一直开机。本文将详细介绍如何在Windows 11系统下,通过BIOS设置自动开机,并通过任务计划程序实现带确认的自动关机功能。

自动开机设置

首先需要通过BIOS来设置自动开机。这需要你了解如何进入BIOS高级设置。通常在电脑启动时,会显示一个提示信息,告诉你按哪个键可以进入BIOS设置(如F2、Delete等)。

第一步:关闭快速启动

  1. 打开控制面板,选择“硬件和声音”。
  2. 点击“电源选项”。
  3. 在左侧菜单中选择“选择电源按钮的功能”。
  4. 点击“更改当前不可用的设置”。
  5. 关闭“启用快速启动”选项。如果不关闭,电脑可能无法完成自启动开机。

第二步:BIOS设置

  1. 重启电脑并进入BIOS设置界面。
  2. 对于华硕主板,进入BIOS后点击右下角的“高级模式”或按F7键。
  3. 在“高级”设置中找到“高级电源设置”。
  4. 如果有“ERP”选项,将其设置为关闭。
  5. 找到“RTC唤醒”选项并开启。设置唤醒日期(天)为0表示每天唤醒,设置唤醒时间为具体时间(如9:00)。
  6. 按F10保存设置并退出BIOS。

自动关机设置

为了实现带确认的自动关机功能,我们需要创建一个PowerShell脚本并通过任务计划程序来执行。

第一步:创建PowerShell脚本

  1. 在桌面上创建一个新的文本文件。
  2. 将以下代码复制到文本文件中:
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

# 定义关机时间(180秒,即3分钟)
$shutdownTime = 180

# 启动关机任务
Start-Process shutdown -ArgumentList "/s", "/f", "/t", $shutdownTime -NoNewWindow

# 开始计时
$startTime = Get-Date

# 取消关机任务的函数
function CancelShutdown {
    # 取消关机任务
    Start-Process shutdown -ArgumentList "/a" -NoNewWindow -Wait
    
    # 关闭弹窗
    $form.Close()
    $timer.Stop()
}

# 创建弹窗
$form = New-Object System.Windows.Forms.Form
$form.Text = "关机倒计时"
$form.Size = New-Object System.Drawing.Size(300, 150)
$form.StartPosition = "CenterScreen"
$form.TopMost = $true  # 确保弹窗在最顶层

$label = New-Object System.Windows.Forms.Label
$label.Text = "系统将在 $shutdownTime 秒后关机。"
$label.AutoSize = $true
$label.Location = New-Object System.Drawing.Point(50, 30)
$form.Controls.Add($label)

# 添加“取消关机”按钮
$button = New-Object System.Windows.Forms.Button
$button.Text = "取消关机"
$button.Location = New-Object System.Drawing.Point(100, 70)
$button.Add_Click({
    CancelShutdown
})
$form.Controls.Add($button)

# 创建一个后台线程,用于更新标签内容
$timer = New-Object System.Windows.Forms.Timer
$timer.Interval = 1000  # 每秒更新一次
$timer.Add_Tick({
    # 更新弹窗中的剩余时间
    $remainingTime = [math]::Round($shutdownTime - ((Get-Date) - $startTime).TotalSeconds)
    $label.Text = "系统将在 $remainingTime 秒后关机。"
    
    # 如果倒计时结束,自动关闭
    if ($remainingTime -le 0) {
        $form.Close()
        $timer.Stop()
    }
})

# 启动计时器
$timer.Start()

# 显示弹窗并进入消息循环
[System.Windows.Forms.Application]::Run($form)
  1. 将文本文件另存为cancel_shutdown.ps1,并确保使用ANSI编码保存。

第二步:创建任务计划

  1. 右键点击“此电脑”,选择“管理”。
  2. 在左侧菜单中选择“任务计划程序”。
  3. 在右侧操作栏中选择“创建基本任务”。
  4. 输入任务名称(如“自动关机”)。
  5. 选择“每天”触发器,并设置具体时间(如18:00)。
  6. 在操作步骤中选择“启动程序”。
  7. 在“程序或脚本”中输入powershell.exe
  8. 在“添加参数”中输入:
    -ExecutionPolicy Bypass -File "C:\Users\Administrator\OneDrive\Desktop\cancel_shutdown.ps1"
    
    请根据实际情况修改脚本路径。

第三步:设置任务权限

  1. 返回任务计划程序库,找到刚刚创建的任务并双击打开。
  2. 在“常规”选项卡中勾选“使用最高权限运行”。
  3. 点击“确定”保存设置。

第四步:测试任务(可选)

  1. 打开管理员权限的PowerShell窗口。
  2. 运行命令Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  3. 输入ya确认。
  4. 运行你的PowerShell脚本路径,检查是否正常弹出取消关机窗口。

通过以上步骤,你就可以实现电脑的自动开机和带确认的自动关机功能了。这个设置非常适合需要远程操控电脑但又希望节省能源的用户。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号