我有一个简单的 powershell 脚本,它根据 WSUS 中的计算机组名称取消批准所有补丁,效果很好。
我们所有的服务器都在特定的日期/周/时间打补丁,从第 0 周星期三开始,也就是微软补丁星期二(每月的第二个星期二)后的星期三,一直到第 3 周星期日。这显然会导致问题,因为有时并非所有补丁都会在一个重新启动周期内应用,然后会在下一周的组策略计划补丁日期/时间安装补丁,而这正是我试图阻止的。
我的问题是我试图根据此时间表安排我的脚本运行,但我发现使用 Windows 任务计划程序几乎不可能做到这一点。例如,如果我想让某项任务始终在 Microsoft 补丁星期二之后的第四个星期一运行,我不能总是使用任务计划程序选项“每月第四个星期一”
有没有人遇到过类似的情况,或者知道任何比 Windows 任务计划程序更灵活的任务计划工具?
答案1
这会相当复杂,但可能会有用。您需要结合计划任务和脚本。
- 在周二补丁日运行一项任务,并在特定目录中设置一个标志文件,其内容设置为“0”
- 每周一运行一个查找标志文件的脚本
- 如果找到标志文件,则读取它并将找到的值加 1
- 如果标志文件为 3(第 4 周),则删除标志文件并运行更新脚本
您可以通过重命名文件而不是编辑内容来实现此目的