windows - 无法运行在 SYSTEM 帐户下发出 https 请求的 Windows 任务
问题描述
我创建了一个调用三个独立 bat 文件的 windows cmd 文件。我想创建一个调用此 cmd 文件并每 5 分钟运行一次的 Windows 任务。问题是这个任务只有在我登录系统时才能正常运行。但是我无法让这个任务继续运行 "无论我是否登录"。
我什至让我的同事登录到那台机器并在他的帐户下运行这个任务——它成功了。我在那台机器上创建了一个本地管理员用户,以该用户身份登录,尝试运行此任务 - 它没有工作 - 脚本在 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 分钟运行一次此任务。如果有人能够看到我做错了什么并指出...我将非常感激。
解决方案
您可以创建一个 PowerShell 脚本来远程执行批处理脚本。甚至您也可以使用将根据您的设置运行的 Windows 任务计划程序来计划您的 PowerShell 脚本。
推荐阅读
- ajax - wordpress ajax表单我提交时发现404
- java - 无法在 JSONObject (org.json) 中找到嵌套数组
- java - 使用 EclEmma 和 Eclipse 获取“未收集到覆盖数据”消息
- angular - 如果相同href的条件在角度上为真,则触发href上的点击事件
- javascript - 在 Google Apps 脚本中过滤排除少数工作表
- ios - SwiftUI - 更改 GraphicalDatePickerStyle DatePicker 的可见性会导致内存泄漏
- javascript - 提交后显示 toast 和清除表单
- c++ - 如何简化 if - else 语句?
- react-native - 未定义不是对象(评估“navigation.navigate”)无法解析
- python - Pandas 创建一个框架,其条目是应用于其他 DataFrame 的相应条目的函数的值