You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中订阅重启/关机事件以执行清理操作

实现关机/重启时自动执行PowerShell清理操作

你用Register-ObjectEvent的方法之所以失效,是因为该命令注册的事件依赖当前PowerShell会话存活,而系统关机/重启时会直接终止所有用户会话,事件动作根本来不及执行。下面是两种可靠的实现方案:

方案一:使用本地组策略关机脚本

适合域环境或单台机器的批量配置:

  1. 按下Win+R输入gpedit.msc打开本地组策略编辑器
  2. 导航路径:计算机配置 > Windows 设置 > 脚本(关机/开机)
  3. 双击「关机」选项,点击「添加」,选择你的清理脚本文件
  4. 脚本内容示例(直接编写删除/重命名逻辑,用绝对路径):
# 清理操作:删除指定文件
Remove-Item -Path "C:\Your\Path\FileToDelete1.txt" -Force
Remove-Item -Path "C:\Your\Path\FileToDelete2.txt" -Force

# 重命名指定文件
Rename-Item -Path "C:\Your\Path\OldFileName1.txt" -NewName "NewFileName1.txt" -Force
Rename-Item -Path "C:\Your\Path\OldFileName2.txt" -NewName "NewFileName2.txt" -Force

方案二:使用任务计划程序触发

适合单台机器的灵活配置:

  1. 打开「任务计划程序」,点击「创建基本任务」
  2. 命名任务(比如「关机清理脚本」),点击下一步
  3. 触发器选择「在事件时」,日志选「系统」,源选「User32」,事件ID填1074(对应系统关机/重启事件),点击下一步
  4. 操作选择「启动程序」,程序/脚本填powershell.exe,添加参数填写:
-ExecutionPolicy Bypass -File "C:\Your\Full\Path\To\CleanupScript.ps1"
  1. 勾选「当单击完成时,打开此任务属性的对话框」,点击完成后:
    • 切换到「设置」标签,勾选「不管用户是否登录都要运行」
    • 勾选「以最高权限运行」(避免权限不足导致操作失败)
    • 确认「配置为」选项匹配你的Windows版本

注意事项

  • 所有文件路径必须使用绝对路径,不能用相对路径
  • 如果系统执行策略限制脚本运行,必须在参数中加入-ExecutionPolicy Bypass
  • 测试时可手动触发任务,或用shutdown /r /t 10执行重启测试

内容的提问来源于stack exchange,提问作者wads

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:05:59