我们一次有大约 12-14 台 Win200[3,8] 服务器在线(一些虚拟机是临时的)。其中大多数运行一些计划任务。如何获取每台服务器上运行的所有计划任务的列表,更重要的是,它们运行的域用户?我们当然可以登录到每台服务器并询问,但我想知道是否有一些 powershell 或其他系统来执行此操作(或 Active Directory 中的某些东西?)
很高兴拥有它也可以在我们的 Windows XP 桌面上运行...不是要求,但更多的是仅供参考。谢谢!
我们一次有大约 12-14 台 Win200[3,8] 服务器在线(一些虚拟机是临时的)。其中大多数运行一些计划任务。如何获取每台服务器上运行的所有计划任务的列表,更重要的是,它们运行的域用户?我们当然可以登录到每台服务器并询问,但我想知道是否有一些 powershell 或其他系统来执行此操作(或 Active Directory 中的某些东西?)
很高兴拥有它也可以在我们的 Windows XP 桌面上运行...不是要求,但更多的是仅供参考。谢谢!
Schtasks 是您的朋友 - AT 很老,并且 (SFAIK) 不理解使用 schtasks 创建的任务。不幸的是,Win32_ScheduledTask WMI 对象是基于 AT 的,否则它将是完美的。
不幸的是,AT 和 schtasks 都没有报告作业运行的用户。可能在某个地方有一个 COM 对象可以让您做到这一点;也许你可以问stackoverflow?
如果你想编写脚本,你可能会做这样的事情:
这已成为一篇邪恶的代码文章 - 使用 /FO csv 选项转储到文本文件会更容易,使用 import-csv 将数据返回到 PS 中,但这样会丢失服务器名称。因此,您可以稍微炫耀一下并使用 foreach 枚举器进行自定义对象创建和修改。调用 MoveNext 会将您移至列表中的下一项,因此您跳过输出的第一个空行,然后将接下来的 4 行中的每一行都变成有用的东西。
内置的任务计划程序应该支持连接到远程计算机(就像大多数 Windows 工具一样)并管理远程计算机的任务(实际上还没有在 XP 中尝试过,但微软似乎说应该这样做)。
处理并可能列出计划任务的at 命令也可以连接到远程计算机。由于它是一个控制台命令,因此很容易编写脚本以连接到计算机列表并显示所有任务。反正理论上是^^