应用组策略时运行脚本(而不是在登录或启动时)

应用组策略时运行脚本(而不是在登录或启动时)

我该如何让一组计算机上的 Powershell 脚本在计算机开启时全天定期运行?(我们已经使用了“启动时”或“登录时”,但有些计算机几天都没有登录。我们也不能使用常规的计划任务,因为这些脚本会将数据报告给服务器,我们不希望 300 台计算机同时访问服务器。我们还希望避免让脚本一直运行,并由脚本确定延迟,因为它有时会崩溃。)

有没有办法:

  • 在应用 GPO 时运行脚本(我认为启动后以 90 分钟的间隔运行,整个建筑物内都会错开)?
  • 以不定期间隔运行脚本(例如,每隔一个间隔将在 60-80 分钟之间)或在一天中的随机时间范围内运行脚本(例如,每天下午 1 点到 2 点之间的某个时间)。我怀疑这个是否可行?

    我猜想将其作为计划任务执行的一种方法是在脚本开始时随机延迟 0-5 分钟,但我们希望在测试时或在启动或登录时调用时避免这种延迟。

  • 答案1

    有没有办法在应用 GPO 时运行脚本?

    是的。您可以创建一个计划任务,当特定事件发生时触发该任务:

    在一次活动中

    当特定事件条目添加到事件日志时,此触发器会导致任务运行。您可以选择指定基本事件触发器设置或自定义事件触发器设置。如果您选择基本事件触发器设置,则特定事件日志中的单个事件将触发任务。您可以选择包含事件的事件日志、事件发布者名称,并指定事件标识符。

    来源触发器

    触发器所需的 eventID 可能是 8006:

    组策略服务保留 8000 至 8007 之间的事件 ID,以指示特定类型的组策略处理已成功完成。

    在此处输入图片描述

    来源使用事件日志排除组策略故障

    答案2

    看来,组策略管理编辑器,在计算机配置/首选项/控制面板设置/计划任务中,允许您创建一个“立即任务”,专门用于在 GPO 刷新后运行任务。

    配置即时任务项(至少 Windows 7)

    对于运行 Windows Server® 2012 或 Windows® 8 的计算机,“即时任务(至少为 Windows 7)”首选项(如果运行 Windows Server® 2008 R2 或 Windows® 7,则为“即时任务(Windows Vista 及更高版本)”首选项)允许您创建立即运行的任务,然后在每次刷新组策略时将其删除。“即时任务”首选项不提供操作或触发器的选择,因为它们总是创建一个任务,然后在运行后将其删除。

    唯一的问题是我必须指定一个有效的用户才能以该用户身份运行(在本例中为“NT AUTHORITY\SYSTEM”),而且它完全按照我想要的方式工作。

    相关内容