删除多个远程服务器上的任务

Delete task on multiple remote servers

我可以运行此命令行删除单个远程服务器上的任务:
SCHTASKS /delete /tn "testTask" /s (hostname) 并且效果很好。

但是我需要能够从一个命令行或批处理文件在多台服务器上执行相同的操作。我已经尝试针对文本文件中提供的服务器列表使用 运行 的 for 循环选项,但似乎它没有读取该文本文件。这是示例:

For /F %f in (c:\temp\testservers.txt) do schtasks /delete /tn "testTask"

它输出此错误:指定的任务名称 "testTask" 在系统中不存在。它似乎是在我的笔记本电脑上搜索任务,而不是在 .txt 文件中提供的远程服务器上搜索任务。 (任务确实存在于远程服务器上)

我使用相同的 For 循环命令在参数略有不同的多台服务器上创建任务,但效果很好。任何帮助将不胜感激。如果您需要任何说明,请告诉我。

我认为您只是忘记在 Delete 命令后添加 %f 参数,该命令不使用与 Create 命令相同的参数,如 this MSDN page:

中所述
schtasks /delete /tn {<TaskName> | *} [/f] [/s <Computer> [/u [<Domain>\]<User> [/p <Password>]]]

所以你应该试试 :

For /F %f in (c:\temp\testservers.txt) do schtasks /delete /tn "testTask" /s %f

要将结果记录在文件中,请使用如下内容:

For /F %f in (c:\temp\testservers.txt) do schtasks /delete /tn "testTask" /s %f >> C:\Mylogs\TaskDeletions.log