首先,我想提前感谢大家帮忙解决这个问题,让我带你去旅行......
任务:使用Windows任务计划程序运行位于文件服务器上的文件夹中的Java应用程序,这很简单。
需要注意的是,我想利用“运行用户是否登录”的任务调度程序选项。这似乎是一个棘手的功能...
我已将帐户设置为要在其下运行任务的帐户。
我尝试了什么?
根据以下操作创建任务:
Java.exe -jar“共享jar的路径”
Java.exe -jar“本地jar的路径”
Javaw.exe -jar“共享jar的路径”
Javaw.exe -jar“本地jar的路径”
所有与“运行是否登录使用”的结果相同。选项:0x1
接下来,我尝试创建一个批处理文件来代表我运行它,并将任务更改为运行该批处理文件,我得到了所有相同的结果。我已经读过,利用动作的“开始(可选)”字段可以解决问题,但事实并非如此。
之后,我创建了一个.vbs文件,代码类似于以下代码:
设置WshShell = CreateObject(“WScript.Shell”)
WshShell.Run chr(34)& “C:\ Batch Files \ syncfiles.bat”& Chr(34),0
设置WshShell = Nothing
这实现了“静默运行”,但任务调度程序仍未运行“运行是否使用登录。”,并以0x1结束。
所有这些都可以正常使用“仅在用户登录时运行”。选项。
无论我是否登录,我想这样做的原因是因为我想在上班前运行我的应用程序。
更新 我已经解开了一些东西。在Windows的电源选项中,我必须启用计划任务唤醒计算机的能力,对此感到有些愚蠢。
使用更简单的任务 - 只创建一个空白文本文件 - 这个选项工作正常。我相信问题在于执行Java。
答案 0 :(得分:1)
任务需要用户运行。当然,它不一定是登录的用户,但无论如何都需要用户。
cmd /c c:\full\path\to\batch.bat
)自行运行。用户Windows将用于在没有人登录时运行您的任务需要配置和工作的所有工具。例如,本地服务是否设置了所有路径和注册表设置?该用户可以读取该共享(SYSTEM帐户没有网络凭据)。
要帮助调试,请使用psexec。此命令行将允许您在SYSTEM帐户下运行脚本。像
这样的东西psexec -dies cmd /c c:\full\path\to\batch.bat
+欢迎来到SO!