Добавление обновлений к настраиваемым образам Windows

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

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

Обновление ZDP — это набор всех обновлений, выпущенных между сборкой 10240 Windows 10 и сегодняшним днем.

Примечание  По состоянию на 8 августа 2015 г.:
  • Используйте версии среды предустановки Windows и Windows RE из сборки 10240 ADK. Не обновляйте версию Windows PE и Windows RE, если не указано иное.
  • Не используйте /ResetBase (DISM /Cleanup-Image /ResetBase) после применения пакета ZDP в автономном режиме. В ZDP есть действия в состоянии ожидания, которые необходимо выполнить перед запуском /ResetBase.
  • Невозможно просто добавить ZDP в файл ответов для автоматической установки — необходимо обновить весь образ перед его установкой.
 

Запуск с настроенным образом

Начните с существующим настроенным образом Windows со сборкой 10240 Windows 10.

Рекомендуется добавить языковые пакеты перед добавлением обновлений ZDP — это поможет сэкономить время далее. Для получения дополнительных сведений см. примечания в конце этого раздела и статью Добавление языковых пакетов к Windows.

Скачать ZDP

Скачайте последние обновления. Обратите внимание, что ZDP является накопительным пакетом. Поэтому вам необходимо будет скачать пакет с последними обновлениями.

Обновление образов

  1. На обслуживающем компьютере: нажмите кнопку Пуск и введите развертывание. Щелкните правой кнопкой мыши элемент Среда средств развертывания и работы с образами и выберите команду Запуск от имени администратора.
  2. Создайте каталог подключения для образа Windows (install.wim) и подключите образ.
    md C:\mount\Windows
    
    Dism /Mount-Image /ImageFile:"C:\Images\install.wim" /Index:1 /MountDir:C:\mount\Windows
    
  3. Обновите образы Windows последней версией пакета ZDP. Пример.
    Dism /Add-Package /Image:C:\mount\Windows /PackagePath:C:\MSU\Windows10-KBxxxxxxx-x64.msu /LogPath:AddPackage.log
    
    
    

    Где C:\MSU\Windows10-KBxxxxxxx-x64.msu — это последняя доступная версия ZDP.

  4. Отключите образ Windows.
    Dism /Unmount-Image /MountDir:C:\mount\Windows /Commit
    
    

Mt186619.wedge(ru-ru,VS.85).gifРекомендуется загрузить образ для завершения обновления, а затем очистить образ

  1. Загрузите эталонное устройство в Windows PE.
  2. Нажмите клавиши CTRL+SHIFT+F3 на экранах запуска при первом включении компьютера, чтобы перейти в режим аудита.
  3. Откройте окно командной строки от имени администратора.
  4. Очистите образ Windows. (Вы можете использовать параметр /ResetBase сейчас, когда компьютер загружается в режиме аудита.)
    Dism /Cleanup-Image /Online /StartComponentCleanup /ResetBase
    
    Примечание  Вы не сможете очистить образ Windows, пока не загрузите его.
     
  5. При помощи Sysprep подготовьте компьютер к использованию и завершите его работу.
    C:\Windows\System32\Sysprep\sysprep /generalize /shutdown /oobe
    
    
  6. Загрузите компьютер в среде предустановки Windows. Если компьютер начнет перезагрузку Windows, вам потребуется дождаться окончания загрузки, а затем снова при помощи Sysprep подготовить компьютер к использованию и завершить его работу.
  7. Чтобы избежать проблем с короткими именами файлов, создайте каталог временных файлов для DISM на физическом диске, а не на виртуальном диске среды предустановки Windows по умолчанию. Чтобы предотвратить запись журналов DISM в образ, выберите расположение, входящее в список исключений DISM, например, в каталоге C:\Recycler. Дополнительные сведения см. в разделе Файл списка конфигурации DISM и файл WimScript.ini.
    md C:\Recycler\Scratch
    
    
  8. Перезапишите образ Windows. В результате будут записаны примененные обновления и удалены все файлы, помеченные как замененные во время выполнения DISM /Cleanup-Image. Сохраните файл в расположение на USB-накопителе или в сети (пример: N:\Images) и дайте образу имя (пример: "Enterprise_x64 с ZDP KBxxxxxxx").
    DISM /Capture-Image /ImageFile:"N:\Images\install_updated.wim" /CaptureDir:C: /Name: "Enterprise_x64 with ZDP KBxxxxxxx" /ScratchDir:C:\Recycler\Scratch
    

Mt186619.wedge(ru-ru,VS.85).gif Обновление загрузочного носителя программы установки Windows

  1. Скопируйте содержимое загрузочного носителя (DVD-диска или другого загрузочного носителя для установки Windows, служб развертывания Windows (WDS) или System Center) в доступную для записи папку на компьютере.
    Xcopy D:\ C:\InstallMedia /s /h
    
    
  2. Подключите файл: sources\boot.wim.
    md C:\mount\boot
    Dism /Mount-Image /ImageFile:"C:\InstallMedia\sources\boot.wim" /Index:1 /MountDir:C:\mount\boot
    
  3. Добавьте пакет интерфейса пользователя.
    Dism /Add-Package /PackagePath:/PackagePath:C:\MSU\Windows10-KBxxxxxxx-x64.msu /Image:C:\mount\boot /LogPath:AddPackage.log
    

    Где C:\MSU\Windows10-KBxxxxxxx-x64.msu — это последняя доступная версия ZDP.

  4. В проводнике перейдите в корневую папку подключенного образа и отсортируйте список файлов по дате изменений. Скопируйте все файлы, которые были недавно изменены (setup.exe, locale.nls, setupplatform.dll, setupplatform.exe, reagent.dll и любые другие, которые были недавно изменены) в корневой каталог на носителе для установки.
  5. Отключите файл boot.wim.
    Dism /Unmount-Image /MountDir:C:\mount\boot /Commit
    
  6. Создайте загрузочный носитель (DVD-диск или другой загрузочный носитель для установки Windows, служб развертывания Windows (WDS) или System Center), используя соответствующие файлы. Для получения дополнительных сведений см. Технический справочник по программе установки Windows.

Добавление языков после добавления ZDP или других накопительных пакетов

В идеале, стоит добавить все языковые пакеты и компоненты, прежде чем добавлять пакеты ZDP или накопительные пакеты Windows.

Если вам необходимо добавить языковые пакеты или языковые компоненты по требованию после установки ZDP или другого пакета накопительного пакета, следует повторно применить пакет ZDP или накопительный пакет. Иначе пользовательский интерфейс Windows может быть локализован некорректно и пользователям может быть предложено скачать языковые ресурсы из Центра обновления Windows.

Образец сценария

В следующем примере показано изменение определенного образа Windows путем добавления всех обновлений в указанной папке к образу. После добавления образа он очищается.

REM # InjectPackages.cmd: Adds packages (.cbs, .cab, .msu) to a Windows image
REM # Usage:   InjectPackages <.WIM file> <Index> <Folder with CBS packages>
REM # Example: InjectPackages C:\Images\install.wim 1 C:\Packages\ZDP
REM #
REM # Given a Windows image, an index, and a folder with packages (.cbs, .cab, or .msu),
REM # this injects the packages into the wim offline
REM #

@echo off
echo %date% - %time%:: starting ,,,

set _dism_log=%~dp0dism_add_packages.log
del %_dism_log%

set _input_wim=%1
echo %date% - %time%:: caller gave us a wim: [%_input_wim%]. dir it to verify ,,,
     dir %_input_wim%
if not exist %_input_wim% (
 echo fail!!! %_input_wim% not found
 exit /b 2
)

set _index=%2
echo %date% - %time%:: caller gave us index=[%_index%]. verify it,,,
echo %date% - %time%:: dism /logpath=%_dism_log% /get-imageinfo /imagefile=%_input_wim% /index=%_index%
     dism /logpath=%_dism_log% /get-imageinfo /imagefile=%_input_wim% /index=%_index%
if %errorlevel% neq 0 (
  echo dism failed!!! please verify index [%_index%] is correct.
  exit /b %errorlevel%
)


set _package_folder=%3
echo %date% - %time%:: caller gave us folder: [%_package_folder%]. dir it to verify ,,,
     dir %_package_folder%\
if not exist %_package_folder%\ (
 echo fail!!! %_package_folder%\ not found!
 exit /b 2
)

if not exist %~dp0mnt\ (
 mkdir %~dp0mnt\
)

echo %date% - %time%:: unmount to start clean. you can ignore if this fails.
echo %date% - %time%:: dism /logpath=%_dism_log% /unmount-image /mountdir=%~dp0mnt\ /discard
     dism /logpath=%_dism_log% /unmount-image /mountdir=%~dp0mnt\ /discard

echo %date% - %time%:: mount the input wim ,,,
echo dism /logpath=%_dism_log% /mount-image /imagefile=%_input_wim% /index=%_index% /mountdir=%~dp0mnt\ 
     dism /logpath=%_dism_log% /mount-image /imagefile=%_input_wim% /index=%_index% /mountdir=%~dp0mnt\ 
if %errorlevel% neq 0 (
  echo dism failed!!! 
  exit /b %errorlevel%
)
echo %date% - %time%:: good.

echo %date% - %time%:: look for *.msu files ,,,
echo dir %_package_folder%\*.msu
     dir %_package_folder%\*.msu
for /r %_package_folder% %%a in (*.msu) do (
  echo dism /logpath=%_dism_log% /image=%~dp0mnt\ /add-package=%%a
       dism /logpath=%_dism_log% /image=%~dp0mnt\ /add-package=%%a
  if %errorlevel% neq 0 (
    echo dism failed!!! 
    exit /b %errorlevel%
  )
)

echo %date% - %time%:: look for *.cab files ,,,
echo dir %_package_folder%\*.cab
     dir %_package_folder%\*.cab
for /r %_package_folder% %%a in (*.cab) do (
  echo dism /logpath=%_dism_log% /image=%~dp0mnt\ /add-package=%%a
       dism /logpath=%_dism_log% /image=%~dp0mnt\ /add-package=%%a
  if %errorlevel% neq 0 (
    echo dism failed!!! 
    exit /b %errorlevel%
  )
)

echo %date% - %time%:: DONE adding packages.

echo %date% - %time%:: run clean up ,,,
  echo dism /logpath=%_dism_log% /image=%~dp0mnt\ /cleanup-image /startcomponentcleanup
       dism /logpath=%_dism_log% /image=%~dp0mnt\ /cleanup-image /startcomponentcleanup
  REM ### Do not use /ResetBase. The ZDP has pending actions that must be completed first.##

  if %errorlevel% neq 0 (
    echo dism failed to clean up. we ignore this for now.
  )



echo %date% - %time%:: commiting the changes ,,,
echo dism /logpath=%_dism_log% /unmount-image /mountdir=%~dp0mnt\ /commit
     dism /logpath=%_dism_log% /unmount-image /mountdir=%~dp0mnt\ /commit
if %errorlevel% neq 0 (
  echo dism failed!!! 
  exit /b %errorlevel%
)


echo %date% - %time%:: exporting the wim to reduce size ,,,
echo dism /logpath=%_dism_log% /export-image /sourceimagefile=%_input_wim% /sourceindex=%_index% /destinationimagefile=%_input_wim%_exported.wim
     dism /logpath=%_dism_log% /export-image /sourceimagefile=%_input_wim% /sourceindex=%_index% /destinationimagefile=%_input_wim%_exported.wim
if %errorlevel% neq 0 (
  echo dism failed!!! 
  exit /b %errorlevel%
)

echo %date% - %time%:: ALL DONE.
dir %_input_wim% 
dir %_input_wim%_exported.wim
echo please use %_input_wim%_exported.wim for further testing.

 

 

Показ: