Назад | Перейти на главную страницу

Скрипт для удаления обновлений MS по дате

Я нахожусь в ситуации, когда мне нужно удалить все обновления Windows до определенной даты, чтобы устранить странную ошибку. Я нашел несколько скриптов vb / ps для этого

удалить одно обновление

Однако я пытаюсь добиться чего-то вроде того, где дата> 1/9/13, избавьтесь от этого!

Причина, по которой я спрашиваю, заключается в том, что я чувствую, что это то, с чем я время от времени сталкиваюсь, и это отнимает довольно много времени. Любые идеи ?

Я также нашел следующие

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

Однако, похоже, это не возвращает точный набор результатов

В настоящее время я работаю с ящиком Windows Server 2003. Заранее спасибо.

Вот один способ фильтрации исправлений по дате с помощью VBScript. Вы можете легко преобразовать его в PowerShell при необходимости или просто вызвать свой код PowerShell, чтобы удалить каждое исправление, соответствующее фильтру.

On Error Resume Next
Dim strComputer
Dim objWMIService
Dim propValue
Dim objItem
Dim SWBemlocator
Dim UserName
Dim Password
Dim colItems

Dim dateFilter

dateFilter = CDate("1/9/2013")

strComputer = "."
UserName = ""
Password = ""
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",UserName,Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_QuickFixEngineering",,48)
For Each objItem in colItems
    hotFixID = objItem.HotFixID
    installDate = objItem.InstallDate

    If IsNull(installDate) Or Trim(installDate) = "" Then
        installDate = objItem.InstalledOn
    End If

    If IsDate(installDate) Then
        If CDate(installDate) > dateFilter Then
            WScript.Echo hotFixID & vbTab & installDate

            ' Call your remove hotfix script or code and pass it the hotFixID and optionally, the machine name
        End If
    End If
Next