В этой инструкции мы покажем, как интегрировать новые пакеты обновлений системы в установочный офлайн образ Windows 10 / Windows 8.1 с помощью встроенных средств системы. Аналогичным образом вы можете добавить последние обновления безопасности в дистрибутив Windows Server 2012 R2 / 2016.
В этом примере мы покажем процесс добавления последних кумулятивных обновлений безопасности (от декабря 2018 года) в установочный образ Windows 10 1803. Итак, нам понадобятся:
- Установочный образ Windows 10 в ISO формате или его WIM файл;
- Обновления в формате .msu, которые нужно скачать с сервера обновлений Microsoft (как вручную скачать msu файлы обновлений).
На вашем компьютере создайте следующую структуру каталогов:
- C:\updates\mnt – папка, в которую нужно смонтировать файл install.wim с установочным образом Windows;
- C:\updates\msu – каталог, в который нужно поместить обновления для вашей версии Windows в формате MSU (в этом примере мы скачали 2 обновления безопасности для Windows 10 1803, вышедших в декабря 2018 в рамках Patch Tuesday — KB4471331 и KB4471324) ;
- C:\updates\Win10Image\ — в этот каталог нужно скопировать файл install.wim из вашего установочного образа Windows 10. В этом примере мы смонтировали и распаковали в него содержимое iso образа оригинального дистрибутива Windows10x64-1803.iso. Однако это может быть и wim файл из виртуальной машины, ее шаблона, образа WDS или образа, хранящегося в другой системе автоматического развертывания ОС (например, SCCM) и т.д.Если в вашем ISO образе Windows 10 есть только файл c:\sources\install.esd, вы сможете сконвертировать файл ESD в формат WIM с помощью утилиты DISM:
dism /export-image /SourceImageFile:"C:\updates\Win10Image\install.esd" /SourceIndex:4 /DestinationImageFile:C:\updates\Win10Image\win10pro.wim /Compress:max /CheckIntegrity
Смонтируйте файл c установочным образом Windows 10 (install.wim) в каталог C:\updates\mnt , выполнив в командной строке с правами администратора команду:
dism /mount-wim /wimfile:C:\updates\Win10Image\install.wim /index:1 /mountdir:C:\updates\mnt
DISM /Get-WimInfo /WimFile:C:\updates\Win10\install.wim
В нашем примере образ содержит только одну редакцию ОС — версию Windows 10 Pro с индексом 1, поэтому в команде мы указываем install.wim /index:1.
Теперь вы можете запустить процесс интеграции в образ Windows подходящих MSU обновлений, расположенных в указанном каталоге.
dism /image:C:\updates\mnt /add-package /packagepath:C:\updates\msu
Если система обнаружит неподходящее обновление (не соответствует версия ОС, разрядность или если обновление уже установлено), оно будет пропущено, а в лог C:\Windows\Logs\DISM\dism.log будет записана соответствующая информация.
Чтобы уменьшить размер образа за счет удаления файлов неиспользуемых обновлений (см. статью об очистке папки WinSxS), выполните команду:
dism /image:C:\updates\mnt /Cleanup-Image /StartComponentCleanup /ResetBase /ScratchDir:C:\Temp
Если в вашем распоряжении уже имеется компьютер с аналогичной версией Windows 10, на котором уже установлены последние обновления безопасности, вы можете получить все необходимые файлы обновления непосредственно с него. В этом случае вам не нужно вручную выбирать и скачивать MSU файлы обновлений из каталога обновлений Microsoft в Интернете. Дело в том, что Windows сохраняет все cab файлы обновлений, полученные с серверов Windows Update или сервера WSUS в каталог C:\Windows\SoftwareDistribution\Download.
Смонтируйте установочный Wim образ Windows, который вы хотите обновить:
dism /mount-wim /wimfile:C:\updates\Win10\install.wim /index:1 /mountdir:C:\updates\mnt
С помощью следующей команды вы запустите интеграцию в образ install.wim файлов обновлений, которые уже скачаны и установлены на другом компьютере, через локальную сеть:
Start /w for /R \\Win10x64Patched\C$\Windows\SoftwareDistribution\Download\ %f in (*.cab) do dism /image:C:\updates\mnt /add-package /packagepath:”%f”
В этом примере Win10x64Patched – имя компьютера, на котором уже установлены нужные обновления (версия и разрядность ОС должны совпадать). Естественно, что данный компьютер был доступен по сети, а ваша учетная запись должна обладать на нем правами администратора. В результате запуска команды, откроется новое окно, в котором можно наблюдать за процессом установки обновлений в офлайн образ Windows. DISM попробует добавить в ваш WIM образ Windows каждый найденный CAB файл на удаленном компьютере.
И последний шаг – нужно сохранить изменения и отключить смонтированный образ.
dism /unmount-wim /mountdir:C:\updates\mnt /commit
dism /Cleanup-Wim
Осталось скопировать полученный образ в install.wim в исходный каталог/виртуальную машину или пересобрать установочный iso образ, например, с помощью oscdimg), UltraISO или Dism++.
Если размер полученного install.wim файла более 4 Гб при установке образа Windows UEFI системе вы можете столкнуться с ошибкой «Windows cannot open the required file D:\sources\install.wim. Error code: 0x8007000D». В этом случае нужно разделить исходный install.wim на более маленькие файлы командой
dism /split-Image /imagefile:C:\Update\Win10Image\install.wim /swmfile:C:\Update\Win10Image\install.swm /filesize:4096
(см. статьи Создаем загрузочную USB флешку для UEFI с Windows 7 и Windows Server 2016).
После этого оригинальный install.wim можно удалить.
Теперь вы можете использовать ваш дистрибутив с интегрированными последними обновлениями безопасности для установки на компьютеры в вашей сети. Регулярно интегрируя последние обновления безопасности в ваш образ Windows, разворачиваемый на новых компьютерах, вы повышаете уровень защищенности своей инфраструктуры от последних уязвимостей и снижаете риски заражения новых компьютеров до того момента, когда они начнут обновляться со WSUS.
Спасибо. Отличные у Вас статьи..Вопрос вот в чем
Команда на Windows 8.1
Путь ”%U” не находит при интеграции.. Не подскажите как изменить??
Сергей, похоже в скрипте ошибка, вместо %U надо писать %f
Спасибо за статью!
Пробовал применить данный способ интеграции обновлений на ОС Windows 7 Enterprise с помощью скрипта:
Start /w for /R \\Win8x64Patched\C$\Windows\SoftwareDistribution\Download\ %f in (*.cab) do dism /image:C:\updates\mnt /add-package /packagepath:”%f”
Однако, при запуске скрипта открывается еще одно окно командной строки и там ничего не происходит. Приходится прерывать процесс.
Применим ли вообще данный метод для ОС Windows 7?
Методика для Win 8 и выше only
Start /w for /R \\lsm\C$\Windows\SoftwareDistribution\Download\ %f in (*.cab) do dism /image:C:\updates\mnt /add-package /packagepath:”%F”
У меня Windows 8.1 и тоже после применения данного скрипта открывается дополнительное окно консоли.
lsm имя моего ПК
Вся процедура выглядит так
1) монтируем wim файл
dism /mount-wim /wimfile:C:\updates\install.wim /index:1 /mountdir:C:\updates\mnt
2) Интегрируем обновления:
Start /w for /R \\lsm\C$\Windows\SoftwareDistribution\Download\ %f in (*.cab) do DISM /image:C:\updates\mnt /add-package /packagepath:”%f”
3) Отключаем wim файл
dism /unmount-wim /mountdir:C:\updates\mnt /commit
Коллеги, а в случае с WSUS как? Просто натравить на папку WsusContent в сети, а DISM сам разберет какие апдейты нужны (у меня на wsus для 7, 8, 2012R2, Office)?
Думаю, не получится, т.к. WSUS не хранит файлы обновлений в msu формате.
не работает у меня, ошибка при попытке открыть xxx.cab. ошибка 0x80070003 🙁
у меня тоже такая же ошибка, ошибка при попытке открыть xxx.cab. ошибка 0x80070003 что делать?
Можни ли интегрировать обновления установленные на другом разделе на том же компьютере?
Имеются в виду обновления из другой копии Windows на другом разделе? Если да, то можно при условии совпадении ОС и разрядности ОС.
Большое спасибо за статью! Интегрирую по этой инструкции обновления в Windows Server 2012 R2 ST. Интеграция обновлений из локальной папки (C:\updates\upd) выполняется у меня командой Start /w for /R D:\Win2012upd\Upd %f in (*.cab) do dism /image:D:\Win2012upd\mnt /add-package /packagepath:%f
, то есть, без кавычек у последнего симола %f.
У меня к вам вопрос, у меня WIM образ содержит 4 редакции системы, как я могу интегрировать обновления сразу во всех редакции? аргументы /index* и /index:* не подходят.
В своём ответе запутался в путях, реально у меня используются D:\Win2012upd\mnt и .\upd
Кстати, в случае добавления скачанных обновлений (скачивал с помощью WSUS Offline Update) в образ, лучше пользоваться командой Dism /Image:***\mnt /LogPath:AddPackage.log /Add-Package /PackagePath:****\upd\. Добавляются всё *.cab и *.msu файлы из указанной папки «upd».
Файл install.wim общий для всех четырех редакций в дистрибутиве. Так что интегрированные патчи будут актуальными сразу для всех.
Способ, который берёт обновления по сети с обновлённого ПК, не добавляет очень многие обновления.
Установил на виртуале:
IR5_CPRA_X64FREV_RU-RU_DV9
9600.17415.amd64fre.winblue_r4.141028-1500.
Обновил через WU. Применил указанные команды к WIM’y. Добавил его в ISO.
Поставил из ISO винду. Запросил проверку через WU.
Уже установленными оказались 45 обновлений (было в «чистом» образе 34).
При проверке WU показало:
Важных 73 (против 84 в «чистом»).
Необязательных 83 (против 87).
Т.о. интегрировался совершенный мизер — 11 штук.
Попробуйте после перезагрузки повторно выполнить поиск и установку обновлений, может быть дело в зависимостях
К сожалению при выполнении команды
PS C:\Windows\system32> Start /w for /R \2.becon.local\C$\Windows\SoftwareDistribution\Download\ %f in (*.cab) do dism
/image:D:\install\Images\Work\Mount1 /add-package /packagepath:»%f»
выдает ошибку
*.cab : The term ‘*.cab’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:83
+ … wnload\ %f in (*.cab) do dism /image:D:\install\Images\Work\Mount1 /add-package …
+ ~~~~~
+ CategoryInfo : ObjectNotFound: (*.cab:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
может что с синтаксисом не так? подскажите пожалуйста.
Команду запускаете из-под Windows 8?
Поправьте unc путь вместо \2.becon.local\ нужно \\2.becon.local\. Ну и кавычки в конце проверьте (то ли на сайте неверно отобразилось, то ли у вас ошибка)
слеш и ковычки это копипаст так отработал. Я походу сглупил, запускал команды из powershell, там видимо синтаксис другой, из под cmd процесс пошел но на каждое обновление выдает ошибки:
C:\Windows\system32>dism /image:D:\install\Images\Work\mnt /add-package /package
path:»\2.becon.local\C$\Windows\SoftwareDistribution\Download2e6be0eb49e28f5
7286fa457aa70048\outlfltr-x-none.cab»
Deployment Image Servicing and Management tool
Version: 6.3.9600.17031
Image Version: 6.3.9600.17031
Attempting to cancel the operation…
Error: 3
An error occurred trying to open — C:\Windows\system32\»2.becon.local\C$\Windo
ws\SoftwareDistribution\Download2e6be0eb49e28f57286fa457aa70048\outlfltr-x-non
e.cab» Error: 0x80070003
The DISM log file can be found at C:\Windows\Logs\DISM\dism.log
Пока погуглю но если ошибка знакома очень надеюсь на помощь!
запускаю под windows 2012 r2, образ и машина из этого образа с обновами на win8.1
У меня заработало вот так:
Start /w for /R «G:\updates» %f in (*.msu) do dism /image:G:\setup\mnt /add-package /packagepath:%f
Спасибо, что написали о консоли я запускал из повершела!
при интеграции обновлений в Windows 8.1 вываливается ошибка 0xc0000135, не подскажете в чем проблема?
Мне нужно обновить образ виндовс 10 на жёстком диске.
Как это сделать?
Не понял вопроса. Хотите обновить установленный образ в офлайн режиме? Т.е. вы снимаете диск с компьютера, подключаете к другому и хотите обновить там Windows?
Метод интеграции обновлений с удалённого компьютера больше не работает? Установил с чистого образа Windows 10 LTSB 2016, установил все обновления через Windows Update, но в папке C:\Windows\SoftwareDistribution\Download\ только файлы без расширения, cab файлов нету.
Файлы *.cab в каталоге \SoftwareDistribution\Download\? Возможно они автоматически вычищаются через месяц….
А нормально установщик себя поведёт если файл будет install.swm?
Да, он будет работать корректно. Главное не забыть поместить все swm файлы.
Привет, спасибо огромное за многи статьи!
два варианта
1.Как из install.wim файла образа где уже интегрированы все обновы (*.cab) вытащить все и интегрировать/вставить в свежеустановленную ОС ?
2. Как из install.wim файла образа где уже интегрированы все обновы (*.cab) вытащить все и интегрировать/вставить в новый install.wim ?
(в ручную) без использования дом. сети
Установленные обновления не всегда в cab формате не всегда будут находится в каталоге SoftwareDistribution\Download.
Если вы очищаете образ от предыдущих версий компонентов с помощью clenup manager (есть еще автоматический процесс очистки — раз в 30 дней если не ошибаюсь), то файлов вы не найдете
в каталогр C:\Windows\SoftwareDistribution\Download пусто