我遇到的情况是,我需要在某个日期之前卸载所有 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 和(可选)计算机名称传递给它 万一 万一 下一个