2

我正在尝试创建一个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 /createPsExec

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:\。

4

1 回答 1

0

PC是否在域中?
我以前在域上使用过 schtasks,它可以在没有/ruand的情况下工作/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

需要注意的是;
- 显然,将 x 替换为您需要的 IP,并将 USERNAME 和 PASSWORD 替换为相关数据
- 我使用/sc once /st START_TIME的是 ,而不是你的/sc daily /mo 1,但这不应该有所作为
- 我已经添加了/itwhich(取自 CMD)“Enalbes交互式运行的任务...”(根据我的经验,不使用它会导致问题)
-我正在为其安排任务的笔记本电脑上的用户在我运行 schtasks 的笔记本电脑上不存在
-我运行的笔记本电脑上的用户schtasks from 在我为其安排任务的笔记本电脑上不存在(因此客户端/主机上不存在的用户无关紧要)

于 2012-10-26T23:14:00.877 回答