我正在尝试创build一个batch
文件,以便在多台远程PC上运行自动脚本。
我的主机应该能够连接到任何远程PC并设置本地计划任务。
batch file使用这些命令:
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
命令一切正常,但第二个返回警告:
“任务已经创build,但可能无法运行,因为无法设置帐户信息”
(对不起,如果这不是确切的错误消息,但我必须自己翻译)
我确信用户名和密码是正确的,因为/delete
命令是正确的,并且/create
一个即使它不运行也/create
任务。
因此,问题应该是/RU
和/RP
选项…
解:
我没有能够执行命令本身没有这个错误消息,无论如何,我已经达到了我的目标,并发现两个不同的select:
使用AT命令最简单的方法是:
AT \\10.1.2.3 12:00 C:\task.bat
它没有问题,但需要指定一个小时运行; 这意味着如果您希望立即执行任务,您必须与%time%
variables进行聊天。
此选项也不允许设置用户运行任务(我已经以pipe理员的身份进行了testing,并将任务设置为NT AUTHORITY/SYSTEM
执行)
使用PsTools的全function方法:
将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%
NB。 访问远程PC的目标IP , 用户名和密码必须在PsExec
命令中设置,因此你不需要在schtasks
。
目标PC的root C:\目录下已经存在脚本task.bat。
PC上的域名?
我之前在域上使用过schtasks,它没有/ru
和/rp
。 我只是用/u
和/p
作为我安排任务的机器的用户名和密码。
尽管从未在标准工作组/家庭机器上尝试过。
你也可能想看看这个 ,确保UAC在所有的远程机器上都是关闭的,因为以后可能会引起问题。
编辑
我刚刚尝试从一台笔记本电脑到另一台(没有涉及的领域)。 这两条线对于我来说(CMD,所以应该通过批处理)工作
schtasks /delete /S \\xxx.xxx.xxx.xxx /U USERNAME /P PASSWORD /TN MyTask /F schtasks /create /S \\xxx.xxx.xxx.xxx /U USERNAME /P PASSWORD /TN MyTask /SC once /st START_TIME /it /TR c:\test.bat
需要注意的是
– 显然,用你所需要的IP,用户名和密码来替换x的相关数据
– 我曾经/sc once /st START_TIME
,而不是你/sc daily /mo 1
,但这应该没有区别
– 我已经添加/it
哪个(从CMD获取)“Enalbes交互式运行的任务…”(根据我的经验,不使用它会导致问题)
– 笔记本电脑上的用户,我正在安排任务在笔记本电脑上不存在,我跑schtasks从
– 我在笔记本电脑上运行schtasks的用户在笔记本电脑上不存在我正在安排任务(因此用户不存在客户端/主机上并不重要)