每次 Windows 更新后运行特定脚本

每次 Windows 更新后运行特定脚本

有没有办法在每次 Windows 更新完成时运行特定的脚本(即重新启动后或不需要重新启动的更新后)?

我的应用程序遇到MSCOMCTL.OCX 更新,并且似乎每次 Windows Update 更新时,都要求用户应用我的修复脚本。

编辑:适用于 Windows 7 及更高版本。

答案1

我认为,最终正确的答案是“修复您的应用程序”。但是,您可能由于多种原因无法修复。话虽如此...


哪个版本的 Windows?在 Vista/2008 及更高版本中,您可以将计划任务与特定事件 ID 绑定。在系统事件日志中,来自 WindowsUpdateClient 的事件 ID 19 表示WUA 更新安装成功

事件查看器 WindowsUpdateClient 事件 ID 19

启动任务计划程序管理单元taskschd.msc。右键单击“任务计划程序库”,然后选择“创建基本任务...”。

创建基本任务

在下一个屏幕中,输入名称和简短描述,然后单击“下一步”。

通用名称和描述

单击标有“当记录特定事件时”的单选按钮,单击“下一步”。

当记录特定事件时

选择“系统”作为日志,“WindowsUpdateClient”作为来源,“19”作为事件ID,单击“下一步”。

日志来源及事件ID

单击“启动程序”单选按钮,单击“下一步”。

启动程序

提供“修复”脚本或可执行文件的路径,单击“下一步”。

脚本路径

检查您的设置是否正确,然后单击“完成”。

在此处输入图片描述

现在,您将看到库中列出的包含您的设置的计划任务。


这是一个仅使用 的命令行示例C:\Windows\system32\schtasks.exe,XPath 过滤器语法花了我一段时间。看来任务计划程序仅使用 XPath 的子集

REM Create scheduled task triggered by WindowsUpdateClient event ID 19
schtasks /Create /TN "Post WUA Update Install" /TR "C:\scripts\your.fix.cmd" /SC ONEVENT /EC System /MO "*[System[Provider[@Name='Microsoft-Windows-WindowsUpdateClient'] and (EventID=19)]]"

相关内容