可通过任务计划程序创建定时关机任务,包括直接调用shutdown命令、批处理文件封装、PowerShell脚本校验三种方法,分别适用于基础关机、可扩展维护及带负载与会话检查的安全关机场景。

如果希望Windows服务器在特定时间自动关机,且无需人工干预,则可通过内置的“任务计划程序”创建定时触发的关机任务。以下是实现该功能的具体步骤:
一、使用任务计划程序创建关机任务
该方法通过系统原生的任务计划程序调用shutdown命令,在指定时间执行强制关机操作,不依赖第三方工具,稳定性高且权限可控。
1、按下 Win + R 键,输入 taskschd.msc 并回车,打开任务计划程序。
2、在右侧面板中点击 创建基本任务,输入名称如“每日23点自动关机”,点击下一步。
3、选择触发器为 每天,设置起始时间为期望的关机时刻(例如23:00),点击下一步。
4、选择操作为 启动程序,点击下一步。
5、在“程序或脚本”栏中输入 shutdown,在“添加参数”栏中输入 /s /f /t 0,点击下一步。
6、勾选 当完成此向导时,打开属性对话框,点击完成。
7、在属性窗口中切换到 常规 选项卡,勾选 使用最高权限运行 和 不管用户是否登录都要运行,点击确定。
二、通过批处理文件配合计划任务执行
该方法将关机命令封装为.bat文件,再由计划任务调用,便于后期修改参数或扩展日志记录功能。
1、新建文本文档,输入内容:shutdown /s /f /t 0,另存为 auto_shutdown.bat,编码选择ANSI或UTF-8无BOM。
2、右键该批处理文件,选择 属性 → 安全 → 编辑,确保 SYSTEM 和 Administrators 组具有读取和执行权限。
3、在任务计划程序中创建新任务,操作设置为启动程序,程序路径指向该.bat文件的完整路径(例如 C:\Scripts\auto_shutdown.bat)。
4、在任务属性的 条件 选项卡中,取消勾选 只有在计算机使用交流电源时才启动此任务(若为物理服务器且需断电保障)。
三、使用PowerShell脚本实现带校验的关机流程
该方法在执行关机前检查系统负载与活动会话,避免在关键进程运行或远程用户登录时意外中断服务。
1、新建文本文档,输入以下内容:
if ((Get-WmiObject -Class Win32_ComputerSystem).NumberOfLogicalProcessors -lt 100) { if ((query session | Select-String "Active") -eq $null) { shutdown /s /f /t 0 } }
2、将文件保存为 safe_shutdown.ps1,注意保存路径不含中文或空格。
3、以管理员身份运行PowerShell,执行:Set-ExecutionPolicy RemoteSigned -Scope LocalMachine,允许本地脚本运行。
4、在任务计划程序中新建任务,操作设置为启动程序,程序填写 powershell.exe,参数填写 -ExecutionPolicy Bypass -File "C:\Scripts\safe_shutdown.ps1"。
5、在任务属性的 设置 选项卡中,勾选 如果任务失败,重新运行任务,重试间隔设为10分钟,最多重试3次。










