美文网首页软件测试软件测试我爱编程
自动化测试之Windows计划定时任务命令schtasks及语法

自动化测试之Windows计划定时任务命令schtasks及语法

作者: 软测小生 | 来源:发表于2018-04-17 09:42 被阅读74次

    公号:软测小生(ruancexiaosheng)
    关于schtasks 详细语法可以到微软的官网学习
    schtasks(博客园)

    今天突然接触到schtasks这个命令,感觉挺有用的,索性就花点时间学习记录一下。

    由于我是做自动化测试的,基于Selenium,使用到Selenium Grid, 一台Hub机控制着多台Node机。倘若出现关机,或者要重启Hub和全部的Node就必须手动逐台打开本地文件-->运行Node.bat脚本文件,启动服务,这样子完全不科学,不是自动化,应该使用自动化解决这些事情,而不是手动一台一台的去启动。

    对于测试机器是Windows的,所以使用schtasks命令解决,并且部署到Jenkins,也可以实现每天定时的自动重启,哇像这样一来,想想都开心,有解决了一项自动化。


    image

    思路:每天自动重启远程机上的Hub和Node,新构建一个Jenkins Job, 配置运行时间,比如每天上班运行自动化脚本之前重启一次清一下缓存,每天下班之后,会有大量的自动化监控项目在跑,也重启一下(当然这个重启运行时间可以根据你的实际需求来制定)。

    image

    接下来就是写执行dos命令到Windows执行:(REM 文本内容 在批处理文件中添加注解,注释)


    image.png

    schtasks run

    立即运行计划任务。run 操作忽略计划,但使用程序文件位置、用户帐户和保存在任务中的密码立即运行任务。

    语法

    schtasks /run /tn TaskName [/s Computer [/u [Domain*]User [/p* Password]]]

    参数
    /tn TaskName
    必需。标识任务。
    /s Computer
    指定远程计算机的名称或 IP 地址(带有或不带有反斜杠)。默认设置为本地计算机。
    /u [Domain] User
    使用指定用户帐户的权限运行该命令。默认情况下,使用本地计算机当前用户的权限运行该命令。
    指定的用户帐户必须是远程计算机上 Administrators 组的成员。只有使用 /s 时,/u /p 参数才有效。
    /p Password
    指定在
    /u 参数中指定的用户帐户的密码。如果使用 /u
    参数,但忽略** /p 参数或密码参数,Schtasks 将提示您输入密码。
    只有使用
    /s 时,/u** 和 /p 参数才有效。
    /?
    在命令提示符下显示帮助。
    备注

    • 使用这个操作来测试任务。如果任务没有运行,请查阅“任务计划程序服务”事务日志 Systemroot\SchedLgU.txt,以获取错误。
    • 运行任务既不会影响任务计划,也不会更改为任务计划好的下次运行时间。
    • 要远程运行任务,必须在远程计算机上计划任务。在运行该任务时,它仅在远程计算机上运行。要验证任务正在远程计算机上运行,请使用“任务管理器”或“任务计划程序”事务日志 Systemroot\SchedLgU.txt

    示例
    在本地计算机上运行任务
    以下命令用于启动“Security Script”任务。
    schtasks /run /tn "Security Script"
    作为响应,SchTasks.exe 启动与任务相关联的脚本并显示以下消息:
    SUCCESS: Attempted to run the scheduled task "Security Script".
    正如消息提示的那样,Schtasks 尝试启动程序,但它无法验证该程序实际上已经启动。
    在远程计算机上运行任务
    以下命令用于在远程计算机 Svr01 上启动 Update 任务:
    schtasks /run /tn Update /s Svr01
    在这种情况下,SchTasks.exe 显示以下错误消息:
    ERROR: Unable to run the scheduled task "Update".
    查看 Svr01 上的“计划任务程序”事务日志 C:\Windows\SchedLgU.txt 以获取错误的原因。在这种情况下,日志中显示以下条目:

    "Update.job" (update.exe) 3/26/2001 1:15:46 PM ** ERROR **

    The attempt to log on to the account associated with the task failed, therefore, the task did not run.

    The specific error is:

    0x8007052e: Logon failure: unknown user name or bad password.

    Verify that the task's Run-as name and password are valid and try again.

    显然,任务中的用户名或密码在此系统中无效。下面的 schtasks /change 命令用于更新 Svr01 上 Update 任务的用户名和密码:
    schtasks /change /tn Update /s Svr01 /ru Administrator /rp PassW@rd3
    在 **change **命令完成之后,重新运行 **run **命令。此时,Update.exe 程序启动,SchTasks.exe 显示以下消息:
    SUCCESS: Attempted to run the scheduled task "Update".
    正如消息提示的那样,Schtasks 尝试启动程序,但它无法验证该程序实际上已经启动。

    schtasks end
    停止由任务启动的程序

    语法
    schtasks /end /tn TaskName [/s Computer [/u [Domain*]User [/p* Password]]]
    参数
    /tn TaskName
    必需。标识启动程序的任务。
    /s Computer
    指定远程计算机的名称或 IP 地址。默认设置为本地计算机。
    /u [Domain] User
    使用指定用户帐户的权限运行该命令。默认情况下,使用本地计算机当前用户的权限运行该命令。
    指定的用户帐户必须是远程计算机上 Administrators 组的成员。只有使用 /s 时,/u /p 参数才有效。
    /p Password
    指定在 /u 参数中指定的用户帐户的密码。如果使用 /u 参数,但忽略 /p 参数或密码参数,Schtasks 将提示您输入密码。
    只有使用 /s 时,
    /u
    /p
    参数才有效。
    /?
    显示帮助。
    备注
    SchTasks.exe 只终止由计划任务启动的程序实例。要停止其他进程,请使用 TaskKill,它是一个包含在 Windows XP Professional 中的工具。有关 TaskKill 的详细信息,请参阅 Taskkill。
    示例
    终止本地计算机上的任务
    以下命令用于终止由 My Notepad 任务启动的 Notepad.exe 实例:
    schtasks /end /tn "My Notepad"
    作为响应,SchTasks.exe 停止由任务启动的 Notepad.exe 实例,并显示以下成功消息:
    SUCCESS: The scheduled task "My Notepad" has been terminated successfully.
    终止远程计算机上的任务
    以下命令用于终止远程计算机 Svr01 上由 InternetOn 任务启动的 Internet Explorer 实例:
    schtasks /end /tn InternetOn /s Svr01
    作为响应,SchTasks.exe 停止由任务启动的 Internet Explorer 实例,并显示以下成功消息:

        SUCCESS: The scheduled task "InternetOn" has been terminated successfully.
    

    自动化测试之Windows计划定时任务
    DOS 批处理命令For循环命令详解(点击此标题跳转查看 )

    相关文章

      网友评论

      本文标题:自动化测试之Windows计划定时任务命令schtasks及语法

      本文链接:https://www.haomeiwen.com/subject/lerekftx.html