按日期卸载 MS 更新的脚本

按日期卸载 MS 更新的脚本

我遇到的情况是,我需要在某个日期之前卸载所有 Windows 更新,以解决一个奇怪的错误。我找到了几个 vb/ps 脚本来执行此操作

删除单个更新

然而,我试图找到类似于日期 > 1/9/13 的东西来摆脱它!

我之所以问这个问题,是因为我觉得我时不时会遇到这种情况,而且会花费很多时间。有什么想法吗?

我还发现了以下内容

wmic qfe get hotfixid,installedon | findstr %01/09/13% >> c:\list.txt

但这似乎没有返回准确的结果集

我目前正在使用 Windows Server 2003 机器。提前致谢。

答案1

以下是使用 VBScript 按日期过滤修补程序的方法。如果需要,您可以轻松地将其转换为 PowerShell,或者只需调用 PowerShell 代码即可删除与过滤器匹配的每个修补程序。

出错时继续下一步
暗淡字符串计算机
昏暗的 objWMIService
昏暗的 propValue
昏暗的 objItem
昏暗的 SWBemlocator
暗淡的用户名
暗码
昏暗的 colItems

昏暗日期筛选器

dateFilter = CDate("2013 年 1 月 9 日")

strComputer = "."
用户名 = “”
密码 = “”
设置 SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
设置 objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",用户名,密码)
设置 colItems = objWMIService.ExecQuery("从 Win32_QuickFixEngineering 中选择 *",,48)
对于 colItems 中的每个 objItem
    hotFixID = objItem.HotFixID
    安装日期 = objItem.安装日期

    如果 IsNull(installDate) 或 Trim(installDate) = "" 那么
        安装日期 = objItem.InstalledOn
    万一

    如果 IsDate(安装日期) 那么
        如果 CDate(installDate) > dateFilter 则
            WScript.Echo hotFixID & vbTab & installDate

            ' 调用删除修补程序脚本或代码,并将 hotFixID 和(可选)计算机名称传递给它
        万一
    万一
下一个

相关内容