【发布时间】:2014-06-05 17:20:17
【问题描述】:
我有一个启动 .vbs 文件的计划任务,它启动一个没有窗口的批处理文件,检查服务是否正在运行,如果没有,则启动它。我有一个 .vbs 启动批处理文件的原因是批处理文件没有弹出窗口。我遇到的问题是,当我通过 .vbs 运行批处理时访问被拒绝,所以我想在 .vbs 脚本中运行整个系统以检查服务是否已启动或正在运行,如果没有启动它。此外,我使用 schtasks 以 /RL Highest 运行 .vbs,因此我不会拒绝访问,但是当 .vbs 启动批处理文件时,批处理文件没有权限并被拒绝访问。
我输入的定时任务命令:
schtasks /CREATE /TN "OpenTunnel" /TR "C:\BTools\OpenTunnel\Invisable_OpenTunnel.vbs" /sc minute /mo 10 /RU ***** /RP ***** /RL HIGHEST
这是运行并检查服务状态的批处理文件。
for /F "tokens=3 delims=: " %%H in ('sc query "Hamachi2Svc" ^| findstr " STATE"') do (
if /I "%%H" NEQ "RUNNING" (
net start "Hamachi2Svc"
)
)
这里是 .vbs 的代码,它在没有窗口的情况下启动批处理:
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "opentunnel.bat" & Chr(34),0
Set WinScriptHost = Nothing
因此,如果我以管理员身份运行批处理,它会起作用,但是有没有办法让 .vbs 每 10 分钟运行一次,它会执行与批处理文件类似的操作?毕竟,.vbs 文件是最好的,我可以授予它 /RL 最高的权限,这应该可以。
提前致谢 =)
【问题讨论】:
标签: vbscript