无法运行在SYSTEM帐户下发出https请求的Windows任务

时间:2018-10-01 16:09:08

标签: windows batch-file jmeter taskscheduler datadog

我创建了一个Windows cmd文件,该文件调用了三个独立的bat文件。我想创建一个Windows任务,调用此cmd文件并每5分钟运行一次。问题在于,只有在我登录系统后,此任务才能正常运行。 但是无论我是否登录,我都无法继续执行此任务。

我什至要求我的同事登录到该计算机,并在他的帐户下运行此任务-它起作用了。我在该计算机上创建了一个本地管理员用户,以该用户身份登录,试图运行此任务-它不起作用-该脚本在post_results.bat中永远等待。我什至尝试安排一个基本上做相同事情的詹金斯工作-它不起作用-詹金斯工作永远等待post_results.bat(我在等待约20分钟后杀死了詹金斯工作)。

以下是这些任务的摘要:

run_all.cmd

call "run_test.bat"
call "post_results.bat"
call "clean.bat"

run_test.bat -执行jmeter脚本

C:\Users\Administrator\LS2\apache-jmeter-4.0\bin\jmeter -n -t api_strategy_synthetic_tests.jmx -JTestEnv=amer1 -l Result_log.jtl

post_results.bat -调用将jmeter测试结果发布到datadog的python脚本

python post_jmeter_results_to_datadog.py Result_log.jtl

post_jmeter_results_to_datadog.py -使用datadog python API将指标发布到datadog

#!/usr/bin/env python3
import sys
import pandas as pd
from datadog import initialize, api

options = {
    'api_key': <API_KEY>,
    'app_key': <APPLICATION_KEY>
}
initialize(**options)

jtl_file = sys.argv[1]
df = pd.read_csv(jtl_file)
for index, row in df.iterrows():
    tag = "success:" + str(row['success'])
    api.Metric.send(
        metric=row['label'],
        points=[(row['timeStamp']/1000,row['elapsed'])],
        tags=[tag]
        )

clean.bat -删除jmeter测试结果文件

rmdir /s /q "errors"
del "jmeter.log"
del "Result_log.jtl"

我需要的是能够每5分钟运行一次此任务。如果有人能够看到我在做什么错并指出这一点……我将非常感激。

1 个答案:

答案 0 :(得分:0)

您可以创建一个PowerShell脚本来远程执行批处理脚本。 而且甚至您都可以使用Windows任务计划程序来计划PowerShell脚本,该任务将根据您的设置运行。