Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] Удаление сразу ВСЕХ апдейтов. (http://forum.oszone.net/showthread.php?t=302609)

sputnikk 19-07-2015 07:35 2530151

Удаление сразу ВСЕХ апдейтов.
 
Здравствуйте.

Приспичило снести все апдейты на виртуальной 7. Нашёл только такой способ http://www.cyberforum.ru/post7455021.html . Но он медленный, поскольку удаляет всё последовательно.
Может вам известен более быстрый вариант? Например загрузится с DVD и за несколько секунд снести всё через командную строку ?

P.S. Понадобилось, чтоб удалить непубличные обновления из пакета Simplix. Поскольку не знаю, что лишнее, удалю всё.

sputnikk 19-07-2015 08:30 2530159

Итог эксперимента.
Батник не смог удалить 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

Но и вручную не могу. Может чего не хватает. В меню не появляется кнопка "удалить".


Iska 19-07-2015 09:20 2530166

sputnikk, быстрее будет установить ОС с нуля.

Blast 19-07-2015 09:21 2530167

Цитата:

Цитата sputnikk
Может вам известен более быстрый вариант? »

Конечно. Нормальный дистрибутив надо брать, а не сборку с кучей интегрированного, чтобы потом эту кучу вырезать - гениально :)

sputnikk 19-07-2015 09:40 2530170

Blast, Пакет simplix - не дистрибутив http://forum.oszone.net/thread-257198.html

Продолжение.
Есть и отрицательная сторона удаления с помощью батника. Вин 7 больше не может найти обновления, только загружает проц на 50% процессом svchost.exe, при 0% активности диска. Автофикс и переустановка центра обновления не помогли.
Может особенность VirtualBox. Так было на новейших 4.3.30 и 5.0.0. Поэтому вернулся на 4.3.28. На ней обновление снова заработало, пока не удалил почти все апдейты.

Blast 19-07-2015 09:41 2530171

Ясно, любите шорох орехов? :)

sputnikk 19-07-2015 09:44 2530172

Цитата:

Цитата Blast
любите шорох орехов? »

Не понял метафоры )

Blast 19-07-2015 09:48 2530174

http://anekdot.me/wiki/3590

sputnikk 19-07-2015 10:19 2530177

Да, развлекаюсь войной с глюками. Наверно в прошлой жизни был сисадмином )
Вопрос остаётся открытым. Как ещё можно удалить все апдейты сразу без переустановки ОС?

Blast 19-07-2015 10:34 2530183

Быстро - никак. Только откат на точку до их установки.
Для облегчения процесса удаления обновлений, можете формировать список установленных самостоятельно, не полагаясь на сторонние батники. И делать свой командный файл для их удаления.
Формирование списка обновлений:
Код:

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 2530187

Спасибо.

Dzirt2005 19-07-2015 11:20 2530190

Небольшое уточнение. 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-ю и последние строки можно удалить или закоментарить.

Blast 19-07-2015 11:22 2530191

Да, спасибо, я не учел наличие 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 2863623

Цитата:

Цитата sputnikk
Батник не смог удалить 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 2863707

Цитата:

Цитата Midnight Kid
А вот с 2533552; 2884256; 3020369; 3020370; 3161102 (и подобными им) другая проблема »

не помню, может они ставятся с дистрибутива при установке ОС

Midnight Kid 18-03-2019 15:08 2863788

Цитата:

Цитата sputnikk
не помню, может они ставятся с дистрибутива при установке ОС »

Точно не с чистой. Разве что сборка имела интегрированные обновления.
Кстати, нашел альтернативу, как отобразить кнопку "Удалить". Такие "критические" обновления изначально делаются перманентными, чтобы их нельзя было удалить штатно.
Но есть решение сделать их удаляемыми по ссылке:
https://borncity.com/win/2016/10/21/...ion-erzwingen/
Это в дополнение к тому, что я в предыдущем посте накатал.


Время: 17:15.

Время: 17:15.
© OSzone.net 2001-