如何在注销时将 windows 任务安排为 运行

How to schedule a windows task to be run at logoff

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

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

我看不到“注销时”或“关机时”的可能性。

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

谢谢
多米尼克

据我研究,不支持的原因很简单。 无法保证任务调度程序服务在注销事件被触发时为 运行,如果是,则无法保证您启动的脚本不会因关闭而立即终止您的计算机。

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

我宁愿推荐使用每个策略定义的 shutdown/logoff 脚本。这是此类事情的官方方法,并且保证在 shutdown/logoff 之前完全执行。 如果你有一个支持 GPO 的 Windows 版本,你可以启动 gpedit.msc 并转到计算机 Configuration\Windows Settings\Scripts 进行关机和用户 Configuration\Windows Settings\Scripts用于注销脚本并创建你的。可以找到解释这些脚本的详细文章 here

如果您的 OS 版本不支持 GPO,您应该能够重新创建必要的注册表项。我自己没有尝试过,但 several articles 似乎表明你需要的是:

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[=10=]]
"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[=10=][=10=]]
"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"

同时我了解到Windows10没有这个问题:有启动计划任务的可能性:

  • 与用户会话断开连接
  • 工作站锁定