Обновления для операционной системы Windows выпускаются в виде файлов с расширением MSU или CAB. Если на компьютере не работает (отключена) служба Windows Update (Центр обновления Windows), вы можете скачать и установить накопительные обновления или обновления безопасности Windows вручную. В этой статье мы покажем, как скачать и установить в Windows обновления в формате MSU и CAB файлов.
Как вручную скачать MSU файлы обновлений для Windows?
Microsoft выпускает обновления и патчи в формате CAB файла. Именно в таком виде ваш компьютер получает обновления с серверов обновлений Microsoft или локального сервера WSUS. Для более удобного ручного распространения отдельных обновлений клиентами через каталог обновлений Microsoft, такие CAB файлы упаковываются в специальный формат MSU (Microsoft Update Standalone Package).
Вы можете скачать MSU файлы обновлений Windows (а в некоторых случаях и CAB) и других продуктов MSFT можно в каталоге обновлений Microsoft (https://www.catalog.update.microsoft.com/). Перейдите в Microsoft Update Catalog, найдите и скачайте нужное обновление. К примеру, я хочу установить обновление стека 2022-05 Servicing Stack Update for Windows 10 Version 21H2 for x64-based Systems (KB5014032). Нажмите на кнопку Download.
Переместите скачанный файл ssu-19041.1704-x64_70e350118b85fdae082ab7fde8165a947341ba1a.msu в каталог C:\temp. Переименуйте файл на более короткое имя — windows10-21h2-kb5014032.msu.
Установка обновлений из MSU файлов в Windows
Для запуска установки пакета обновления в Windows достаточно дважды щёлкнуть по скачанному MSU файлу. Если обновление применимо к данному компьютеру, откроется диалоговое окно Автономного установщика обновлений Windows (Windows Update Standalone Installer), в котором нужно подтвердить установку апдейта.
Также вы можете установить msu пакет обновления из командной строки с помощью утилиты wusa.exe.
Для установки обновления в «тихом» режиме (пользователю не будут показываться никакие всплывающие окна) с отложенной перезагрузкой, откройте командную строку с правами администратора и выполните команду:
wusa.exe c:\Temp\windows10-21h2-kb5014032.msu /quiet /norestart
Через некоторое время проверьте, что обновление успешно установлено:
wmic qfe list | findstr 5014032
Или найдя в журнале событий Установка (Event Viewer -> Windows Logs -> Setup) запись с Event ID 2 от источника WUSA с текстом:
Windows update "Security Update for Windows (KB5014032)" was successfully installed. (Command line: "wusa.exe c:\Temp\windows10-21h2-kb5014032.msu /quiet /norestart ")
Обновление Windows "Security Update for Windows (KB5014032)" было успешно установлено. (Командная строка: C:\Windows\system32\wusa.exe c:\Temp\windows10-21h2-kb5014032.msu /quiet /norestart)
Как извлечь CAB файл из MSU обновления?
Если служба Windows Update (wuausrv) работает некорректно, вы не сможете установить обновление из MSU файла. В этом случае можно вручную распаковать пакет MSU, извлечь из него CAB файл обновления и вручную установить его в Windows.
Чтобы распаковать MSU пакет в каталог C:\Temp\kb4056887 (каталог нужно предварительно создать), выполните следующую команду:
expand -f:* “C:\Temp\windows10.0-kb4056887-x64.msu” C:\Temp\kb4056887
Microsoft (R) File Expansion Utility Version 10.0.10011.16384 Copyright (c) Microsoft Corporation. All rights reserved. Adding C:\Temp\kb4056887\WSUSSCAN.cab to Extraction Queue Adding C:\Temp\kb4056887\Windows10.0-KB4056887-x64.cab to Extraction Queue Adding C:\Temp\kb4056887\Windows10.0-KB4056887-x64-pkgProperties.txt to Extraction Queue Adding C:\Temp\kb4056887\Windows10.0-KB4056887-x64.xml to Extraction Queue Expanding Files .... Expanding Files Complete ... 4 files total.
Как вы видите в каталоге появилось 4 типа файлов:
- .xml файл (Windows10.0-KB4056887-x64.xml) — содержит метаданные пакета msu и используется программой Wusa.exe
- .cab файл (Windows10.0-KB4056887-x64.cab — один или несколько) – непосредственно архив с обновлением Windows
- *pkgProperties.txt файл (Windows10.0-KB4056887-x64-pkgProperties.txt)– содержит свойства пакета (дата выпуска, архитектура, тип пакета, ссылка на KB и т.д.)
Также вы можете открыть любой MSU файла с помощью утилиты 7-ZIP и извлечь из него CAB файл.
Установка CAB файла обновлений в Windows 10/11
Вы можете установить CAB файл обновления в Windows двумя способами.
Наиболее универсальный способ установки обновления из CAB файл – утилита DISM.exe. Команда установки может быть такой:
DISM.exe /Online /Add-Package /PackagePath:c:\Temp\kb4056887\Windows10.0-KB4056887-x64.cab
Deployment Image Servicing and Management tool Version: 10.0.10240.16384 Image Version: 10.0.10240.16384 Processing 1 of 1 - Adding package Package_for_KB4056887~31bf3856ad364e35~amd64~~10.0.1.0 [==========================100.0%==========================] The operation completed successfully.
Если нужно установить CAB пакет в тихом режиме и подавить запрос на перезагрузку компьютера после установки обновления, команда DISM будет такой:
start /wait DISM.exe /Online /Add-Package /PackagePath: c:\Temp\kb4056887\Windows10.0-KB4056887-x64.cab /Quiet /NoRestart
Команда DISM.exe /Add-Package позволяет установить и MSU обновление (поддерживается только установка в офлайн образ Windows). Также вы можете в параметре
/PackagePath
указать путь к каталогу, в котором хранятся MSU и CAB файлы обновлений. DISM рекурсивно просканирует указанные каталог и вложенные папки и установит в образ Windows все найденные CAB и MSU пакеты.
Для установки CAB файлов в образ Windows вместо команды DISM /Add-Package можно использовать PowerShell командлет
Add-WindowsPackage -Online -PackagePath "C:\win10_kb123456.cab"
В Windows 8 и Windows 7 можно установить обновление с помощью менеджера пакетов Pkgmgr. Команда:
start /w Pkgmgr /ip /m:c:"c:\Temp\kb4056887\Windows-KB123456.cab"
Note: The PkgMgr.exe has been deprecated. Please update your scripts to use dism.exe to extract, install, uninstall, configure and update features and packages for Windows.
Вы можете добавить в контекстное меню File Explorer контекстное меню для установки CAB файлов. Для этого добавьте следующие *.reg файл в реестр:
Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs] [HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs] @="Install" "HasLUAShield"="" [HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs\Command] @="cmd /k dism /online /add-package /packagepath:\"%1\""
Теперь для установки CAB файла нужно выбрать пункт Install в контекстном меню.
Установка CAB и MSU обновления с помощью скриптов
Если вам нужно установить сразу несколько CAB или MSU обновлений на компьютере, вы можете использовать BAT и PowerShell скрипты. Благодаря таким скриптам вам не придется по ставить обновления вручную по одному.
Создайте на диске каталог с обновлениями и скопируйте в него все MSU файлы, которые нужно обновить. Теперь для установки всех обновлений из указанного каталога, достаточно запустить скрипт install_msu.bat:
Set Folder="C:\updates"
for %%f in (%Folder%\*.msu) do (
wusa.exe %%f /quiet /norestart
)
По аналогии можно использовать PowerShell скрипт для установки MSU обновлений из указанной папки:
$dir = (Get-Item -Path c:\temp -Verbose).FullName
Foreach($item in (ls $dir *.msu -Name))
{
echo $item
$item = $dir + "\" + $item
wusa $item /quiet /norestart | Out-Null
}
Данная инструкция по ручной установке накопительных (если вы не помните что это такое, прочитайте статью про новую модель обновлений Windows систем) и любых других обновлений Windows применима ко всем поддерживаемым версиям ОС: Windows 11/10/8.1 и Windows Server 2022/2019/2016/2012R2.
Просто отличный мануал по использованиею MSU и CAB файлов в Windows Update — автору руспект.
Статья хорошая и обновления CAB и MSU распаковываются, устанавливаются без проблем.Однако у меня есть проблема с командами Dism в Windows 7 sp1 Home Premium x 64 .Я установил на Virtual box свой windows чтобы там посмотреть как правильно распаковать msu и cab обновления, чтобы получить пакеты обновлений для добавления в свой iso образ.Пакеты обновлений получил и стал тестировать команды dism.Этот список команд работает без проблем и в логе dism только info есть:
DISM.exe /Get-WimInfo /WimFile:C:\test\images\myimage.wim
DISM.exe /Mount-Wim /WimFile:C:\test\images\myimage.wim /index:2 /MountDir:C:\test\offline
DISM.exe /Get-MountedWimInfo — Проверяет подключенные образы
DISM.exe /Commit-Wim /MountDir:C:\test\offline — Сохраняет изменения образа
DISM.exe /Unmount-Wim /MountDir: /commit — Сохраняет и отключает образ
DISM.exe /Unmount-Wim /MountDir: /discard -отключает образ
DISM.exe /Cleanup-Wim -удаляет ресурсы с поврежденными образами
А вот при использовании команды:
DISM.exe /image:C:\test\offline /LogPath:C:\log\AddPackage.log /LogLevel:2 /Add-Package /PackagePath:C:\packages
В логе AddPackage при каждом успешном добавлении пакета обновления проблема возникает:
Warning DISM DISM Provider Store: PID=3388 Failed to Load the provider: C:\Users\Koks\AppData\Local\Temp\1DFA6FEB-EE3C-444A-B7E4-89A752AD4A9F\PEProvider.dll. — CDISMProviderStore::Internal_GetProvider(hr:0x8007007e)
И так warning возникает при добавлении любых обновлений.
Нужен совет как решить эту проблему.Также хотелось бы узнать из-за чего возникает warning.И интересует будет ли работать корректно мой образ win7 c добавленными пакетами обновлений с указанной выше проблемой.Или лучше пересобрать свой iso образ.
На мой взгляд, раз это всего лишь Warning, то проблем быть не должно.
В любом случае проверьте ваш wim образ с помощью dism /Cleanup-Image /CheckHealth и dism /cleanup-image /RestoreHealth
Вроде бы так:
DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:X:\Sources\Install.wim:1 /LimitAccess
Добрый день. Задача раскидать патчи по компам в домене. Будет ли работать следующая команда. Интересует именно скрипт/команда на wmi /cmd, т.к pshell remote не везде поднят. Спасибо.
============
wmic /node:»pc1″ /user:»admin» /privileges:enable process call create «DISM.exe /Online /Add-Package /PackagePath: c:\kb4012212.cab /Quiet /NoRestart»
============
Пока могу сказать лишь, что почему то не работает. Висит wuauclt.exe в процессах, но патч не ставится…Если не сложно укажите на ошибку.
В данном случае вы хотите установить обновления через cab файлы, а не MSU. Процесс wuauclt.exe при этом не используется. Установка обнвления напрямую в образ пойдет через DISM.
1) Вы предварительно скопировали на все компьютеры cab файл, чтобы он был везде доступен по пути c:\kb4012212.cab
2) Насколько я помню, через DISM можно было добавлять cab пакет даже по сети.
Попробуйте такую команду:
wmic /node:"pc1" process call create "DISM.exe /Online /Add-Package /PackagePath:\\server1\updates\kb4012212.cab"
А как найти и достать из cab конретную dll?
Файл CAB также можно распаковать как архив, но там нет именно dll файлов. Возможно какая-то инфа есть в .manifes, но врядли. Наверно проще всего сделать снимок системы, установить обовление, скопировать нужную dll и откатить состояние обратно.
В команде expand и на скрине выполнения этой команды есть ошибка: _ вместо —
Должно быть так:
expand -f:* “C:\Temp\windows10.0-kb4056887-x64.msu” C:\Temp\kb4056887
разобрался как выкачать и установить списком обновления через PSWindowsUpdate однако он делает все без перезгрузок. Но, требут ли какое то обновление перезегрузки после себя или нет или их можно все установить сразу без перегрузок? Имею ввиду только SECURITY ONLY QUALITY UPDATE минимальным списком?
У менл в папке скаченнные KB…msu 92 шт. Возможно как то вытащить из них cab файлы пакетом (как их качала PSWindowsUpdate) не по одному а сразу все?
Get-WURebootStatus
—позволяет проверить нужна ли перезагрузкаДля security обновления обычно нужна перезагрузка.
MSU файлы каждый в свою папку можно распаковать скриптом powershell/
достаточно поставить «*» вместо имени файла, но вот при попытке установки пакетом когда уже распакованы cab’ы «*» уже не срабатывает почему-то …
upd
чтобы запустить установку нескольких cab’ов в параметре «/PackagePath:» нужно указать путь, а не конкретный файл.
А как извлечь GUID из MSU пакета? Обновления скачаны, и интернет более недоступен. А обновления надо импортировать во WSUS
Я знаю только такой сценарий импорта обнвлений во WSUS: https://winitpro.ru/index.php/2017/09/21/wsus-ruchnoj-import-obnovlenij-iz-microsoft-update-catalog/
Другие методы не приходилось использовать, офоциальных средств вроде и не было. Так что есть риск что-то поломать
Автор статьи сам даже не пробовал скачать LanguagePack , когда попробует — пусть напишет и приведет пример этой скачки, например Ukrainian LanguagePack for windows 10 1903… и да, СервисСтэк отлично скачивается, как и НакопительноеОбновление..
Вот когда скачает LanguagePack , тогда и эта статья будет иметь смысл.. А так — кто-то,откуда-то красиво переписал себе на сайт, даже не проверив.. пипл хайпает короче..
пардон, попал на эту страницу сайта по пересылке с предыдущей статьи о смене\закачке интерфейса Виндовс10, в которой автор отсылает сюда — типо — вот, смотри как надо качать…
При попытке установить CAB :
Add-WindowsPackage -Online -PackagePath «c:\temp\windows10_0-kb5033369-x64.cab» ПРЕДУПРЕЖДЕНИЕ: Не удалось добавить пакет c:\temp\windows10_0-kb5033369-x64.cab ПРЕДУПРЕЖДЕНИЕ: Сбой Add-WindowsPackage. Код ошибки: 0x80070002
Add-WindowsPackage : Не удается найти указанный файл.
строка:1 знак:1
+ Add-WindowsPackage -Online -PackagePath «c:\temp\windows10_0-kb503336 …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Add-WindowsPackage], COMException
+ FullyQualifiedErrorId : Microsoft.Dism.Commands.AddWindowsPackageCommand
Надо проверить путь:
Не удается найти указанный файл.
Сам создал на С папку temp и туда переместил файл .cab
Пытался сделать установку через DISM — тот же ответ — не могу найти файл
Попытался посмотреть правила использования опций DISM, но в списке не нашел опции PackagePath
после -PackagePath надо «:» поставить
Вот что отвечает мой DISM на попытку получить справку :
DISM /$PackagePath /?
Cистема DISM
Версия: 10.0.19041.3636
Не найден раздел справки для параметра $packagepath.
Укажите образ для просмотра соответствующих разделов справки с помощью
параметра командной строки /Image или /Online:
/Image:
Это путь к корневому каталогу автономного образа Windows.
Пример:
DISM.exe /Image:C:\test\offline /?
/Online
Указывает, что операция выполняется для запущенной установки Windows.
Пример:
DISM.exe /Online /?
подскажите пожалуйста как можно поставить cab обновления по списку? если их много? пробовал просто *.cab, но так не получается.
Скриптом проще всего. Складываете обновления в папку и затем:
Start /w for /R C:\updates %f in (*.cab) do DISM.exe /Online /Add-Package /PackagePath:"%f" /Quiet /NoRestart
а не подскажите что значит Ошибка: 2 Не удается найти указанный путь ? Папку проверил, пробовал и по шаре и просто с диска С