如何安排 Windows 任务在注销时运行

问题描述 投票:0回答:2

早上好,
我正在使用 Windows 7 计算机。
每次我从系统注销时,我希望我的计算机能够警告我一些我可能不会忘记的事情。

为了做到这一点,我想到了“Windows 任务计划程序”。
但是,在可能的触发器列表(“开始任务”组合框)中,我只看到以下可能性:

  • 按计划(固定日期/时间)
  • 登录时(登录电脑时)
  • 启动时(启动电脑时)
  • 空闲时(我想当电脑没有被其他任务占用时)

我没有看到“注销时”或“关闭时”的可能性。

有人知道是否可以添加这种可能性(也许通过处理注册表)?

谢谢
多米尼克

windows events windows-7 scheduled-tasks logoff
2个回答
10
投票

据我研究,不支持这一点有一个简单的原因。 不能保证任务计划程序服务在注销事件被触发时正在运行,并且如果是的话,也不能保证您用它启动的脚本不会因计算机关闭而立即终止。

您可以通过添加“事件”触发器并使用关闭的事件 ID 之一来绕过此问题,但由于上述原因,这可能不是最好的主意。

我宁愿建议使用每个策略定义的关闭/注销脚本。这是处理此类事情的官方方法,并且保证在关闭/注销之前完全执行。 如果您拥有支持 GPO 的 Windows 版本,则只需启动

gpedit.msc
并转到“计算机配置\Windows 设置\用于关机的脚本”和“用户配置\Windows 设置\用于注销脚本的脚本”并创建您的脚本。可以在here找到解释这些脚本的详细文章。

如果您的操作系统版本不支持 GPO,您应该能够重新创建必要的注册表项。我自己没有尝试过,但几篇文章似乎表明你需要的是:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group
Policy\State\Machine\Scripts]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group
Policy\State\Machine\Scripts\Shutdown]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group
Policy\State\Machine\Scripts\Shutdown\0]
"GPO-ID"="LocalGPO"
"SOM-ID"="Local"
"FileSysPath"="C:\\WINDOWS\\System32\\GroupPolicy\\Machine"
"DisplayName"="Local Group Policy"
"GPOName"="Local Group Policy"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group
Policy\State\Machine\Scripts\Shutdown\0\0]
"Script"="C:\\bin\\shutdownscript.cmd"
"Parameters"=""
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

放入 .reg 文件中。您需要更改的唯一行是:

"Script"="C:\\bin\\shutdownscript.cmd"


0
投票

同时我了解到Windows 10没有这个问题:
可以启动计划任务:

  • 与用户会话断开连接时
  • 工作站锁定
© www.soinside.com 2019 - 2024. All rights reserved.