我创建了一个名为 restart.bat 的批处理文件
:: Open a Telnet window
start telnet.exe 10.20.11.12
:: Run the script
%systemroot%\system32\cscript.exe //Nologo //B C:\Scripts_and_Tools\SendKeys.vbs
这是vbs脚本
set OBJECT=WScript.CreateObject("WScript.Shell")
WScript.sleep 50
OBJECT.SendKeys "root{ENTER}"
WScript.sleep 50
OBJECT.SendKeys "password{ENTER}"
WScript.sleep 50
OBJECT.SendKeys "boot action=reset{ENTER}"
WScript.sleep 3000
OBJECT.SendKeys "{ENTER}"
WScript.sleep 50
OBJECT.SendKeys "{ENTER}"
WScript.sleep 50
OBJECT.SendKeys " exit{ENTER}"
WScript.sleep 50
OBJECT.SendKeys " "
手动运行它可以正常工作,但作为任务调度程序运行它会显示它已完成但它不起作用。
该任务默认在用户会话 0 中运行,并且不与桌面交互。看
windows-7-task-scheduler-to-start-application-in-user-session
您可以确认这是否是您的问题,但在登录到它运行的域管理员帐户时手动运行任务计划程序任务。telnet 窗口等应该在交互式桌面上运行。
对于这种类型的点击/按键自动化,我建议使用Autoit,因为它可以将输入直接发送到正确的窗口。