我在网上看过有关Windows中的“预定任务”存储在%SystemRoot%\Tasks
中的参考资料,我认为这通常等同于C:\Windows\Tasks
。
但是,我发现虽然我的Windows 7系统上存在该文件夹,但计划任务不会使用它。
我的系统似乎使用C:\Windows\System32\Tasks
。
我研究过环境变量,似乎没有任何与Scheduled Tasks
相关的内容。
如何查找用于计划任务的文件夹?
答案 0 :(得分:39)
任务存储在3个位置:1个文件系统位置和2个注册表位置。
C:\Windows\System32\Tasks
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Schedule\Taskcache\Tasks
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Schedule\Taskcache\Tree
因此,您需要在这3个位置删除损坏的任务。
答案 1 :(得分:8)
对于Windows 7及更高版本,计划任务不是由cmd.exe
运行,而是由MMC
(Microsoft管理控制台)运行。 %SystemRoot%\Tasks
应该适用于任何其他Windows版本。
答案 2 :(得分:6)
我想扩展@Jan回答:
似乎Task Scheduler 1.0 API
使用C:\Windows\Tasks
文件夹创建和枚举任务(this example),而Task Scheduler 2.0 API
使用C:\Windows\System32\Tasks
创建并枚举任务(this example)。
似乎Windows操作系统schtasks
和GUI utilite taskschd.msc
使用Task Scheduler 2.0 API
。
P.S。
我发现,如果C:\Windows\Tasks
和中的任务未设置AccountInformation
,则任务将无法在Windows控制台中显示 gui调度员。如果你设置 AccountInformation
(甚至""对于SYSTEM帐户)和设置标志TASK_FLAG_RUN_ONLY_IF_LOGGED_ON
- 任务将显示在所有标准应用程序中。
答案 3 :(得分:1)
MMC存在多个问题,但是在我的业务中几乎每台PC上,ask scheduler API都不会打开并且已经被破坏了。因此,您无法编辑,删除或以其他方式修改在API决定不再运行之前开发的任务。我们找到解决该问题的唯一方法是完全擦除C:\ Users \区域下的人员配置文件,并强制系统在用户重新登录后重新创建登录。这似乎解决了API问题和它再次起作用,但是由于开发的任务特定于用户而不是Windows 7中的机器,因此任务通常对该用户不再可见。另一个奇怪的事情是,有时虽然没有任何可以分析的频率,即使API已损坏且无法打开,任务仍会运行。这个问题的原因显然是未知的,但在各种网站上描述了许多“修复”,但删除和重新添加的用户配置文件似乎每次都至少工作一段时间。任务现在在WIN 7中保存为XML,因此如果您在system32 / tasks文件夹中找到它们,则可以删除它们,或将它们复制到新驱动器,然后将它们导回到任务计划程序中。我们使用Splinterware的系统调度程序软件,因为我们多次遇到相同的损坏问题,即使修复程序似乎不是永久性的。
答案 4 :(得分:1)
看起来TaskCache注册表数据在......
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache
...在我的Windows 10 PC上(即在 TaskCache 之前添加计划,并且在任务 C 之前添加 C C> 强>)。
答案 5 :(得分:0)
在较新版本的Windows(Windows 10和Windows Server 2016)上,您创建的任务位于C:\Windows\Tasks
。他们将使用扩展名.job
例如,如果您创建任务“DoWork”,它将在
中创建任务C:\Windows\Tasks\DoWork.job