Показать полную графическую версию : [решено] Удаление сразу ВСЕХ апдейтов.
sputnikk
19-07-2015, 07:35
Здравствуйте.
Приспичило снести все апдейты на виртуальной 7. Нашёл только такой способ http://www.cyberforum.ru/post7455021.html . Но он медленный, поскольку удаляет всё последовательно.
Может вам известен более быстрый вариант? Например загрузится с DVD и за несколько секунд снести всё через командную строку ?
P.S. Понадобилось, чтоб удалить непубличные обновления из пакета Simplix. Поскольку не знаю, что лишнее, удалю всё.
sputnikk
19-07-2015, 08:30
Итог эксперимента.
Батник не смог удалить 5 апдейтов , хотя удаляет через строку от имени администратора.
wusa.exe /uninstall /HotFixID /quiet /norestart
wusa.exe /uninstall /KB:2533552 /quiet /norestart
wusa.exe /uninstall /KB:2884256 /quiet /norestart
wusa.exe /uninstall /KB:3020369 /quiet /norestart
wusa.exe /uninstall /KB:3020370 /quiet /norestart
wusa.exe /uninstall /KB:976902 /quiet /norestart
Но и вручную не могу. Может чего не хватает. В меню не появляется кнопка "удалить".
http://s020.radikal.ru/i708/1507/e3/607d472af5ddt.jpg (http://radikal.ru/fp/1da710031f8e412a8bbc8bff0041be9a)
sputnikk, быстрее будет установить ОС с нуля.
Может вам известен более быстрый вариант? »
Конечно. Нормальный дистрибутив надо брать, а не сборку с кучей интегрированного, чтобы потом эту кучу вырезать - гениально :)
sputnikk
19-07-2015, 09:40
Blast, Пакет simplix - не дистрибутив http://forum.oszone.net/thread-257198.html
Продолжение.
Есть и отрицательная сторона удаления с помощью батника. Вин 7 больше не может найти обновления, только загружает проц на 50% процессом svchost.exe, при 0% активности диска. Автофикс и переустановка центра обновления не помогли.
Может особенность VirtualBox. Так было на новейших 4.3.30 и 5.0.0. Поэтому вернулся на 4.3.28. На ней обновление снова заработало, пока не удалил почти все апдейты.
Ясно, любите шорох орехов? :)
sputnikk
19-07-2015, 09:44
любите шорох орехов? »Не понял метафоры )
http://anekdot.me/wiki/3590
sputnikk
19-07-2015, 10:19
Да, развлекаюсь войной с глюками. Наверно в прошлой жизни был сисадмином )
Вопрос остаётся открытым. Как ещё можно удалить все апдейты сразу без переустановки ОС?
Быстро - никак. Только откат на точку до их установки.
Для облегчения процесса удаления обновлений, можете формировать список установленных самостоятельно, не полагаясь на сторонние батники. И делать свой командный файл для их удаления.
Формирование списка обновлений:wmic qfe get hotfixid | findstr KB >> %userprofile%\desktop\updates.txtНа рабочем столе будет создан файл updates.txt со списком всех установленных в системе обновлений.for /f %i in ('type %userprofile%\desktop\updates.txt') do echo wusa /uninstall /kb:%i /quiet /norestart >> %userprofile%\desktop\updates_uninstall.cmdНа рабочем столе будет создан файл updates_uninstall.cmd со строками удаления всех установленных обновлений, сформированный на основании ранее полученного списка.
А если хотите сделать правильно, возьмите нормальный чистый дистрибутив, установите на него обновления из WU, которые придут для вашей системы, а потом интегрируйте их на случай переустановок. Все равно игрища с пакетами до добра не доведут, рано или поздно :)
sputnikk
19-07-2015, 10:57
Спасибо.
Dzirt2005
19-07-2015, 11:20
Небольшое уточнение. wmic qfe get hotfixid вернет список установленных обновлений, но у каждого из них номер будет указан с KB, то есть вот так:
KB958488
KB976902
KB982018
...
Если его просто через wusa /uninstall /kb:%i /quiet ... направить в выходной файл, то команды работать не будут - в ключе /kb: должен быть номер без начальных KB.
Вот такой пакетный файл сформирует правильно:
@echo off
set UNINSTALL_CMD="%USERPROFILE%\Desktop\updates_uninstall.cmd"
echo @echo off>%UNINSTALL_CMD%
setlocal EnableDelayedExpansion
for /f "usebackq" %%I in (`wmic qfe get hotfixid ^| findstr KB`) do (
set KB=%%I
set NUM=!KB:KB=!
echo echo Uninstalling %%I...>>%UNINSTALL_CMD%
echo start /w wusa.exe /uninstall /quiet /norestart /kb:!NUM!>>%UNINSTALL_CMD%
)
echo pause>>%UNINSTALL_CMD%
также вместо формирования пакетного файла для удалений можно просто сразу эти обновления удалять, для этого нужно в строках 9 и 10 убрать первое слово echo, а 3-ю и последние строки можно удалить или закоментарить.
Да, спасибо, я не учел наличие KB в списке.
Добавлено:
Можно еще в PS:Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} | % {$_ -replace "KB", ""} | Set-Content "$Env:userprofile\Desktop\updates.txt"
$HotFixIDs = (gc "$Env:userprofile\Desktop\updates.txt")
Foreach($HotfixID in $HotFixIDs) {wusa /uninstall /KB:$HotfixID /norestart /quiet
Write-Host "Удаление KB$HotFixID"
Wait-Process wusa
Start-Sleep -s 3}
Midnight Kid
17-03-2019, 19:47
Батник не смог удалить 5 апдейтов, хотя удаляет через строку от имени администратора.
wusa.exe /uninstall /KB:2533552 /quiet /norestart
wusa.exe /uninstall /KB:2884256 /quiet /norestart
wusa.exe /uninstall /KB:3020369 /quiet /norestart
wusa.exe /uninstall /KB:3020370 /quiet /norestart
wusa.exe /uninstall /KB:976902 /quiet /norestart
Но и вручную не могу. Может чего не хватает. В меню не появляется кнопка "удалить".»
976902 - это Service Pack 1. Так что он и не должен удаляться в принципе.
А вот с 2533552; 2884256; 3020369; 3020370; 3161102 (и подобными им) другая проблема.
Они почему-то числятся как "легитимные", потому их невозможно удалить ни соответствующей кнопкой в Центре Обновлений, ни через BAT-скрипт. К тому же, на самом деле часть из них - вредоносные. В частности это касается 3020370 и 3161102.
Но дать право на их удаление возможно. Но придется помучаться.
Все установленные обновления Windows хранятся в пути C:\Windows\servicing\Packages.
К каждому установленному обновлению относятся определенные файлы, в имени которых фигурирует KB-номер. Как правило, количество таких файлов колебается от 4 до 6 для каждого обновления, (у 976932 таких файлов 5).
Например, у обновления 3020370 6 файлов:
Package_1_for_KB3020370~31bf3856ad364e35~x86~~6.1.1.17514.cat
Package_1_for_KB3020370~31bf3856ad364e35~x86~~6.1.1.17514.mum
Package_for_KB3020370~31bf3856ad364e35~x86~~6.1.1.17514.mum
Package_for_KB3020370_RTM~31bf3856ad364e35~x86~~6.1.1.17514.cat
Package_for_KB3020370_RTM~31bf3856ad364e35~x86~~6.1.1.17514.mum
Package_for_KB3020370~31bf3856ad364e35~x86~~6.1.1.17514.cat
Эти файлы в свойствах должны иметь только одного владельца для удаления. В данном случае, тебя. После чего к этим файлам нужно сделать полный доступ к чтению, удалению и т. д. Все это делается во вкладке "Безопасность".
Как только все файлы одного обновления пройдут процесс получения полного доступа к ним, при перезагрузке Центра Обновлений кнопка "Удалить" появится при выборе обновления, в данном случае, 3020370. Более того, теперь его можно удалить через BAT-скрипт.
То же самое надо сделать с другими обновлениями. Да, это тяжко, но иначе никак.
Хотя, программка Take Ownership немножко упростит это дело. Она даст возможность удалить эти файлы хотя бы вручную.
В ней мы выбираем путь C:\Windows\servicing\Packages, и запускаем активацию прав доступа. Ждем, когда процесс закончится.
А потом спокойно вручную удаляем файлы.
Поскольку программа не дает полного доступа, кнопка "Удалить" в Центре Обновлений не появится. Скорее всего, в этом случае, через BAT-скрипт удаление тоже не пройдет (лично не пробовал).
Как-то вот так вот.
sputnikk
18-03-2019, 06:00
А вот с 2533552; 2884256; 3020369; 3020370; 3161102 (и подобными им) другая проблема »не помню, может они ставятся с дистрибутива при установке ОС
Midnight Kid
18-03-2019, 15:08
не помню, может они ставятся с дистрибутива при установке ОС »
Точно не с чистой. Разве что сборка имела интегрированные обновления.
Кстати, нашел альтернативу, как отобразить кнопку "Удалить". Такие "критические" обновления изначально делаются перманентными, чтобы их нельзя было удалить штатно.
Но есть решение сделать их удаляемыми по ссылке:
https://borncity.com/win/2016/10/21/windows-updates-fehlende-deinstallation-erzwingen/
Это в дополнение к тому, что я в предыдущем посте накатал.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.