我正在尝试创建一个batch
文件,以便在多台远程 PC 上运行自动脚本。
我的主机应该能够连接到任何远程 PC 并设置本地计划任务。
批处理文件使用以下命令:
schtasks /delete <--- remove any previous version
/S \\10.1.2.3 <--- the remote PC's IP
/U theAdministrator <--- the username to access the PC
/P MyPassword <--- the password to access the PC
/TN MyTask <--- task name
/F <--- don't ask, just do it option
schtasks /create
/S \\10.1.2.3
/U theAdministrator
/P MyPassword
/RU theAdministrator <--- the username to execute the task
/RP MyPassword <--- the password to execute the task
/SC dayly /MO 1 <--- run every day
/TN MyTask
/TR C:\task.bat <--- the script to run on the remote PC
当我启动第一个/delete
命令时,一切正常,但第二个返回警告:
“任务已创建,但可能不会运行,因为无法设置帐户信息”
(对不起,如果这不是确切的错误信息,但我必须自己翻译)
我确信用户名和密码是正确的,因为该/delete
命令是可以的,并且/create
即使它没有运行,也可以创建任务。
因此问题应该是/RU
和/RP
选项......
解决方案:
如果没有此错误消息,我无法执行命令本身,无论如何我已经达到了我的目标并找到了两个不同的选项:
使用 AT 命令的最简单方法:
AT \\10.1.2.3 12:00 C:\task.bat
它没有问题,但需要指定一个小时才能运行;这意味着如果您希望立即执行任务,您将不得不聊天%time%
变量。
此选项也不允许设置用户来运行任务(我已经以管理员身份对其进行了测试,并且任务设置为执行为NT AUTHORITY/SYSTEM
)
使用 PsTools 的全功能方式:将命令
传递schtasks /create
PsExec
set command=schtasks /create /SC dayly /MO 1 /TN MyTask /TR C:\task.bat /RU theAdministrator /RP MyPassword
PsExec \\10.1.2.3 -u theAdministrator -p MyPassword %command%
注意。
访问远程 PC的目标IP、用户和密码必须在PsExec
命令中设置,因此您不需要它们 onschtasks
。
脚本 task.bat 已经存在于目标 PC 的根目录 C:\。