稍后使用任务计划程序运行进程

您可能认为Task Scheduler只是安排应用程序在特定时间运行的一种方式,但它远不止于此,它已经成为Windows不可或缺的一部分。

在过去,Windows总是有大量的服务在后台运行,只是为了做一些事情,比如触发系统清理事件或必须在特定时间运行的维护。Windows的现代版本尽可能地放弃了这种做法,而只是将事件添加到任务计划程序中,以便它们可以执行相同的操作,但不需要运行的进程,也不会一直浪费内存。

当然,这并不意味着Windows没有服务在运行,因为很多东西需要在后台一直运行,因为它们需要持续的活动,并且需要与其他进程通信。但是,将系统任务迁移到Task Scheduler对PC用户来说是一件好事。

了解任务调度器界面

当您第一次打开Task Scheduler应用程序时,您将看到三个信息窗格:左侧窗格包含用于组织计划任务列表的树形文件夹列表,中间窗格显示任务本身,右侧的操作窗格使您可以快速访问常用菜单项。

不要被界面中的所有东西吓倒--这真的很简单,混乱的界面上没有那么多的选项,看起来好像是有的。

实际上可以使用工具栏上最右边的图标禁用右侧窗格,因为所有操作也都在“操作”菜单中可用。如果从列表中选择了任务,则菜单将更改为特定于任务的一组项目,如运行或结束,但当您第一次打开任务计划程序或未选择任务时,您将看到用于创建任务、显示正在运行的任务以及其他所有内容的选项。

我们将立即解释如何创建任务,但首先我们应该浏览列表中的一些选项,并解释它们的作用。

创建基本任务为您提供了用于创建计划任务的向导界面。 创建任务使用完整详细信息视图,您可以在其中使用所需的任何选项手动创建任务。 导入任务允许您导入以前导出的任务。对于将配置复制到辅助PC或在重新安装后重新添加任务非常有用。 显示所有正在运行的任务显示当前正在运行的所有任务的列表,以及您可以在哪个文件夹中找到该任务。 启用/禁用所有任务历史记录打开任务计划程序执行的所有操作的详细日志记录。 新建文件夹…。在左侧窗格中创建一个新文件夹,主要用于组织一系列计划任务,如果您需要这样做的话。 删除文件夹会删除您创建的文件夹,并意识到您最初并不需要该文件夹。 刷新和帮助应该不言而喻。

“显示所有正在运行的任务”选项会弹出一个非常简单的列表,显示当前正在运行的任务,尽管它似乎从未填充“已启动”或“运行持续时间”列。在任何情况下,查看是否正在运行都很方便。

启用/禁用所有任务历史记录选项非常有用,因为它启用历史记录选项卡并跟踪几乎所有发生的事情。如果您正在对涉及计划任务的问题进行故障排除,则应启用此选项以获得更多数据以供使用-只需确保之后再次禁用它,因为这是大量不必要的日志记录,如果您不需要它,可能会略微降低性能。

我们将很快详细介绍其余任务详细信息选项卡的详细信息,但值得仔细查看许多文件夹,以了解Windows或第三方软件随计划任务一起运行的内容类型。

例如,如果您向下进入Microsoft->Windows->Defrag文件夹,您将在列表中看到ScheduledDefrag任务。Actions选项卡显示幕后实际运行的内容,您可以查看其余选项设置为什么。

注意:我们不建议修改内置Microsoft服务的选项。就当它只是信息性的吧。

另一个有趣的示例是Microsoft->Windows->ApplicationData文件夹,其中包含CleanupTemporaryState任务。查看Actions选项卡会告诉我们实际的命令行,它使用rundll32.exe组件来运行Windows.Storage.ApplicationData.dll文件,并调用该DLL中的CleanupTemporaryState函数。

这是什么意思?您可以自行查找所有内容,但基本上所有.NET应用程序都提供了使用ApplicationData函数创建仅用于当前会话的临时文件或数据的功能。因此,Windows经常调用CleanupTemporaryState函数来清除这些临时文件,这些临时文件也位于常规的Windows临时文件夹中。

因为您已经在想,您不需要手动触发此任务来保持您的PC清洁-如果您想清除这些临时文件,只需使用磁盘清理或CCleaner之类的工具即可。但更多地了解Windows在幕后是如何工作的,这是一件很有趣的事情。

说到磁盘清理,你知道当你的磁盘空间真的很低的时候,Windows会自动在静默模式下运行它吗?

此计划任务的命令行显示了它是如何完成的-通过将/autolean和/D%systemdrive%参数传递给leanmgr.exe,Windows告诉磁盘清理自动运行并清理安装了Windows的驱动器。

您会注意到其中一些内置任务可能没有设置触发器。这可能有多种原因,包括Windows可能会以不同的方式触发计划任务。

使用向导创建基本任务

现在我们已经了解了界面中的一些选项,剩下的唯一事情就是了解如何创建任务。

基本任务向导可帮助您快速创建任务,而无需了解有关界面的所有信息。它将提示您输入触发器,这是Windows用来决定何时运行任务的触发器。触发器可以是时间或日期,可以是每天、每周、每月或每隔一个星期二下午1点。一旦您选择一个并进入下一个屏幕,这些选项就会非常强大。

您还可以选择在计算机启动时、登录时启动任务,甚至在事件查看器中显示特定事件时启动任务,我们将在下一课中介绍这些内容。

完成触发器设置后,系统将提示您输入要执行的操作,这只是说明您将使用此屏幕启动程序。您仍然可以选择发送电子邮件或显示消息,但该功能很有可能在将来的版本中被删除,因为它们现在都显示为不推荐使用。

在下一个屏幕上,系统将提示您输入程序或脚本,您还可以向该脚本添加参数。如果您的应用程序或脚本正在当前文件夹中查找文件,则“开始位置”的最后一个选项非常有用,这样您就可以将当前文件夹设置为该文件所在的位置。

这就是使用向导创建任务的真正意义所在,但这只是新手的做事方式。

使用详细信息视图创建任务

一旦您已经知道自己在做什么,就没有理由通过向导来创建新任务(除非您真的喜欢它们)。取而代之的是,您只需创建一个新任务,并使用您想要的设置填写部分-当然,通过这种方式可以使用更多的设置。

注意:我们在这里提到的所有内容也适用于编辑现有任务,因此非常值得关注。

第一个也是最明显的字段是Name、Location、Author和Description,它们是信息性的、不言而喻的。Name字段应该简短但具有描述性,您应该真正添加一个描述,这样您在一年后查看它时就不会忘记添加此任务的原因。

使用项目符号列表可以更好地解释其余选项,因此我们现在将使用其中一个选项。

用户帐户允许您指定此任务将以哪个用户身份运行。如果您希望任务与桌面交互,您可能会希望使用您自己的用户帐户,这是默认的。如果您指定了SYSTEM帐户,您将不想保存密码。 仅当用户登录时运行-此选项是默认选项,它将在当前会话中使用您的用户凭据自动运行。如果您尚未登录,任务将不会运行。 无论用户是否登录都运行-此选项是上一个选项的替代选项,即使您未登录,它也会以您的用户帐户运行任务。对于即使在其他人登录时也需要在共享计算机上运行的维护任务,或者如果您定期从您的PC注销,这非常有用。系统将提示您输入密码以创建任务,Windows将使用这些凭据自动让您登录该任务。 不存储密码-如果您不想存储密码,可以选择此选项-尽管它只在域环境中工作,并且需要授予帐户作为批处理作业登录的权限。这是您在不想保存密码的服务器环境中使用的东西,因此您使用服务帐户。使用此选项时,使用Windows网络和加密也有限制。(摘要:对于家庭用户,请不要使用此选项)。 以最高权限运行-此选项实质上赋予任务管理员权限,其方式与用户帐户控制(UAC)提示执行此操作的方式相同。如果您计划将其用于管理目的,则可能需要启用此选项。 隐藏-如果您希望默认情况下从列表中隐藏任务,则可以选择此选项,尽管默认情况下在任务调度器的视图选项中启用了隐藏任务的显示,因此这看起来相当愚蠢。 Configure for(配置对象)-此选项应设置为您正在运行的最新操作系统。基本上,您可以创建要导出的任务,然后在任务计划程序功能较少的较旧计算机上运行。例如,如果将下拉菜单设置为XP,则“触发器”页以及“条件和设置”中的许多选项将丢失。

触发器页面为您提供了一大堆可供选择的选项,一旦您选择其中一个选项,甚至可以进行更高级的设置。

这些选项相当简单--当您从列表中选择一个选项时,页面上的其他设置将进行调整以给您更多的控制。以下是榜单上的名单:

按计划-此触发器使用时间和日期设置来启动任务。这里有大量的选项,您还可以使任务循环,这可能是默认的用法。 在登录时-仅在您首次登录时触发。这在您登录时运行需要管理员权限的任务可能很有用-如果您将其放入Startup文件夹,它可能不会以您预期的方式工作。您还可以使用它仅在特定用户登录时触发,而不是在每个用户登录时触发。 在启动时-这在计算机启动时触发,而不是在您登录后触发。如果您想要在引导时但在登录之前运行一些东西,这将是可行的(尽管不能保证它会在您登录之前运行,只是它会更早触发)。 处于空闲状态-这个非常有用的触发器只有在您的计算机处于空闲状态并且您已经有一段时间没有使用它的时候才会启动。 在事件上-每当事件查看器日志中发生特定事件时,都可以触发计划任务。因此,例如,每当事件5133出现在日志中时,运行一个向某人发送电子邮件的任务。 在任务创建/修改时-本质上,您是在创建一个任务,该任务一旦创建就会自动运行。对于Windows来说,这是一种只在特定条件下运行任务的动态创建任务的方法,然后您甚至可以使用该选项在任务完成后自动删除该任务。你可能不会经常用这个。 在与用户会话连接/断开连接时-您可以创建仅当您通过远程桌面登录或注销,或使用快速用户切换在本地PC上的用户之间切换时才触发的任务。例如,当您连接到服务器时,这对于自动运行某些工具很有用。 工作站锁定/解锁-每当您使用Win+L锁定屏幕或使用密码解锁时,此触发器都会启动任务。

值得注意的是,您可以为单个任务定义多个触发器。

选择“按计划”选项将为您提供更多选项可供选择,例如您希望在一周中的哪些天运行任务,以及在什么时间运行任务。如果您的服务器遍布全球,您可以选择使其始终在世界时而不是时区进行。

但是,例如,选择“On an event”选项将为您提供更多选择器来选择您要筛选的日志、源和事件ID。这一切都与你的选择有关。

触发器的高级设置为您提供了一系列其他选项可供选择。

将任务延迟最多(随机延迟)-这将增加一个随机延迟,这样任务就不会总是在一天中的同一时间发生。 每小时重复一次任务-这将使您比每天或每周更频繁地重复任务-如果您希望任务每小时运行一次,您可以使用此选项来实现。 如果任务的运行时间超过,则停止该任务-如果您的任务可能会逃逸且永不退出,则此选项非常有用。Windows将在指定时间之后自动停止该进程。 激活-此设置(未显示在下面的屏幕截图中)将设置此触发器激活的时间和日期。如果您想在空闲状态下运行某些东西,但要等到特定日期之后,这很有用。 过期-这允许您将任务设置为仅在一个月、两个月或您想要设置的任何时间内有效。在指定的时间段之后,触发器将停止工作(如果您有多个触发器,任务将继续处于活动状态)。 启用-您可以使用此选项启用或禁用任务。

Actions页面更加不言自明的…。唯一的选择是创建启动程序的新操作。从技术上讲,您仍然可以创建发送电子邮件的操作,但他们正在移除该功能,所以如果您需要发送电子邮件,最好使用脚本。

Program/Script(程序/脚本)框允许您选择要运行的应用程序,Add Arguments(添加参数)框允许您向该应用程序传递参数,Start In(启动位置)选项允许您设置工作目录。

例如,如果您使用“浏览”按钮并选择Web浏览器的.exe文件,则可以将https://www.howtogeek.com放入“添加参数”框中,此计划任务将在运行时在您的默认浏览器中自动启动How-to Geek。您甚至可以将其设置为每天早上运行,以便在登录时自动打开您的浏览器。(并不是说我们特别推荐这样做,但我们只是说)。

Conditions选项卡具有更多选项,这些选项与触发器一起工作,以确定任务是否实际运行。例如,您可以将触发器设置为每天下午1点运行,但如果您选择“仅在计算机使用交流电源时启动任务”,则只有当您的笔记本电脑插入墙上电源时,它才会运行。

选项非常简单:

仅当计算机空闲时启动任务-这将仅在计算机空闲时间达到下拉列表中指定的分钟数时启动任务。请记住,这些条件是触发器之外的条件-所以如果您将触发器设置为下午1点,那么它实际上不会启动,直到下午1点以后,计算机已经空闲了x分钟之后。 等待空闲时间-这将继续等待您休息一段时间,然后离开计算机一段设定的时间。理想情况下,这应该设置为小于触发器设置的值,这样它就不会从上次开始继续等待。 如果计算机不再空闲,请停止-没有什么比回到您的PC时发现它正在磨合它的齿轮更令人恼火的了。此选项将使任务在您返回到PC时自动停止。 如果空闲状态恢复则重新启动-假设任务没有在第一次完成,此选项将在您离开时让任务再次开始。 仅当计算机使用交流电源时才启动任务-当您使用电池运行时,您不会想要运行大型备份任务,并且此选项允许您确保已接通电源。 如果计算机切换到电池电源,请停止-如果您有一个备份任务正在运行,然后拔下了PC电源,您可能不希望该备份任务继续运行并浪费您的电池。此选项允许您选择该选项。 唤醒计算机以运行此任务-目前大多数计算机进入睡眠模式,此选项允许计算机自动唤醒并运行维护任务。对于凌晨2点的备份非常有用。 仅当以下网络连接可用时才启动-您可以指定任务仅在连接到特定网络时运行。例如,您可以指定每当您回家并插入有线网络时,都会自动进行备份。有用!

最后要了解的选项卡是“设置”选项卡,它有更多的选项可供选择。最有趣的是允许任务按需运行,这将允许您随时触发它。

选项包括:

允许按需运行任务-假设您将备份任务设置为每周运行一次,但您决定立即运行备份。通过选中此选项,您可以随时运行它。 错过计划的启动后尽快运行任务-如果计算机已关闭,则可能不会发生触发的时间事件。此设置将允许任务计划程序返回并查看它是否应该运行,然后立即触发它运行。 如果任务失败,重新启动间隔-您可能不会使用这么多,但如果您希望任务自动重新启动,您可以使用此选项,以及尝试重新启动选项,以确保它不会疯狂并永远重新启动。 如果任务的运行时间超过-如果您的任务有时会失控,您可以使用此选项来确保它不会永远运行。 如果正在运行的任务没有在请求时结束,则强制其停止-如果任务趋向于完全挂起,这将非常有用,因为它将强制退出它们。 如果任务未计划再次运行,请在之后删除它-此选项将在上次计划时间之后自动删除任务。例如,您可以创建一个执行某项任务5次,然后自毁的任务。 如果任务已经在运行,则适用以下规则-计划任务最糟糕的事情之一是同一任务运行100次,因为前一个实例没有正确地自行关闭。此选项允许您通过不先启动、并行运行、排队或停止旧的进程来确保不会发生这种情况。

希望您已经更好地理解了所有这些选项在这一点上是如何工作的。绝对有很多选择,而且你的指尖有很大的力量。你只需要考虑如何把它用在你的优势上。

通过快捷方式按需运行计划任务

我们在前面提到过,您可以按需运行任务,这是使用命令行工具schtasks.exe并传递参数来指定要尝试运行的任务来完成的。

您还可以使用schtask实用程序创建、删除、查询、更改、结束或显示有关计划任务的详细信息。事实上,如果您只需在提示符下键入schtask,您将看到每个计划任务的巨大列表。如果您使用/?参数,您将看到语法。

使用/run参数的完整语法可能是最有用的,如下所示:

然后,您可以通过指向schtask启动器实用程序来创建运行计划任务的快捷方式。

有什么意义?还记得我们提到如何使用“以最高权限运行”选项吗?实际上,您可以创建一个计划任务,该任务就像已经选择了UAC提示符一样运行,并且可以创建快捷方式来运行管理员工具,而不需要UAC提示符。

相关文章