在多台服务器上运行命令

我想通过使用响应文件在多个服务器上运行基本命令,类似于如何ping多台服务器并返回它们的IP命令。 我可以从我的工作站运行命令,并返回所有的信息就好了。

schtasks /query /v /fo csv /nh >> \\my-pc\c$\temp\details_sched_tasks.csv 

PSExec支持计算机名称或IP作为参数的文本列表。

例:

 psexec /u domain\adminguy @computerlist.txt \\server\share\command_to_run.bat 

可以使用dsquery将服务器移植到列表中,然后使用psexec在远程计算机上使用输出执行schtask。 它看起来像这样。

 dsquery computer ou=serverOU,dc=microsoft,dc=com* -o rdn > list.txt FOR /F "tokens=1 delims=" %%a in ('type list.txt') DO psexec \\%%a schtasks /query /v /fo csv /nh >> \\my-pc\c$\temp\details_sched_tasks.csv 

这个选项效果最好。

计划任务的详细视图

  • 创build一个名为server_list.txt的文件,并提供您希望运行该命令的所有服务器的名称。
  • login到您希望运行该命令的域中的服务器。
  • 把文件放到d:\ temp这样的目录下,甚至是d:\的根目录下
  • 打开一个命令提示符,并转到您有你的服务器列表相同的目录。
  • 将下面的命令复制/粘贴到命令窗口中并按回车。

(server_list.txt)中的/ f%x do(schtasks / query / s%x / v / fo csv / nh >> d:\ sched d:\ sched_tasks.csv)