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

Удаление обновлений Office, установленных в определенный день

Я хочу удалить некоторые обновления Windows, которые вызывают проблемы с функцией поиска Outlooks. Обновления были установлены вчера, поэтому мой подход будет выглядеть примерно так: «Список всех обновлений с датой развертывания xx-xx-xxxx yy: yy: yy» и прокрутить результат с помощью команды удаления. Пока что теоретическая часть.

Когда я пытаюсь перечислить обновления в командной строке или PowerShell, я получаю неполные результаты (по крайней мере, при сравнении их с панелью управления):

Я нашел несколько способов перечислить обновления с помощью запроса Powershell или WMI, но ни один из них не возвращает правильные результаты:

wmic qfe список (видимо, самый известный способ сделать это):

PS C:\Windows\system32> wmic qfe list
Caption                                     CSName       Description      FixComments  HotFixID   InstallDate  InstalledBy          InstalledOn  Name  ServicePackInEffect  Status
http://support.microsoft.com/?kbid=3199986  SRV-CS-TS01  Update                        KB3199986               NT-AUTORITÄT\SYSTEM  11/20/2016
http://support.microsoft.com/?kbid=3202790  SRV-CS-TS01  Security Update               KB3202790               NT-AUTORITÄT\SYSTEM  5/16/2017
http://support.microsoft.com/?kbid=4013418  SRV-CS-TS01  Update                        KB4013418               NT-AUTORITÄT\SYSTEM  5/30/2017
http://support.microsoft.com/?kbid=4023834  SRV-CS-TS01  Update                        KB4023834               NT-AUTORITÄT\SYSTEM  6/26/2017
http://support.microsoft.com/?kbid=4035631  SRV-CS-TS01  Update                        KB4035631               NT-AUTORITÄT\SYSTEM  8/21/2017
http://support.microsoft.com/?kbid=4049065  SRV-CS-TS01  Update                        KB4049065               NT-AUTORITÄT\SYSTEM  11/21/2017
http://support.microsoft.com/?kbid=4093137  SRV-CS-TS01  Update                        KB4093137               NT-AUTORITÄT\SYSTEM  4/23/2018
http://support.microsoft.com/?kbid=4132216  SRV-CS-TS01  Update                        KB4132216               NT-AUTORITÄT\SYSTEM  6/14/2018
http://support.microsoft.com/?kbid=4465659  SRV-CS-TS01  Security Update               KB4465659               NT-AUTORITÄT\SYSTEM  11/15/2018
http://support.microsoft.com/?kbid=4467694  SRV-CS-TS01  Security Update               KB4467694               NT-AUTORITÄT\SYSTEM  11/15/2018
http://support.microsoft.com/?kbid=4471331  SRV-CS-TS01  Security Update               KB4471331               NT-AUTORITÄT\SYSTEM  12/18/2018
http://support.microsoft.com/?kbid=4471321  SRV-CS-TS01  Security Update               KB4471321               NT-AUTORITÄT\SYSTEM  12/18/2018

Get-WMIObject из win32_quickfixengineering:

PS C:\Windows\system32> Get-WmiObject -Class "win32_quickfixengineering"

Source        Description      HotFixID      InstalledBy          InstalledOn
------        -----------      --------      -----------          -----------
SRV-CS-TS01   Update           KB3199986     NT-AUTORITÄT\SYSTEM  20.11.2016 00:00:00
SRV-CS-TS01   Security Update  KB3202790     NT-AUTORITÄT\SYSTEM  16.05.2017 00:00:00
SRV-CS-TS01   Update           KB4013418     NT-AUTORITÄT\SYSTEM  30.05.2017 00:00:00
SRV-CS-TS01   Update           KB4023834     NT-AUTORITÄT\SYSTEM  26.06.2017 00:00:00
SRV-CS-TS01   Update           KB4035631     NT-AUTORITÄT\SYSTEM  21.08.2017 00:00:00
SRV-CS-TS01   Update           KB4049065     NT-AUTORITÄT\SYSTEM  21.11.2017 00:00:00
SRV-CS-TS01   Update           KB4093137     NT-AUTORITÄT\SYSTEM  23.04.2018 00:00:00
SRV-CS-TS01   Update           KB4132216     NT-AUTORITÄT\SYSTEM  14.06.2018 00:00:00
SRV-CS-TS01   Security Update  KB4465659     NT-AUTORITÄT\SYSTEM  15.11.2018 00:00:00
SRV-CS-TS01   Security Update  KB4467694     NT-AUTORITÄT\SYSTEM  15.11.2018 00:00:00
SRV-CS-TS01   Security Update  KB4471331     NT-AUTORITÄT\SYSTEM  18.12.2018 00:00:00
SRV-CS-TS01   Security Update  KB4471321     NT-AUTORITÄT\SYSTEM  18.12.2018 00:00:00

Результат обеих команд основан на одном и том же запросе WMI, поэтому я не ожидал, что здесь будут разные результаты ... Некоторые другие командлеты Powershell, которые я пробовал, предоставили тот же результат (Get-WindowsUpdate из галереи Powershell - «Install-Module -Name PSWindowsUpdate ", Get-Hotfix)

Я попробовал Get-MSIPatchInfo из https://github.com/heaths/psmsi/wiki/Get-MSIPatchInfo - в котором перечислено довольно много патчей и соответствует моему списку в панели управления. Подробная информация о патчах раскрывает PatchCode, ProductCode, State, Displayname и логическое поле, если патч можно удалить, бот нет даты установки.

Правильно ли я предполагаю, что здесь перечислены только последние исправления, которые можно удалить примерно так:

Get-MSIPatchInfo | Where-Object {$_.DisplayName -like "*office*"} | Uninstall-MSIPatch -Force

Посмотрите на модуль Windows Update Powershell install-module pswindowsupdate так как это может быть простой способ сделать это

$history = Get-WUHistory -MaxDate (Get-Date).AddDays(-14)

или сколько дней вам нужно, чтобы на один день выйти за рамки желаемой даты. Вставьте переменную, чтобы увидеть, есть ли у вас обновления, которые вы ищете write-host $history

Отфильтруйте это по дате, которую вы ищете

$filterHistory = $history |Where-Object{$_.Date.tostring('yyyy-MM-dd') -like ((get-date).adddays(-13)).tostring('yyyy-MM-dd') -and $_.KB}

Последний -and $ _. KB гарантирует, что вы получаете только объекты с KBArticleID.

Затем передайте это в Remove-WindowsUpdate

$filterHistory | Remove-WindowsUpdate -KBArticleID $_.KB -whatif

удалите это -whatif, если вас устраивает то, что он будет делать.