Я нахожусь в ситуации, когда мне нужно удалить все обновления 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