代码改变世界

Task Scheduler 介绍

2012-04-09 22:20  潇湘隐者  阅读(23102)  评论(0编辑  收藏  举报
Task Scheduler 的描叙:使用户可以在此计算机上配置和计划自动任务,此服务还托管多个Windows系统关键任务。如果此服务被停止或禁用,这些任务将无法再按计划的时间运行。如果此服务被禁用,则明确依赖它的所有服务将无法启动。这个命令有点类似于Linux下的crontab 等后台命令。可以通过它在Window 平台自动备份数据库等任务。这个命令依赖于Remote Procedure Call(RPC)系统组件(Windows XP/2000/2003下), 在VISTA、WIN7下必须依赖Remote Procedure Call(RPC)、Windows Event Log两个系统组件。
启动Task Scheduler(Win2003下)
1:你可以在开始菜单——运行里面输入:services.msc 命令进入服务窗口,亦可以通过控制面板——管理工具——服务,进入服务,
   手动对Task Scheduler服务进行启动。

 

2:也可以通过命令形式启用服务。 

 

用dos打开task scheduler服务:sc start schedule 。schedule是服务名称,而Task Scheduler是显示名称。

 

停止Task Scheduler(Window 2003下)
   1:你可以在开始菜单——运行里面输入:services.msc 命令进入服务窗口,亦可以通过控制面板——管理工具——服务,进入服务,

   手动对Task Scheduler服务进行停止。 

 

  2:也可以通过命令形式停止服务。(Windows 2003)

 

【注意】在WIN7 和 VISTA下Task Scheduler该服务无法被禁用。如果此服务被禁用,任何依赖它的服务将无法启动。已经不单是以前操作系统的计划任务调度管理器了

 

查看Task Scheduler服务状态

直接通过上面的服务窗口查看,可以用命令:sc query schedule查看 

 

创建Task Scheduler服务
sc create Schedule binPath=  "%SystemRoot%\System32\svchost.exe -k netsvcs" type= share start= auto displayname= "Task Scheduler" depend= RpcSs

 

不过我在删除该服务后,运行上面命令后,启动task scheduler服务时出现错误2:系统找不到指定的文件。折腾了很久,网上也搜索了很多资料,依然没有解决问题,不知道哪位同仁解决过此类问题。 

 

删除Task Scheduler服务

使用命令 sc delete schedule 删除Task Scheduler服务(Window 2003下)。一般建议先停止服务,然后使用删除命令。 

 

执行后可以看见Task Scheduler服务变成禁用状态了。

 

 Windows 7 下执行结果如下: 

 

SCHTASKS /parameter [arguments] 
描述: schtasks.exe是安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。
    允许管理员创建、删除、查询、更改、运行和中止
    本地或远程系统上的计划系统。替代 AT.exe。
参数列表:
    /Create         创建新计划任务。
    /Delete         删除计划任务。
    /Query          显示所有计划任务。
    /Change         更改计划任务属性。
    /Run            立即运行计划任务。
    /End            中止当前正在运行的计划任务。
    /?              显示帮助/用法。
示例:
    SCHTASKS 
    SCHTASKS /?
    SCHTASKS /Run /?
    SCHTASKS /End /?
    SCHTASKS /Create /?
    SCHTASKS /Delete /?
    SCHTASKS /Query  /?
    SCHTASKS /Change /?
sc命令详解,可以在dos下面直接输入sc,即可得到sc命令的帮助文档,各种详细参数配置。如下所示:
C:\Documents and Settings\Administrator>sc
描述:
        SC 是用于与
        服务控制管理器和服务进行通信的命令行程序。
用法:
        sc <server> [command] [service name] <option1> <option2>...
        选项 <server> 的格式为 "\\ServerName"
        可以键入 "sc [command]" 以获得命令的进一步帮助
        命令:
          query-----------查询服务的状态, 或
                          枚举服务类型的状态。
          queryex---------查询服务的扩展状态, 或
                          枚举服务类型的状态。
          start-----------启动服务。
          pause-----------向服务发送 PAUSE 控制请求。
          interrogate-----向服务发送 INTERROGATE 控制请求。
          continue--------向服务发送 CONTINUE 控制请求。
          stop------------向服务发送 STOP 请求。
          config----------更改服务的配置(永久)。
          description-----更改服务的描述。
          failure---------更改服务失败时所进行的操作。
          sidtype---------更改服务的服务 SID 类型。
          qc--------------查询服务的配置信息。
          qdescription----查询服务的描述。
          qfailure--------查询服务失败时所进行的操作。
          qsidtype--------查询服务的服务 SID 类型。
          delete----------(从注册表)删除服务。
          create----------创建服务(将其添加到注册表)。
          control---------向服务发送控制。
          sdshow----------显示服务的安全描述符。
          sdset-----------设置服务的安全描述符。
          showsid---------显示与
                          任意名称相对应的服务 SID 字符串。
          GetDisplayName--获取服务的 DisplayName。
          GetKeyName------获取服务的 ServiceKeyName。
          EnumDepend------枚举服务的依存关系。
        下列命令不要求服务名称:
        sc <server> <command> <option>
          boot------------(ok | bad) 表明是否将最后一次启动
                          保存为最后一次的正确启动配置
          Lock------------锁定服务数据库
          QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
        sc start MyService
是否要查看 QUERY 和 QUERYEX 命令的帮助? [ y | n ]:
y
QUERY 和 QUERYEX 选项:
        如果查询命令带服务名称,将返回
        该服务的状态。其他选项不适合这种
        情况。如果查询命令不带参数或
        带下列选项之一,将枚举此服务。
    type=    要枚举的服务的类型(driver, service, all)
             默认 = service)
    state=   要枚举的服务的状态 (inactive, all)
             (默认 = active)\n"
    bufsize= 枚举缓冲区的大小(以字节计)
             (默认 = 4096)
    ri=      开始枚举的恢复索引号\n"
             (默认 = 0)
    group=   要枚举的服务组
             (默认 = all groups)
句法示例
sc query                - 枚举活动服务和驱动程序的状态
sc query messenger      - 显示信使服务的状态
sc queryex messenger    - 显示信使服务的扩展状态
sc query type= driver   - 仅枚举活动驱动程序
sc query type= service  - 仅枚举 Win32 服务
sc query state= all     - 枚举所有服务和驱动程序
sc query bufsize= 50    - 枚举缓冲区为 50 字节
sc query ri= 14         - 枚举时恢复索引 = 14
sc queryex group= \"\"  - 枚举不在组内的活动服务
sc query type= service type= interact - 枚举所有不活动服务
sc query type= driver group= NDIS     - 枚举所有 NDIS 驱动程序