Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 114

Интеграция обновлений в установочный образ Windows 10

Что то мы о сборках давно беседы не вели 

===========

Программа для интеграции обновлений в образ системы,

раздача поддерживается и обновляется автором программы.

Предназначена для тех кто хочет иметь образ системы уже содержащий обновления,

например тем кто часто её переустанавливает, чтобы не качать всё по новой,

особенно если интернет имеет маленькую скорость,

ну или знакомым устанавливать помогает, для быстроты установки в общем.

Ну или просто для того чтобы было 

============================================

Если интересно, то могу попозже тему сделать,

как интегрировать в WIM файл и собрать образ обратно,

хотя в принципе программа проста как три копейки, только кнопки жми 

===================================

Варианты программы, к сожалению только на NNM club

Для Win10_LTSB

http://nnmclub.to/forum/viewtopic.php?t=924689&sid=69d387e10dfb59458f8410ce1475cc75

6c8142cc3620.png

================================================

Для Windows 10 Version 1703 build 15063

http://nnmclub.to/forum/viewtopic.php?t=1126825

6c8142cc3620.png

=================================================

Для  Windows 7

http://nnmclub.to/forum/viewtopic.php?t=1094633

aa6e9452c0c1.png

===================================================

Чтобы узнать какая версия у вас, идём по следующему пути

Пуск — Выполнить — ввести winver — ОК

ну или «Командная строка» — winver — Enter

 

В избранноеПожаловатьсяПросмотров: 4278  Комментарии17Эта статья является логическим продолжением моей предыдущей статьи. Развивая тему добавления (установки/интеграции) пакетов обновлений в образ Windows Я решил написать скрипт оперирующий командами DISM, который автоматизирует процесс и избавляет системных администраторов от рутинных действий. Универсальность скрипта состоит в том, что с его помощью можно установить пакеты обновления на «живую» систему, либо интегрировать в образ Windows — файл install.wim. Гибкость скрипта состоит в том, что его работу можно настроить изменив значение нескольких переменных в начале всего кода. Как и в предыдущей статье, для примера, мы будем добавлять к образу Windows так называемое Convenience rollup update (KB3125574), а также необходимое Servicing stack update (KB3177467). В ходе работы над скриптом выяснилось, что после интеграции в образ KB3177467, он (образ — install.wim), становится непригодным для дальнейших интеграций. Если устанавливать KB3177467 на «живую» ОС то проблем не возникает. У данной проблемы есть два решения: 1) интегрировать KB3177467 последним 2) заменить «проблемное» обновление его предыдущей версией — KB3020369. Я выбрал второй вариант, реализовав в скрипте ветвление по условию.

Скрипт

@echo off Title Convenience Rollup - most important updates after SP1  set _arch=x64 set _file=install.wim set _img=Online set _mnt=mount set _lev=2  :pre_menu cls dism /Get-WimInfo /LogLevel:%_lev% /WimFile:%_file% echo ------------------------------------------------------------------------------- if %ERRORLEVEL% NEQ 0 if %ERRORLEVEL% EQU 2 (goto :bit) else (pause & exit) set /p _ind=Input index or press [Enter] for quit: || exit if %_ind% EQU 0 goto :bit if %_ind% GTR 0 if %_ind% LEQ 24 goto :ind_menu goto :pre_menu  :ind_menu cls dism /Get-WimInfo /LogLevel:%_lev% /WimFile:%_file% /Index:%_ind% echo ------------------------------------------------------------------------------- if %ERRORLEVEL% NEQ 0 pause & goto :pre_menu choice /c abcdefghijklmnopqrstuvwxyz /n /m "Mount selected image? [m] " if %ERRORLEVEL% EQU 13 goto :mount goto :pre_menu  :bit if %_img%==Online (if "%PROCESSOR_ARCHITECTURE%" == "x86" if not defined PROCESSOR_ARCHITEW6432 set _arch=x86)^ else (dism /Get-WimInfo /LogLevel:%_lev% /WimFile:%_file% /Index:%_ind% /English | find "Architecture : x86" > nul && set _arch=x86) goto :add  :add cls echo Getting packages list. Please wait... dism /%_img% /Get-Packages /LogLevel:%_lev% /English > %TEMP%packages.txt echo ------------------------------------------------------------------------------- if not %_img%==Online ( echo Add: Servicing stack update KB3020369 call :exist .%_arch%Windows6.1-KB3020369-%_arch%.cab ||^ dism /%_img% /Add-Package /LogLevel:%_lev% /PackagePath:.%_arch%Windows6.1-KB3020369-%_arch%.cab /NoRestart echo ------------------------------------------------------------------------------- ) else ( echo Add: Servicing stack update KB3177467 call :exist .%_arch%Windows6.1-KB3177467-%_arch%.cab ||^ dism /%_img% /Add-Package /LogLevel:%_lev% /PackagePath:.%_arch%Windows6.1-KB3177467-%_arch%.cab /NoRestart echo ------------------------------------------------------------------------------- ) echo Add: Convenience rollup update KB3125574 call :exist .%_arch%Windows6.1-KB3125574-v4-%_arch%.cab ||^ dism /%_img% /Add-Package /LogLevel:%_lev% /PackagePath:.%_arch%Windows6.1-KB3125574-v4-%_arch%.cab /NoRestart echo ------------------------------------------------------------------------------- del %TEMP%packages.txt if not exist %_file% exit pause goto :unmount  :exist dism /%_img% /Get-PackageInfo /LogLevel:%_lev% /PackagePath:%1 /English | find "Package Identity" | findstr /g:/ %TEMP%packages.txt > nul exit /b  :mount cls md %_mnt% dism /Mount-Wim /LogLevel:%_lev% /WimFile:%_file% /Index:%_ind% /MountDir:%_mnt% if %ERRORLEVEL% NEQ 0 rd %_mnt% & pause & exit set _img=Image:%_mnt% goto :bit  :unmount cls if not %_img%==Online ( dism /Unmount-Wim /LogLevel:%_lev% /MountDir:%_mnt% /Commit rd %_mnt% ) set _arch=x64 set _img=Online goto :pre_menu

Файлы и папки

Файлы пакетов обновлений здесь не прилагаю, так как указанные в скрипте взяты для образца. По месту нахождения скрипта должны быть созданы папки x64 и x86 в которые нужно разместить нужные пакеты обновлений. Сам файл скрипта можно сохранить в кодировке ANSI если не использовать кириллицу для вывода информационных сообщений. А если хочется видеть русский текст, то нужно cmd-файл сохранить в кодировке OEM 866.

Использование

Как уже отмечалось, скрипт может установить обновления или интегрировать их. Если в папке запуска отсутствует файл образа — install.wim, то скрипт выполняет установку обновлений в полностью автоматическом режиме. Если в папке запуска присутствует файл образа — install.wim, то скрипт выполняет считывание из него информацию об имеющихся «индексах» и предлагает ввести номер. После этого отображается расширенная информация о выбранном «индексе» выдаётся запрос на монтирование. Нажатие любой клавиши приводит к возврату, а нажатие клавиши [m] запускает следующую цепочку действий: монтирование образа, интеграция обновлений, размонтирование образа, возврат в меню выбора «индеска». После чего можно выбрать другой «индекс» для интеграции обновлений. Выбор «индекса» под номером 0 запускает установку обновлений на «живую» ОС.

Разбор кода

Вначале командой set происходит установка переменных. Можно изменить предполагаемое имя файла образа install.wim (например, на install.esd). Можно изменить имя папки монтирования или задать путь, если папка монтирования должна находится за пределами папки запуска. Можно изменить «уровень» логирования, для исключения информационных сообщений из файла лога системы DISM.

:pre_menu

Предварительное меню. Получение основной информации о wim-файле с контролем ошибок. Если ошибка 2 — отсутствует wim-файл, то запуск в режиме Online. Не нашел информацию о максимальном количестве «индексов» в одном образе и установил значение 24.

:ind_menu

Индексное меню. Получение расширенной информации о выбранном «индексе» в wim-файле с контролем ошибок. Предложение смонтировать «индекс».

:bit

Определение разрядности ОС. Для интерактивного обслуживания считываются системные переменные среды, а для автономного обслуживания из образа запрашивается необходимая информация и в ней ищется ключевая строка.

:add

Добавление пакетов. Чтобы не делать лишней работы вначале происходит запрос списка уже добавленных (установленных или интегрированных) пакетов, а потом перед каждой командой запуска осуществляется вызов псевдофункции для проверки.

:exist

Псевдофункция проверки. Работа описана в статье Проверка присутствия пакета обновления в системе перед установкой. Код слегка подправлен.

:mount

Монтирование образа. Предварительно создаётся папка монтирования. Контроль ошибок. Изменяется переменная определяющая спецификацию образа, теперь указывает на путь к автономному образу.

:unmount

Размонтирование образа. Если выполнялось интерактивное обслуживание (/Online), то размонтировать не нужно. Возвращение переменных к исходным значениям.

Совместимость

Работа данного скрипта тестировалась на ОС Windows 7 со встроенной утилитой dism.exe версии 6.1.7600.16385. В версиях ОС Windows 8, 8.1, 10 утилита dism.exe системы DISM имеет более высокую версию. Думаю, обратная совместимость сохранена, и скрипт будет также работоспособен. К тому же появится возможность работать с esd-файлами.Информация к новости

  • Просмотров: 37 021
  • Автор: admin
  • Дата: 23-10-2016

23-10-2016

Категория: Windows 10 / Обновления Windows / Сборки и дистрибутивы Windows

Здравствуйте! Вопрос такой. Скачал на официальном сайте Майкрософт Windows 10 и установил её на свой ноутбук. После установки системы посмотрел её версию и она оказалась: Версия 1607 (Сборка ОС 14393.0).

1477329615_115.jpg

В этот же день Windows 10 несколько раз обновлялась и затем ещё на следующий день тоже, в итоге версия ОС стала 1607 (Сборка ОС 14393.321).

1477329818_81.jpg

По поводу этого я и хочу задать вопрос. Каким образом мне интегрировать обновления в дистрибутив Windows 10, чтобы операционная система после своей установки уже содержала все актуальные обновления на этот день?

Интеграция обновлений в дистрибутив Windows 10

Автор Владимир! Привет друзья! Если вам часто приходится устанавливать Windows 10 на различные компьютеры, то вы можете интегрировать в дистрибутив (ISO-образ) операционной системы все обновления, вышедшие со 2 августа 2016 года. Сделать это можно при помощи утилиты Dism.Во-первых, смотрим «Управление дисками» нашего ноутбука с установленной Windows 10.На диск (C:) установлена Windows 10.Новый том (F:) является переносным жёсткий диском USB.

1477250438_100.jpg

</span>Всю интересующую вас информацию о последних обновлениях, вышедших для Windows 10, можно узнать на страничке «Журнала обновлений Windows 10»https://support.microsoft.com/ru-ru/help/12387/windows-10-update-historyВидим, последний «Накопительный пакет обновлений KB3194798».

1477331758_117.jpg

Затем идём на сайт Майкрософт (используйте браузер Internet Explorer или Microsoft Edge) и скачиваем «Накопительный пакет обновлений KB3194798»повышающей номер сборки Widows 10 до 14393.321, размер779,7 MB,жмём Download:http://www.catalog.update.microsoft.com/Search.aspx?q=KB3194798жмём левой мышью на ссылку и скачиваем «Накопительный пакет обновлений KB3194798» на диск (F:)

Создаём виртуальный диск VHD

В Управлении дисками выбираем «Действие»—>«Создать виртуальный жёсткий диск»

1477252428_104.jpg

Отмечаем пункт  «Динамический расширяемый».

Размер виртуального жёсткого диска — 20 Гб.

Жмём на кнопку «Обзор».

1477252379_105.jpg

Выбираем в проводнике место сохранения виртуального жёсткого диска. Я выберу диск (F:).

Присваиваю имя виртуальному диску имя — «Win10» и жму кнопку «Сохранить».

1477252516_106.jpg

«ОК»

1477252631_107.jpg

Созданный виртуальный диск представляет из себя в Управлении дисками нераспределённое пространство (Диск 2) размером 20 Гб.

Щёлкаем на Диске 1 правой мышью и выбираем «Инициализировать диск»

1477252880_108.jpg

Отмечаю пункт «Основная загрузочная запись MBR» и жму «ОК»

1477253033_109.jpg

После инициализации диска создаём на нераспределённом пространстве простой том.

1477253148_110.jpg

Новый том (G:) создан.

1477253176_111.jpg

Скачиваемс официального сайта Майкрософт на Новый том (F:)свежий дистрибутив Windows 10

1477332458_118.jpg

</span>и присоединяем его к виртуальному дисководу (в моём случае (E:). 

1477253474_114.jpg

</span>

Заходим на виртуальный дисковод (E:) и копируем все файлы Windows 10.

1477334389_121.jpg

 Открываем Новый том (F:), создаём на нём папку, называем её «Win10», заходим в эту папку и вставляем все файлы Windows 10.

Для последующей работы в этой папке нам будет нужен файл-образ Windows 10 (файл — install.esd), находится он в папке «sources»

1477335421_125.jpg

Дистрибутив Windows 10 содержит в себе несколько релизов операционной системы. Узнаём индексы всех релизов. Введём команду:

Dism /Get-WimInfo /WimFile:F:Win10sourcesinstall.esd

Нам нужна Windows 10 Домашняя для одного языка, как видим, она имеет индекс 3.

1477335117_124.jpg

Следующей командой я разворачиваю файл install.esd на виртуальный диск VHD (раздел G:).

На диск (G:) разворачивается Windows 10.

Dism /apply-image /imagefile:F:Win10sourcesinstall.esd /index:3 /ApplyDir:G:

1477337047_126.jpg

Следующая команда произведёт экспорт обновлений из «Накопительного пакета обновлений KB3194798», находящегося на диске (F:) на смонтированный раздел (G:) (Windows 10) виртуального диска VHD.

Dism /image:G: /add-package /packagepath:F:

1477338849_131.jpg

После экспорта обновлений идём на диск (F:) и удаляем файл install.esd находящийся по адресу F:Win10sourcesinstall.esd

1477338696_130.jpg

Теперь архивируем Windows 10 на диске (G:) в файл install.wim командой

Dism /capture-image /imagefile:F:Win10sourcesinstall.wim /capturedir:G: /name:windows

(данной командой мы архивируем Windows 10 на диске (G:) в файл install.wim, который будет расположен по адресу F:Win10sourcesinstall.wim

1477374600_134.jpg

Файл install.wim создан и находится по адресу: F:Win10sourcesinstall.wim.

1477410312_138.jpg

Друзья, теперь нам осталось только собрать дистрибутив Windows 10 с помощью комплекта средств для развертывания и оценки Windows ADK, но ISO-образ с операционной системой будет весить 4,5 ГБ. Если вы хотите, чтобы ISO-образ Windows 10 весил меньше — 3 ГБ, то примените к файлу install.wim сжатие (compress) recovery (конвертация в install.esd).

Вводим команду:

Dism /Export-Image /SourceImageFile:F:Win10sourcesinstall.wim /SourceIndex:1 /DestinationImageFile:F:Win10sourcesinstall.esd /Compress:recovery

1477415405_145.jpg

в результате, в расположенной по адресу F:Win10sources папке появился новый файл-образ install.esd. Теперь удаляем файл install.wim и оставляем install.esd, делаем на его основе дистрибутив Windows 10.

1477413665_140.jpg

Независимо от того, сжимали ли вы файл install.wim в install.esd, нам осталось только скачать и установить комплект средств для развертывания и оценки Windows ADK для Windows 10 версии 1607 и создать с помощью него ISO-образ Windows 10 с интегрированными обновлениями.

Ссылка на скачивание Windows ADK

https://developer.microsoft.com/ru-ru/windows/hardware/windows-assessment-deployment-kit

1477339390_132.jpg

После установки открываем среду развёртывания и работы с образами,

вводим команду:

Oscdimg /u2 /m /bootdata:2#p0,e,bF:Win10bootEtfsboot.com#pef,e,bF:Win10efimicrosoftbootEfisys.bin F:Win10 F:Windows.iso

где:u2, это файловая система UDF, а m — размер образа без ограничений. b — загрузочный сектор записать etfsboot.com, путь к файлу etfsboot.com при указании b(boot) пишется без пробела bF:Win10bootetfsboot.combF: — где F: — буква диска.F:Win10 — создать ISO-образ из файлов и папок, находящихся на разделе FF:Windows.iso — созданный образ разместить на разделе F:присвоить имя образу — Windows.iso

1477414751_141.jpg

Дистрибутив Windows 10 с интегрированными последними обновлениями и названием Windows.iso, находится на диске (F:) и весит всего 3 ГБ.

1477414829_142.jpg

Если при помощи него установить операционную систему, то после установки у неё будет версия Windows 10 1607 (Сборка ОС 14393.321).

1477329818_81.jpg

Интеграция обновлений в дистрибутив, содержащий все основные редакции Windows 10 (Windows 10 PRO, Windows 10 Домашняя, Windows 10 Домашняя для одного языка, Windows 10 Для образовательных учреждений)

Друзья, созданный нами дистрибутив Windows 10 со всеми последними обновлениями содержит только один релиз Win 10 (Домашняя для одного языка), так как, если помните, в начале статьи мы с вами развернули файл install.esd на виртуальный диск VHD (раздел G:) командой

(Dism /apply-image /imagefile:F:Win10sourcesinstall.esd /index:3 /ApplyDir:G:) и в этой команде мы указали index:3 (Win 10 (Домашняя для одного языка).

Если вы хотите создать дистрибутив с четырьмя основными релизами Windows 10, то при создании архива install.wim нужно добавить параметр description. Давайте рассмотрим этот вопрос подробно на примере нашей же статьи.

Скачиваем с официального сайта Майкрософт на Новый том (F:) свежий дистрибутив Windows 10 и присоединяем его к виртуальному дисководу (в моём случае (E:).

Заходим на виртуальный дисковод (E:) и копируем все файлы Windows 10.

Открываем Новый том (F:), создаём на нём папку, называем её «Win10», заходим в эту папку и вставляем все файлы Windows 10, после этого УДАЛЯЕМ из неё install.esd.

Следующей командой я разворачиваю файл install.esd на виртуальный диск VHD (раздел G:). На диск (G:) разворачивается Windows 10PRO.

Dism /apply-image /imagefile:E:sourcesinstall.esd /index:1 /ApplyDir:G

(где index:1, это Windows 10 PRO

Следующая команда произведёт экспорт обновлений из «Накопительного пакета обновлений KB3194798», находящегося на диске (F:) на смонтированный раздел (G:) (Windows 10 PRO) виртуального диска VHD.

Dism /image:G: /add-package /packagepath:F:

Теперь архивируем Windows 10 на диске (G:) в файл install.wim командой

Dism /capture-image /imagefile:F:Win10sourcesinstall.wim /capturedir:G: /name:PRO /description:PRO

(данной командой мы архивируем Windows 10 PRO на диске (G:) в файл install.wim, который будет расположен по адресу F:Win10sourcesinstall.wim, после этого форматируем раздел G: и командой

Dism /apply-image /imagefile:E:sourcesinstall.esd /index:2 /ApplyDir:G разворачиваем Windows 10 Home (Домашняя).

Следующая команда произведёт экспорт обновлений из «Накопительного пакета обновлений KB3194798», находящегося на диске (F:) на смонтированный раздел (G:) (Windows 10 Home) виртуального диска VHD.

Dism /image:G: /add-package /packagepath:F:

Теперь архивируем Windows 10 houm на диске (G:) добавляя архив в файл install.wim в котором уже находится WIN pro 

Dism /Append-Image /imagefile:F:Win10sourcesinstall.wim /capturedir:G: /name:Houm /description:Houm

после этого опять форматируем раздел G: и командой

Dism /apply-image /imagefile:E:sourcesinstall.esd /index:3 /ApplyDir:G

делаем интеграцию обновлений и добавляем в install.wim

Dism /Append-Image /imagefile:F:Win10sourcesinstall.wim /capturedir:G: /name:Singl /description:singl

Статьи по этой теме: 

Используемые источники:

  • https://subscribe.ru/group/s-windows-na-tyi-ili-windows-dlya-nachinayuschih-2/13808921/
  • https://habr.com/post/343132/
  • https://remontcompa.ru/windows/windows-10/1087-integraciya-obnovleniy-v-distributiv-windows-10.html

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации