Интеграция обновлений в образ Windows 8 | Windows для системных администраторов

Интеграция обновлений в образ Windows 8

Ранее мы рассматривали как с помощью утилиты DISM или Powershell командлета Add-WindowsDriver интегрировать необходимые драйвера в образ Windows 2012 / 8. Сегодня  мы покажем, как аналогичным образом можно интегрировать обновления системы в офлайн образ Windows 8 / Server 2012.

Нам понадобятся:

  • Офлайн образ Windows 8
  • Обновления в формате .msu, которые нужно скачать с сервера обновлений Microsoft

Важно убедиться, что разрядности и версии дистрибутива Windows и обновлений совпадают.

Создадим следующую структуру каталогов:

  • C:\updates\mnt – папка, в которую будет смонтирован файл install.wim образа Windows
  • C:\updates\msu – папка с обновлениями в формате msu (в качестве примера мы скачали 5 обновлений безопасности для Windows 8, вышедших в феврале в рамках Patch Tuesday).
  • C:\updates\Win8-64-16134\ — каталог, в который нужно скопировать файл install.wim  из офлайн образа Windows 8. В нашем примере мы смонтировали и распаковали в него содержимое iso образа оригинального дистрибутива Windows 8 — SW_DVD5_Win_Pro_8_64BIT_English_MLF_X18-16134.ISO. На практике это может быть, например, wim файл виртуальной машины или ее шаблона, образа WDS или образа, хранящегося в другой системе автоматического развертывания ОС.

Обновления windows 8 в формате *.msu

Смонтируем файл образа Windows 8 — install.wim в каталог C:\updates\mnt , выполнив в командной строке с правами администратора команду:

dism /mount-wim /wimfile:C:\updates\Win8-64-16134\sources\install.wim /index:1 /mountdir:C:\updates\mnt

монтируем файл образа install.wim в Windows 8

Совет. Если wim образ содержит сразу несколько версий Windows, в этой команде нужно указать индекс нужной версии ОС, либо выполнить интеграцию обновления для каждого образа по очереди. Список редакций системы в wim файле можно получить с помощью команды:

Get-WindowsImage -ImagePath C:\updates\Win8-64-16134\sources\install.wim

Узнаем версии Windows, которые содержатся в файле install.wim

В нашем примере образ содержит только одну редакцию ОС — версию  Windows 8 Pro с индексом 1, поэтому в команде мы указываем install.wim /index:1.

Следующей командой запустим процесс интеграции в образ подходящих обновлений , расположенных в указанной папке. Если система обнаружит неподходящее обновление (не соответствует версия ОС, разрядность или если обновление уже установлено), оно будет пропущено, а в лог C:\Windows\Logs\DISM\dism.log будет записана соответствующая информация.

dism /image:C:\updates\mnt /add-package /packagepath:C:\updates\msu

Установка обвновлений в офлайн образ install.wim с помощью dism

В том случае, если в вашем распоряжении уже имеется компьютер,  на котором уже установлены нужные обновления, все необходимые файлы обновления можно получить непосредственно с него, в этом случае скачивать обновления из интернета не понадобится. Секрет в том, что Windows сохраняет cab файлы обновлений, полученные с серверов Windows Update или сервера WSUS в каталог C:\Windows\SoftwareDistribution\Download.

Windows сохраняет скачанные обновления в каталог C:\Windows\SoftwareDistribution\Download

Команда интеграции в образ install.wim обновлений, которые уже установлены на другом компьютере, выглядит так:

dism /mount-wim /wimfile:C:\updates\install.wim /index:1 /mountdir:C:\updates\mnt
Start /w for /R \\Win8x64Patched\C$\Windows\SoftwareDistribution\Download\ %f in (*.cab) do dism /image:C:\updates\mnt /add-package /packagepath:”%f”

В этом примере Win8x64Patched – имя компьютера, на котором уже установлены нужные обновления (версия и разрядность ОС должны совпадать). Естественно, что данный компьютер был доступен по сети, а ваша учетная запись должна обладать на нем правами администратора.

В результате запуска команды, откроется новое окно в котором можно наблюдать за процессом установки обновлений в офлайн образ Windows.

И последний шаг – нужно сохранить изменения и отключить смонтированный образ.

dism /unmount-wim /mountdir:C:\updates\mnt /commit

отключаем образ install.wim и сохраняем изменения

Осталось скопировать полученный образ в install.wim в исходный каталог/виртуальную машину или пересобрать установочный iso образ, например с помощью oscdimg  или UltraISO.

Еще записи по теме: Windows 8
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 20

Оставить комментарий
  1. Сергей | 08.07.2014

    Спасибо. Отличные у Вас статьи..Вопрос вот в чем
    Команда на Windows 8.1

    Start /w for /R \\Win8x64Patched\C$\Windows\SoftwareDistribution\Download\ %f in (*.cab) do dism /image:C:\updates\mnt /add-package /packagepath:”%U”

    Путь ”%U” не находит при интеграции.. Не подскажите как изменить??

    Ответить
  2. Валера | 09.07.2014

    Сергей, похоже в скрипте ошибка, вместо %U надо писать %f

    Ответить
  3. Анатолий | 22.08.2014

    Спасибо за статью!
    Пробовал применить данный способ интеграции обновлений на ОС 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?
     
     

    Ответить
    • itpro | 25.08.2014

      Методика для Win 8 и выше only

      Ответить
      • Игорь | 28.04.2015

        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 имя моего ПК

        Ответить
        • itpro | 29.04.2015

          Вся процедура выглядит так
          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

          Ответить
  4. uel | 08.06.2015

    Коллеги, а в случае с WSUS как? Просто натравить на папку WsusContent в сети, а DISM сам разберет какие апдейты нужны (у меня на wsus для 7, 8, 2012R2, Office)?

    Ответить
    • itpro | 15.06.2015

      Думаю, не получится, т.к. WSUS не хранит файлы обновлений в msu формате.

      Ответить
      • Max | 27.08.2015

        не работает у меня, ошибка при попытке открыть xxx.cab. ошибка 0x80070003 :(

        Ответить
        • юра | 27.08.2015

          у меня тоже такая же ошибка, ошибка при попытке открыть xxx.cab. ошибка 0x80070003 что делать?

          Ответить
  5. El | 30.10.2015

    Можни ли интегрировать обновления установленные на другом разделе на том же компьютере?

    Ответить
    • itpro | 02.11.2015

      Имеются в виду обновления из другой копии Windows на другом разделе? Если да, то можно при условии совпадении ОС и разрядности ОС.

      Ответить
  6. Виктор | 11.11.2015

    Большое спасибо за статью! Интегрирую по этой инструкции обновления в 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:* не подходят.

    Ответить
    • Виктор | 11.11.2015

      В своём ответе запутался в путях, реально у меня используются D:\Win2012upd\mnt и .\upd
      Кстати, в случае добавления скачанных обновлений (скачивал с помощью WSUS Offline Update) в образ, лучше пользоваться командой Dism /Image:***\mnt /LogPath:AddPackage.log /Add-Package /PackagePath:****\upd\. Добавляются всё *.cab и *.msu файлы из указанной папки «upd».

      Ответить
    • itpro | 16.11.2015

      Файл install.wim общий для всех четырех редакций в дистрибутиве. Так что интегрированные патчи будут актуальными сразу для всех.

      Ответить
  7. Sauron | 20.01.2016

    Способ, который берёт обновления по сети с обновлённого ПК, не добавляет очень многие обновления.
    Установил на виртуале:
    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 штук.

    Ответить
    • itpro | 20.01.2016

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

      Ответить
  8. Влад | 10.03.2016

    К сожалению при выполнении команды
    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

    может что с синтаксисом не так? подскажите пожалуйста.

    Ответить
    • itpro | 10.03.2016

      Команду запускаете из-под Windows 8?
      Поправьте unc путь вместо \2.becon.local\ нужно \\2.becon.local\. Ну и кавычки в конце проверьте (то ли на сайте неверно отобразилось, то ли у вас ошибка)

      Ответить
      • Влад | 10.03.2016

        слеш и ковычки это копипаст так отработал. Я походу сглупил, запускал команды из 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

        Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.27MB/0.00116 sec