我的组织有一项政策,即在所有服务器和工作站上禁用任务计划程序(别问,我曾经试图与猪搏斗)。
我需要使用 Windows 7 或 Windows 2008 中的数据收集器集收集性能统计数据,但性能监视器界面要求任务计划程序正在运行。这可能吗,因为我没有尝试安排任何任务(除了每 15 秒收集一次 WMI 信息,但我怀疑它会将该任务交给任务计划程序)?有什么方法可以欺骗它认为任务计划程序正在运行吗?如果没有,有什么方法可以暂时覆盖组策略以允许任务计划程序运行?我发现大多数组策略都可以由管理员通过编辑注册表以这种方式覆盖。
同样,我想对我的一个工作站上的硬盘进行碎片整理,但由于依赖于任务计划程序,我无法启动它 - 是否有可能解决这个问题?
答案1
如果您真的想通过其他方式实现同样的目标,那么您最好提高脚本编写技能。如果您是您的处境,我会编写一个脚本,可能是 KIX 或 VBS,该脚本在启动时或类似情况下使用合适的凭据运行。我会创建一个循环,处理一个 INI 文件或类似的文件,其中包含 JOB 名称、TIME、DAY 字符串以及要执行的字符串。如果作业不会改变,您可以对作业进行硬编码。循环将持续运行,每个循环之间有一个 sleep X = 影响很小。sleep X 的值将决定作业的粒度。在每次传递中,您将进行字符串操作比较,如果 TIME、DAY 甚至 DATE 与当前时间匹配等,则执行命令字符串。我使用类似的脚本执行各种任务,但我发现如果它持续运行,它最终会由于 Windows 资源管理问题而失败。我通常会让脚本在固定时间或设定时间后自行终止,并生成另一个版本,从而释放资源等。
答案2
除了禁用任务调度程序几乎没有意义之外,它还极大地阻碍了服务器的内置功能。Windows Server 和客户端进行了重大转变,将自动和重复作业移至任务调度程序,而不是某些隐藏的操作系统界面。这确实很有意义,现在用户和系统作业都可以在一个地方找到和管理。你真的应该再和猪搏斗一次,带上绳子!
无论如何,实际上回答你的问题:
是的,性能监视器依赖于任务调度程序,因为它能够运行所谓的计划扫描。理论上,您可以使用不同的软件程序来自动执行任务,但性能监视器仍然无法工作,而且一旦您安装了用于任务自动化的程序,您就无法完全禁用任务调度程序,那么,为什么要禁用它呢?
作为管理员,您可以对覆盖 GPO 的注册表进行更改,但是,从理论上讲,下次将 GPO 推送到计算机时,它应该覆盖并恢复您的更改。
至于工作站,碎片整理程序应该在 Win7 上自动运行,事实上它“计划”每周运行一次。哦,它使用任务计划程序来执行!
长话短说,您确实需要讨论一下禁用任务计划程序背后的目的,这几乎没有意义,而且会对您的工作站及其自动预防性维护产生不利影响。毫无意义。