Dynamic update for windows 10 что это такое

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

Большинство из нас продолжают приостанавливать обновления для Windows. Чем больше времени проходит, тем ближе мы приближаемся к значительному новому обновлению, что вызывает у нас беспокойство: сколько времени займет установка? Пришло время взглянуть на Динамические обновления в Windows 10.

Содержание

  1. Динамические обновления в Windows 10
  2. Основные компоненты обновляются с помощью динамического обновления
  3. Как работают динамические обновления
  4. Включение/отключение динамического контента

Динамические обновления в Windows 10

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

Динамические обновления не только поддерживают Windows 10, но также поддерживаются предыдущими версиями Windows, включая Windows 8.1 и Windows Server. Они могут помочь конечным пользователям и организациям в обеспечении того, чтобы их устройства Windows 10 были оснащены современным контентом обновления функций (как часть обновления на месте) и сохраняли ценные функции по запросу (FOD) и языковые пакеты (LP), которые могли быть установлен ранее. Основной целью этой функции является компиляция и загрузка компонентов, которые имеют отношение к процессу обновления или стабильности системы во время установки.

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

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

Основные компоненты обновляются с помощью динамического обновления

Динамические обновления в Windows 10 могут состоять из следующих компонентов, согласно Microsoft:

  1. Настройка : исправления или любые файлы, которые необходимы программе «Настройка» для обновления функций.
  2. SafeOS : исправления для «безопасной ОС», которые используются для обновления среды восстановления (WinRE) в Windows.
  3. Обновление стека обслуживания (SSU)/критический DU . Устраняет любую проблему стека обслуживания Windows 10, которая имеет решающее значение для завершения обновления функции.
  4. Последнее накопительное обновление/выпуск для общего распространения . Устанавливает новейшее накопительное обновление качества.
  5. Языковой пакет и функция по требованию . Сохраняет ранее установленные языковые пакеты и дополнительные функции, переустанавливая их.
  6. Драйвер : драйверы, специально предназначенные для выпуска динамического обновления.

Как работают динамические обновления

Шаг для динамических обновлений является одним из начальных шагов, запускаемых при установке программы установки Windows. Процесс обычно включает в себя обращение в Microsoft и получение обновленного контента, который затем применяется к установочному носителю.

Содержимое динамического обновления загружается непосредственно с конечных точек HTTPS (т. Е. С URL-адресом в Интернете, размещенным корпорацией Майкрософт и рисующим содержимое динамического обновления). С технической точки зрения программа установки Windows 10 обращается к конечной точке HTTPS для получения динамического содержимого. После извлечения содержимого оно применяется к установочному носителю ОС, что делает процесс установки простым, плавным и полным.

Включение/отключение динамического контента

Если явно не отключено, функция динамического обновления включена по умолчанию во всех рабочих процессах обновления функций Windows. Пользователям автоматически предлагается выбрать, следует ли разрешить динамическое обновление. Программа установки Windows отображает приглашение « Получить обновления, драйверы и дополнительные функции » для динамического обновления, как показано ниже.

В автоматических установках предусмотрено отключение динамических обновлений. По умолчанию для этого параметра установлено значение «True», что означает, что динамические обновления включены. Чтобы отключить, пользователи могут установить «Ложь». Вы можете прочитать полную информацию на microsoft.com.

Функция динамического обновления в Windows 10 имеет преимущество, поскольку она может решить проблемы, связанные с обновлением/установкой во время установки. Но опять же, плюсы также имеют свои минусы, эта функция может обновить пользовательскую систему дополнительными компонентами, которые могут быть бесполезны для пользователя.

Если вы пытаетесь решить, какие продукты включить в настройках WSUS, то это статья для вас. В настоящее время WSUS включает полтора десятка различных продуктов Windows 10, дальше я постарался собрать назначение основных:

Windows 10 and Later Drivers: Это драйверы, которые будут предлагаться для установки всем сборкам Windows 10, исключая сценарии обновлений (т. е. через Orchestrator, DSM или Device Manager). Они не будут загружаться во время динамического обновления (т. е. Обновление Windows 10 от 1511 до 1607 и т.д.).

Windows 10 and Later Upgrade & Servicing Drivers: Это драйверы и последние Upgrade  для того чтобы кореектно обновится с windows 7, windows 8 , 8.1 на windows 10. Иеемт смысл включать если вы планируете делать апгрейд устаревших ОС.

Windows 10 Anniversary Update and Later Servicing Drivers: Обновления и драйвера для версии Windows 10 1607 Anniversary (Юбилейное обновление). Не содержат обновления до следующей версии.

Windows 10 Anniversary Update Server and Later Servicing Drivers: Драйверы и обновления применяются только к Windows Server 2016  Не содержат последующее обновления.

Windows 10 Dynamic Update: Динамические обнвления включют в себя только обновления для процесса установки, необходимые, когда одна сборка Windows 10 пытается обновиться до новой сборки Windows 10 (т.е. От 1511 до 1607).

Windows 10 Features On Demand: При включении этого раздела загружаются компоненты Windows. Т.е если вам необходимо установить NET 3.5, то вам не нужен будет диск, все необходимые обновления скачаются с WSUS.

Windows 10 GDR-DU LP: GDR = Общий выпуск, DU=Динамическое обновление, LP = Языковые пакеты.  Динамические обновления языковых пакетов текущей версии Windows 10. (см. Windows 10 Dynamic Update)

Windows 10 GDR-DU: GDR = Общий выпуск, DU=Динамическое обновление.
Эти динамические обновления используются только для текущей сборки GDR Windows 10, когда она пытается выполнить динамическое обновление (см. Windows 10 Dynamic Update).

Windows 10 Language Interface Packs: Пакеты языковых интерфейсов для рынков развивающихся стран или языковых меньшинств. LIP предоставляет пользователю рабочего стола примерно 80% локализованного пользовательского интерфейса, переводя сокращенный набор элементов пользовательского интерфейса (UI). LIP имеет зависимость от базового языкового пакета Windows. Языки предлагаются как LIP или LP, зависят от уровня инвестиций Microsoft в конкретной стране/регионе.

Windows 10 Language Packs: Полные языковые пакеты.

Windows 10 LTSB: (Long Term Servicing Branch – «Ветка с длительным сроком обслуживания») отличается от классической сборки тем, что в ней удалены ненужные стандартные программы, которые ОС устанавливает по умолчанию. Обновления в этой категории предназначены для специальной версии Windows 10, которая должна существовать в течение 10 лет с минимальными обновлениями.

Windows 10: это стандартные исправления, которые могут применяться к любой или всей сборке Windows 10.

Windows 10 GDR-DU: аббревиатура расшифровывается как General Distribution Release — Dynamic Update. Они относятся к пакетам для динамического обновления текущей версии Windows 10, а динамическое обновление Windows 10 отвечает за все выпуски.

Что такое Microsoft Dynamic Update?

Вы можете использовать динамическое обновление, чтобы обеспечить наличие на устройствах Windows 10 последних пакетов обновления функций в рамках обновления на месте с сохранением языкового пакета и функций по запросу (FOD), которые могли быть установлены ранее.

Безопасна ли установка Windows Update 1903?

Несмотря на то, что со всеми новыми мерами, обеспечивающими плавное обновление у всех, остается один вопрос: безопасно ли устанавливать Windows 10 версии 1903? Быстрый ответ — «Да», по словам Microsoft, установка May 2019 Update безопасна.

Что означают названия продуктов Windows 10 в WSUS?

Windows 10 GDR-DU LP: GDR = выпуск для общего распространения, DU = динамическое обновление, LP = языковые пакеты. … Эти обновления относятся к языкам, используемым в текущей версии Windows 10 (в декабре 2016 года — сборка 1607) во время динамического обновления (см. Пункт 5 выше).

Короткий ответ — да, вы должны установить их все. … «Обновления, которые на большинстве компьютеров устанавливаются автоматически, часто во вторник исправлений, представляют собой исправления, связанные с безопасностью, и предназначены для устранения недавно обнаруженных дыр в безопасности. Их следует установить, если вы хотите защитить свой компьютер от вторжений ».

Как и где мы включаем динамические обновления?

Нажмите «Пуск», выберите «Администрирование» и нажмите «DHCP». Щелкните правой кнопкой мыши соответствующий DHCP-сервер или область и выберите «Свойства». Щелкните DNS. Установите флажок Включить динамическое обновление DNS в соответствии с настройками ниже, чтобы включить динамическое обновление DNS для клиентов, поддерживающих динамическое обновление.

Каковы преимущества Центра обновления Windows?

Каковы преимущества установки обновлений Windows?

  • Обновления безопасности: проблемы безопасности — это наиболее серьезные ошибки, поскольку они могут быть использованы вредоносными программами или хакерами. …
  • Обновления новых функций:. …
  • Обновления операционной системы:…
  • Дополнительные обновления:

Какая версия Windows 10 самая стабильная?

По моему опыту, текущая версия Windows 10 (версия 2004, сборка ОС 19041.450) на сегодняшний день является самой стабильной операционной системой Windows, если учесть довольно широкий спектр задач, требуемых как домашними, так и бизнес-пользователями, которые включают более чем 80% и, вероятно, около 98% всех пользователей…

Какая версия Windows 10 лучше?

Windows 10 — какая версия вам подходит?

  • Windows 10 Домашняя. Скорее всего, это издание будет наиболее подходящим для вас. …
  • Windows 10 Профессиональная. Windows 10 Pro предлагает все те же функции, что и домашняя версия, а также предназначена для ПК, планшетов и устройств 2-в-1. …
  • Windows 10 Mobile. …
  • Windows 10 Корпоративная. …
  • Windows 10 Mobile Корпоративная.

Сколько времени занимает обновление до Windows 10 2020?

Если вы уже установили это обновление, загрузка октябрьской версии займет всего несколько минут. Но если у вас не установлено обновление May 2020 Update, это может занять от 20 до 30 минут или больше на старом оборудовании, согласно нашему дочернему сайту ZDNet.

Что такое Windows Vibranium?

Код Windows 10 версии 1909 (19H2), представляющий собой небольшое обновление функции, называется Vanadium, что означает ванадий в периодической таблице. … Масштабное обновление для Windows 10 версии 2003 (20H1), выпущенное следующей весной, — это вымышленный металлический элемент Vibranium.

Что такое windows10 в режиме S?

Windows 10 в S-режиме — это версия Windows 10, оптимизированная для обеспечения безопасности и производительности, но обеспечивающая знакомые возможности Windows. Для повышения безопасности он позволяет использовать только приложения из Microsoft Store и требует Microsoft Edge для безопасного просмотра. Дополнительные сведения см. На странице Windows 10 в S-режиме.

Что такое Windows 10 GDR du?

Windows 10 GDR-DU: аббревиатура расшифровывается как General Distribution Release — Dynamic Update. Они относятся к пакетам для динамического обновления текущей версии Windows 10, а динамическое обновление Windows 10 отвечает за все выпуски. Windows 10 […]… Они также позволяют обновить текущую версию Windows 10.

Что произойдет, если вы никогда не обновите Windows?

Обновления иногда могут включать оптимизацию, чтобы ваша операционная система Windows и другое программное обеспечение Microsoft работали быстрее. … Без этих обновлений вы упускаете какие-либо потенциальные улучшения производительности вашего программного обеспечения, а также любые совершенно новые функции, которые предлагает Microsoft.

Какое обновление Windows 10 вызывает проблемы?

Авария обновления Windows 10 — Microsoft подтверждает сбои приложений и синие экраны смерти. В другой раз, еще одно обновление Windows 10, которое вызывает проблемы. … Конкретные обновления — это KB4598299 и KB4598301, при этом пользователи сообщают, что оба вызывают синий экран смертей, а также различные сбои приложений.

Замедляет ли обновление Windows 10 компьютер?

Обновление Windows 10 замедляет работу ПК — да, это еще один пожар из мусорной корзины. Волнение из-за последнего обновления Microsoft Windows 10 дает людям еще более негативное подкрепление для загрузки обновлений компании. … Согласно последней версии Windows, обновление Windows KB4559309, как утверждается, связано с некоторыми компьютерами с более низкой производительностью.

Download PC Repair Tool to quickly find & fix Windows errors automatically

Most of us keep on suspending updates on Windows. The more the time passes, the closer we get to a Major New Update, leaving us anxious on – How long the installation would take? It’s time to look at the Dynamic Updates in Windows 11/10.

Dynamic Updates in Windows 11/10 are an optional and automated update process on Windows which retrieves and installs all updates in one go, eliminating the need to make numerous successive updates. This plays a key role when Windows Feature Updates are installed on a system and can be a part of a new installation or an update.

Dynamic Updates do not exclusively support Windows 11/10 but are also supported by previous versions of Windows, which include Windows 8.1 and Windows Server. These can help end users and organizations alike in ensuring their Windows devices are equipped with modern feature update content (as part of an in-place upgrade) and preserve valuable features on demand (FOD) and language packs (LPs) which may have been installed earlier. The main purpose of this feature is to compile and download the components which are relevant to the update process or the system stability during installation.

Without Dynamic Updates in Windows 11/10, a user or system administrator will need to install certain components, like updated drivers or new cumulative updates, post initial installation. On the other hand, with Dynamic Update, the user will not need to install a discrete quality update as a part of the in-place upgrade process. Note that these updates are enabled by default, but users or a system administrator can conveniently disable them.

In simple terms, using Dynamic Update in Windows 11/10 condenses the need to rub on separate updates to recently installed systems and makes it simple to equip your devices with the latest updates in one step.

Core components updated by Dynamic Update

Dynamic Updates in Windows 11/10 may consist of the following components according to Microsoft:

  1. Setup: Fixes or any files which “Setup” needs for feature updates.
  2. SafeOS: Fixes for the ‘safe OS’ which are used to update recovery environment (WinRE) in Windows.
  3. Servicing Stack Update (SSU)/Critical DU: Addresses any Windows 11/10 servicing stack issue which is critical to complete the feature update.
  4. Latest Cumulative Update /General Distribution Release: Installs the newest cumulative quality update.
  5. Language Pack and Feature On Demand: Preserves the previously installed language packs and optional features by reinstalling them.
  6. Driver: Drivers specifically targeted for Dynamic Update release.

How Dynamic Update Package work

The step for Dynamic Updates is one of the initial ones triggered during the Windows Setup installation. The process typically involves contacting Microsoft and retrieving updated content which is further applied to the installation media.

Dynamic Update content is downloaded directly from HTTPS endpoints (i.e. the Internet-facing URL hosted by Microsoft and draws the Dynamic Update content). In technical terms, Windows Setup reaches out to the HTTPS endpoint to retrieve the Dynamic Content. Once the content is retrieved it is applied to the OS installation media, consequently making the installation process simple, smooth and complete.

Enabling/Disabling Dynamic Content

Unless disabled explicitly, Dynamic Update feature is enabled by default in all Windows feature update workflows. Users are prompted automatically to choose whether to allow Dynamic Update. Windows setup displays prompt as “Get updates, drivers, and optional features” to befall dynamic Update as shown below.

Dynamic Updates in Windows 10

Unattended installations have a provision to disable Dynamic Updates. By default, this is set to “True” which means Dynamic Updates are enabled. To disable, the users can set it to “False”. You can read the full details on microsoft.com.

Dynamic Updates in Windows 11/10 feature is advantageous as it can solve update/installation associated issues during the setup. But again, the pros come along with cons too, this feature can update the user system with extra components which might not be useful for the user.

Ezoic

Anand Khanse is the Admin of TheWindowsClub.com, a 10-year Microsoft MVP (2006-16) & a Windows Insider MVP (2016-2022). Please read the entire post & the comments first, create a System Restore Point before making any changes to your system & be careful about any 3rd-party offers while installing freeware.

title description ms.prod author ms.localizationpriority ms.author manager ms.topic ms.technology ms.date ms.reviewer

Update Windows installation media with Dynamic Update

Learn how to deploy feature updates to your mission critical devices

windows-client

mestew

medium

mstewart

aaroncz

article

itpro-updates

12/31/2017

stevedia

Update Windows installation media with Dynamic Update

Applies to

  • Windows 10
  • Windows 11

This topic explains how to acquire and apply Dynamic Update packages to existing Windows images prior to deployment and includes Windows PowerShell scripts you can use to automate this process.

Volume-licensed media is available for each release of Windows in the Volume Licensing Service Center (VLSC) and other relevant channels such as Windows Update for Business, Windows Server Update Services (WSUS), and Visual Studio Subscriptions. You can use Dynamic Update to ensure that Windows devices have the latest feature update packages as part of an in-place upgrade while preserving language pack and Features on Demand (FODs) that might have been previously installed. Dynamic Update also eliminates the need to install a separate quality update as part of the in-place upgrade process.

Dynamic Update

Whenever installation of a feature update starts (whether from media or an environment connected to Windows Update), Dynamic Update is one of the first steps. Windows Setup contacts a Microsoft endpoint to fetch Dynamic Update packages, and then applies those updates to your operating system installation media. The update packages include the following kinds of updates:

  • Updates to Setup.exe binaries or other files that Setup uses for feature updates
  • Updates for the «safe operating system» (SafeOS) that is used for the Windows recovery environment
  • Updates to the servicing stack necessary to complete the feature update (see Servicing stack updates for more information)
  • The latest cumulative (quality) update
  • Updates to applicable drivers already published by manufacturers specifically intended for Dynamic Update

Dynamic Update preserves language pack and Features on Demand packages by reacquiring them.

Devices must be able to connect to the internet to obtain Dynamic Updates. In some environments, it’s not an option to obtain Dynamic Updates. You can still do a media-based feature update by acquiring Dynamic Update packages and applying it to the image prior to starting Setup on the device.

Acquire Dynamic Update packages

You can obtain Dynamic Update packages from the Microsoft Update Catalog. At that site, use the search bar in the upper right to find the Dynamic Update packages for a particular release. For example, you could enter 1809 Dynamic Update x64, which would return results like this:

Table with columns labeled Title, Products, Classification, Last Updated, Version, and Size and four rows listing various dynamic updates and associated KB articles.

The various Dynamic Update packages might not all be present in the results from a single search, so you might have to search with different keywords to find all of the updates. And you’ll need to check various parts of the results to be sure you’ve identified the needed files. This table shows in bold the key items to search for or look for in the results. For example, to find the relevant «Setup Dynamic Update,» you’ll have to check the detailed description for the download by selecting the link in the Title column of the search results.

To find this Dynamic Update packages, search for or check the results here Title Product Description (select the Title link to see Details)
Safe OS Dynamic Update 2019-08 Dynamic Update… Windows 10 Dynamic Update, Windows Safe OS Dynamic Update ComponentUpdate:
Setup Dynamic Update 2019-08 Dynamic Update… Windows 10 Dynamic Update SetupUpdate
Latest cumulative update 2019-08 Cumulative Update for Windows 10 Windows 10 Install this update to resolve issues in Windows…
Servicing stack Dynamic Update 2019-09 Servicing Stack Update for Windows 10 Windows 10… Install this update to resolve issues in Windows…

If you want to customize the image with additional languages or Features on Demand, download supplemental media ISO files from the Volume Licensing Service Center. For example, since Dynamic Update will be disabled for your devices, and if users require specific Features on Demand, you can preinstall these into the image.

Update Windows installation media

Properly updating the installation media involves a large number of actions operating on several different targets (image files). Some actions are repeated on different targets. The target images files include:

  • Windows Preinstallation Environment (WinPE): a small operating system used to install, deploy, and repair Windows operating systems
  • Windows Recovery Environment (WinRE): repairs common causes of unbootable operating systems. WinRE is based on WinPE and can be customized with additional drivers, languages, optional packages, and other troubleshooting or diagnostic tools.
  • Windows operating system: one or more editions of Windows stored in sourcesinstall.wim
  • Windows installation media: the complete collection of files and folders in the Windows installation media. For example, sources folder, boot folder, Setup.exe, and so on.

This table shows the correct sequence for applying the various tasks to the files. For example, the full sequence starts with adding the servicing stack update to WinRE (1) and concludes with adding the Dynamic Update for Setup to the new media (26).

Task WinRE (winre.wim) WinPE (boot.wim) Operating system (install.wim) New media
Add servicing stack Dynamic Update 1 9 18
Add language pack 2 10 19
Add localized optional packages 3 11
Add font support 4 12
Add text-to-speech 5 13
Update Lang.ini 14
Add Features on Demand 20
Add Safe OS Dynamic Update 6
Add Setup Dynamic Update 26
Add setup.exe from WinPE 27
Add latest cumulative update 15 21
Clean up the image 7 16 22
Add Optional Components 23
Add .NET and .NET cumulative updates 24
Export image 8 17 25

[!NOTE]
Starting in February 2021, the latest cumulative update and servicing stack update will be combined and distributed in the Microsoft Update Catalog as a new combined cumulative update. For Steps 1, 9, and 18 that require the servicing stack update for updating the installation media, you should use the combined cumulative update. For more information on the combined cumulative update, see Servicing stack updates.

[!NOTE]
Microsoft will remove the Flash component from Windows through KB4577586, “Update for Removal of Adobe Flash Player”. You can also remove Flash anytime by deploying the update in KB4577586 (available on the Catalog) between steps 20 and 21. As of July 2021, KB4577586, “Update for Removal of Adobe Flash Player” will be included in the latest cumulative update for Windows 10, versions 1607 and 1507. The update will also be included in the Monthly Rollup and the Security Only Update for Windows 8.1, Windows Server 2012, and Windows Embedded 8 Standard. For more information, see Update on Adobe Flash Player End of Support.

Multiple Windows editions

The main operating system file (install.wim) contains multiple editions of Windows. It’s possible that only an update for a given edition is required to deploy it, based on the index. Or, it might be that all editions need an update. Further, ensure that languages are installed before Features on Demand, and the latest cumulative update is always applied last.

Additional languages and features

You don’t have to add more languages and features to the image to accomplish the updates, but it’s an opportunity to customize the image with more languages, Optional Components, and Features on Demand beyond what is in your starting image. To do this, it’s important to make these changes in the correct order: first apply servicing stack updates, followed by language additions, then by feature additions, and finally the latest cumulative update. The provided sample script installs a second language (in this case Japanese (ja-JP)). Since this language is backed by an lp.cab, there’s no need to add a Language Experience Pack. Japanese is added to both the main operating system and to the recovery environment to allow the user to see the recovery screens in Japanese. This includes adding localized versions of the packages currently installed in the recovery image.

Optional Components, along with the .NET feature, can be installed offline, however doing so creates pending operations that require the device to restart. As a result, the call to perform image cleanup would fail. There are two options to avoid this. One option is to skip the image cleanup step, though that will result in a larger install.wim. Another option is to install the .NET and Optional Components in a step after cleanup but before export. This is the option in the sample script. By doing this, you will have to start with the original install.wim (with no pending actions) when you maintain or update the image the next time (for example, the next month).

Windows PowerShell scripts to apply Dynamic Updates to an existing image

These examples are for illustration only, and therefore lack error handling. The script assumes that the following packages are stored locally in this folder structure:

Folder Description
C:mediaRefresh Parent folder that contains the PowerShell script
C:mediaRefresholdMedia Folder that contains the original media that will be refreshed. For example, contains Setup.exe, and sources folder.
C:mediaRefreshnewMedia Folder that will contain the updated media. It is copied from oldMedia, then used as the target for all update and cleanup operations.

Get started

The script starts by declaring global variables and creating folders to use for mounting images. Then, make a copy of the original media, from oldMedia to newMedia, keeping the original media in case there is a script error and it’s necessary to start over from a known state. Also, it will provide a comparison of old versus new media to evaluate changes. To ensure that the new media updates, make sure they are not read-only.

#Requires -RunAsAdministrator

function Get-TS { return "{0:HH:mm:ss}" -f [DateTime]::Now }

Write-Output "$(Get-TS): Starting media refresh"

# Declare language for showcasing adding optional localized components
$LANG  = "ja-jp"
$LANG_FONT_CAPABILITY = "jpan"

# Declare media for FOD and LPs
$FOD_ISO_PATH    = "C:mediaRefreshpackagesFOD-PACKAGES_OEM_PT1_amd64fre_MULTI.iso"
$LP_ISO_PATH     = "C:mediaRefreshpackagesCLIENTLANGPACKDVD_OEM_MULTI.iso"

# Declare Dynamic Update packages
$LCU_PATH        = "C:mediaRefreshpackagesLCU.msu"
$SSU_PATH        = "C:mediaRefreshpackagesSSU_DU.msu"
$SETUP_DU_PATH   = "C:mediaRefreshpackagesSetup_DU.cab"
$SAFE_OS_DU_PATH = "C:mediaRefreshpackagesSafeOS_DU.cab"
$DOTNET_CU_PATH  = "C:mediaRefreshpackagesDotNet_CU.msu"

# Declare folders for mounted images and temp files
$MEDIA_OLD_PATH  = "C:mediaRefresholdMedia"
$MEDIA_NEW_PATH  = "C:mediaRefreshnewMedia"
$WORKING_PATH    = "C:mediaRefreshtemp"
$MAIN_OS_MOUNT   = "C:mediaRefreshtempMainOSMount"
$WINRE_MOUNT     = "C:mediaRefreshtempWinREMount"
$WINPE_MOUNT     = "C:mediaRefreshtempWinPEMount"

# Mount the language pack ISO
Write-Output "$(Get-TS): Mounting LP ISO"
$LP_ISO_DRIVE_LETTER = (Mount-DiskImage -ImagePath $LP_ISO_PATH -ErrorAction stop | Get-Volume).DriveLetter

# Declare language related cabs
$WINPE_OC_PATH              = "$LP_ISO_DRIVE_LETTER`:Windows Preinstallation Environmentx64WinPE_OCs"
$WINPE_OC_LANG_PATH         = "$WINPE_OC_PATH$LANG"
$WINPE_OC_LANG_CABS         = Get-ChildItem $WINPE_OC_LANG_PATH -Name
$WINPE_OC_LP_PATH           = "$WINPE_OC_LANG_PATHlp.cab"
$WINPE_FONT_SUPPORT_PATH    = "$WINPE_OC_PATHWinPE-FontSupport-$LANG.cab"
$WINPE_SPEECH_TTS_PATH      = "$WINPE_OC_PATHWinPE-Speech-TTS.cab"
$WINPE_SPEECH_TTS_LANG_PATH = "$WINPE_OC_PATHWinPE-Speech-TTS-$LANG.cab"
$OS_LP_PATH                 = "$LP_ISO_DRIVE_LETTER`:x64langpacksMicrosoft-Windows-Client-Language-Pack_x64_$LANG.cab"

# Mount the Features on Demand ISO
Write-Output "$(Get-TS): Mounting FOD ISO"
$FOD_ISO_DRIVE_LETTER = (Mount-DiskImage -ImagePath $FOD_ISO_PATH -ErrorAction stop | Get-Volume).DriveLetter
$FOD_PATH = $FOD_ISO_DRIVE_LETTER + ":"

# Create folders for mounting images and storing temporary files
New-Item -ItemType directory -Path $WORKING_PATH -ErrorAction Stop | Out-Null
New-Item -ItemType directory -Path $MAIN_OS_MOUNT -ErrorAction stop | Out-Null
New-Item -ItemType directory -Path $WINRE_MOUNT -ErrorAction stop | Out-Null
New-Item -ItemType directory -Path $WINPE_MOUNT -ErrorAction stop | Out-Null

# Keep the original media, make a copy of it for the new, updated media.
Write-Output "$(Get-TS): Copying original media to new media path"
Copy-Item -Path $MEDIA_OLD_PATH"*" -Destination $MEDIA_NEW_PATH -Force -Recurse -ErrorAction stop | Out-Null
Get-ChildItem -Path $MEDIA_NEW_PATH -Recurse | Where-Object { -not $_.PSIsContainer -and $_.IsReadOnly } | ForEach-Object { $_.IsReadOnly = $false }

Update WinRE

The script assumes that only a single edition is being updated, indicated by Index = 1 (Windows 10 Education Edition). Then the script mounts the image, saves Winre.wim to the working folder, and mounts it. It then applies servicing stack Dynamic Update, since its components are used for updating other components. Since the script is optionally adding Japanese, it adds the language pack to the image, and installs the Japanese versions of all optional packages already installed in Winre.wim. Then, it applies the Safe OS Dynamic Update package.

It finishes by cleaning and exporting the image to reduce the image size.

# Mount the main operating system, used throughout the script
Write-Output "$(Get-TS): Mounting main OS"
Mount-WindowsImage -ImagePath $MEDIA_NEW_PATH"sourcesinstall.wim" -Index 1 -Path $MAIN_OS_MOUNT -ErrorAction stop| Out-Null  

#
# update Windows Recovery Environment (WinRE)
#
Copy-Item -Path $MAIN_OS_MOUNT"windowssystem32recoverywinre.wim" -Destination $WORKING_PATH"winre.wim" -Force -ErrorAction stop | Out-Null
Write-Output "$(Get-TS): Mounting WinRE"
Mount-WindowsImage -ImagePath $WORKING_PATH"winre.wim" -Index 1 -Path $WINRE_MOUNT -ErrorAction stop | Out-Null

# Add servicing stack update (Step 1 from the table)

# Depending on the Windows release that you are updating, there are 2 different approaches for updating the servicing stack
# The first approach is to use the combined cumulative update. This is for Windows releases that are shipping a combined 
# cumulative update that includes the servicing stack updates (i.e. SSU + LCU are combined). Windows 11, version 21H2 and 
# Windows 11, version 22H2 are examples. In these cases, the servicing stack update is not published seperately; the combined 
# cumulative update should be used for this step. However, in hopefully rare cases, there may breaking change in the combined 
# cumulative update format, that requires a standalone servicing stack update to be published, and installed first before the 
# combined cumulative update can be installed. 

# This is the code to handle the rare case that the SSU is published and required for the combined cumulative update
# Write-Output "$(Get-TS): Adding package $SSU_PATH"
# Add-WindowsPackage -Path $WINRE_MOUNT -PackagePath $SSU_PATH | Out-Null  

# Now, attempt the combined cumulative update.
# There is a known issue where the servicing stack update is installed, but the cumulative update will fail. This error should 
# be caught and ignored, as the last step will be to apply the Safe OS update and thus the image will be left with the correct 
# packages installed.

try
{
    Add-WindowsPackage -Path $WINRE_MOUNT -PackagePath $LCU_PATH | Out-Null  
}
Catch
{
    $theError = $_
    Write-Output "$(Get-TS): $theError"
    
    if ($theError.Exception -like "*0x8007007e*") {
        Write-Output "$(Get-TS): This failure is a known issue with combined cumulative update, we can ignore."
    }
    else {
        throw
    }
}

# The second approach for Step 1 is for Windows releases that have not adopted the combined cumulative update
# but instead continue to have a seperate servicing stack update published. In this case, we'll install the SSU
# update. This second approach is commented out below.

# Write-Output "$(Get-TS): Adding package $SSU_PATH"
# Add-WindowsPackage -Path $WINRE_MOUNT -PackagePath $SSU_PATH | Out-Null  

#
# Optional: Add the language to recovery environment
#
# Install lp.cab cab
Write-Output "$(Get-TS): Adding package $WINPE_OC_LP_PATH"
Add-WindowsPackage -Path $WINRE_MOUNT -PackagePath $WINPE_OC_LP_PATH -ErrorAction stop | Out-Null  

# Install language cabs for each optional package installed
$WINRE_INSTALLED_OC = Get-WindowsPackage -Path $WINRE_MOUNT
Foreach ($PACKAGE in $WINRE_INSTALLED_OC) {

    if ( ($PACKAGE.PackageState -eq "Installed") `
            -and ($PACKAGE.PackageName.startsWith("WinPE-")) `
            -and ($PACKAGE.ReleaseType -eq "FeaturePack") ) {

        $INDEX = $PACKAGE.PackageName.IndexOf("-Package")
        if ($INDEX -ge 0) {
            $OC_CAB = $PACKAGE.PackageName.Substring(0, $INDEX) + "_" + $LANG + ".cab"
            if ($WINPE_OC_LANG_CABS.Contains($OC_CAB)) {
                $OC_CAB_PATH = Join-Path $WINPE_OC_LANG_PATH $OC_CAB
                Write-Output "$(Get-TS): Adding package $OC_CAB_PATH"
                Add-WindowsPackage -Path $WINRE_MOUNT -PackagePath $OC_CAB_PATH -ErrorAction stop | Out-Null  
            }
        }
    }
}

# Add font support for the new language
if ( (Test-Path -Path $WINPE_FONT_SUPPORT_PATH) ) {
    Write-Output "$(Get-TS): Adding package $WINPE_FONT_SUPPORT_PATH"
    Add-WindowsPackage -Path $WINRE_MOUNT -PackagePath $WINPE_FONT_SUPPORT_PATH -ErrorAction stop | Out-Null
}

# Add TTS support for the new language
if (Test-Path -Path $WINPE_SPEECH_TTS_PATH) {
    if ( (Test-Path -Path $WINPE_SPEECH_TTS_LANG_PATH) ) {

        Write-Output "$(Get-TS): Adding package $WINPE_SPEECH_TTS_PATH"
        Add-WindowsPackage -Path $WINRE_MOUNT -PackagePath $WINPE_SPEECH_TTS_PATH -ErrorAction stop | Out-Null

        Write-Output "$(Get-TS): Adding package $WINPE_SPEECH_TTS_LANG_PATH"
        Add-WindowsPackage -Path $WINRE_MOUNT -PackagePath $WINPE_SPEECH_TTS_LANG_PATH -ErrorAction stop | Out-Null
    }
}

# Add Safe OS
Write-Output "$(Get-TS): Adding package $SAFE_OS_DU_PATH"
Add-WindowsPackage -Path $WINRE_MOUNT -PackagePath $SAFE_OS_DU_PATH -ErrorAction stop | Out-Null

# Perform image cleanup
Write-Output "$(Get-TS): Performing image cleanup on WinRE"
DISM /image:$WINRE_MOUNT /cleanup-image /StartComponentCleanup | Out-Null

# Dismount
Dismount-WindowsImage -Path $WINRE_MOUNT  -Save -ErrorAction stop | Out-Null

# Export
Write-Output "$(Get-TS): Exporting image to $WORKING_PATHwinre2.wim"
Export-WindowsImage -SourceImagePath $WORKING_PATH"winre.wim" -SourceIndex 1 -DestinationImagePath $WORKING_PATH"winre2.wim" -ErrorAction stop | Out-Null
Move-Item -Path $WORKING_PATH"winre2.wim" -Destination $WORKING_PATH"winre.wim" -Force -ErrorAction stop | Out-Null

Update WinPE

This script is similar to the one that updates WinRE, but instead it mounts Boot.wim, applies the packages with the latest cumulative update last, and saves. It repeats this for all images inside of Boot.wim, typically two images. It starts by applying the servicing stack Dynamic Update. Since the script is customizing this media with Japanese, it installs the language pack from the WinPE folder on the language pack ISO. Additionally, add font support and text to speech (TTS) support. Since the script is adding a new language, it rebuilds lang.ini, used to identify languages installed in the image. For the second image, we’ll save setup.exe for later use, to ensure this version matches the sourcessetup.exe version from the installation media. If these binaries are not identical, Windows Setup will fail during installation. Finally, it cleans and exports Boot.wim, and copies it back to the new media.

#
# update Windows Preinstallation Environment (WinPE)
#

# Get the list of images contained within WinPE
$WINPE_IMAGES = Get-WindowsImage -ImagePath $MEDIA_NEW_PATH"sourcesboot.wim"

Foreach ($IMAGE in $WINPE_IMAGES) {

    # update WinPE
    Write-Output "$(Get-TS): Mounting WinPE, image index $($IMAGE.ImageIndex)"
    Mount-WindowsImage -ImagePath $MEDIA_NEW_PATH"sourcesboot.wim" -Index $IMAGE.ImageIndex -Path $WINPE_MOUNT -ErrorAction stop | Out-Null  

    # Add servicing stack update (Step 9 from the table)

    # Depending on the Windows release that you are updating, there are 2 different approaches for updating the servicing stack
    # The first approach is to use the combined cumulative update. This is for Windows releases that are shipping a combined 
    # cumulative update that includes the servicing stack updates (i.e. SSU + LCU are combined). Windows 11, version 21H2 and 
    # Windows 11, version 22H2 are examples. In these cases, the servicing stack update is not published seperately; the combined 
    # cumulative update should be used for this step. However, in hopefully rare cases, there may breaking change in the combined 
    # cumulative update format, that requires a standalone servicing stack update to be published, and installed first before the 
    # combined cumulative update can be installed. 

    # This is the code to handle the rare case that the SSU is published and required for the combined cumulative update
    # Write-Output "$(Get-TS): Adding package $SSU_PATH"
    # Add-WindowsPackage -Path $WINPE_MOUNT -PackagePath $SSU_PATH | Out-Null  

    # Now, attempt the combined cumulative update.
    # There is a known issue where the servicing stack update is installed, but the cumulative update will fail.
    # This error should be caught and ignored, as the last step will be to apply the cumulative update 
    # (or in this case the combined cumulative update) and thus the image will be left with the correct packages installed.

    try
    {
        Add-WindowsPackage -Path $WINPE_MOUNT -PackagePath $LCU_PATH | Out-Null  
    }
    Catch
    {
        $theError = $_
        Write-Output "$(Get-TS): $theError"

        if ($theError.Exception -like "*0x8007007e*") {
            Write-Output "$(Get-TS): This failure is a known issue with combined cumulative update, we can ignore."
        }
        else {
            throw
        }
    }

    # The second approach for Step 9 is for Windows releases that have not adopted the combined cumulative update
    # but instead continue to have a seperate servicing stack update published. In this case, we'll install the SSU
    # update. This second approach is commented out below.

    # Write-Output "$(Get-TS): Adding package $SSU_PATH"
    # Add-WindowsPackage -Path $WINPE_MOUNT -PackagePath $SSU_PATH | Out-Null 

    # Install lp.cab cab
    Write-Output "$(Get-TS): Adding package $WINPE_OC_LP_PATH"
    Add-WindowsPackage -Path $WINPE_MOUNT -PackagePath $WINPE_OC_LP_PATH -ErrorAction stop | Out-Null  

    # Install language cabs for each optional package installed
    $WINPE_INSTALLED_OC = Get-WindowsPackage -Path $WINPE_MOUNT
    Foreach ($PACKAGE in $WINPE_INSTALLED_OC) {

        if ( ($PACKAGE.PackageState -eq "Installed") `
                -and ($PACKAGE.PackageName.startsWith("WinPE-")) `
                -and ($PACKAGE.ReleaseType -eq "FeaturePack") ) {

            $INDEX = $PACKAGE.PackageName.IndexOf("-Package")
            if ($INDEX -ge 0) {

                $OC_CAB = $PACKAGE.PackageName.Substring(0, $INDEX) + "_" + $LANG + ".cab"
                if ($WINPE_OC_LANG_CABS.Contains($OC_CAB)) {
                    $OC_CAB_PATH = Join-Path $WINPE_OC_LANG_PATH $OC_CAB
                    Write-Output "$(Get-TS): Adding package $OC_CAB_PATH"
                    Add-WindowsPackage -Path $WINPE_MOUNT -PackagePath $OC_CAB_PATH -ErrorAction stop | Out-Null  
                }
            }
        }
    }

    # Add font support for the new language
    if ( (Test-Path -Path $WINPE_FONT_SUPPORT_PATH) ) {
        Write-Output "$(Get-TS): Adding package $WINPE_FONT_SUPPORT_PATH"
        Add-WindowsPackage -Path $WINPE_MOUNT -PackagePath $WINPE_FONT_SUPPORT_PATH -ErrorAction stop | Out-Null
    }

    # Add TTS support for the new language
    if (Test-Path -Path $WINPE_SPEECH_TTS_PATH) {
        if ( (Test-Path -Path $WINPE_SPEECH_TTS_LANG_PATH) ) {

            Write-Output "$(Get-TS): Adding package $WINPE_SPEECH_TTS_PATH"
            Add-WindowsPackage -Path $WINPE_MOUNT -PackagePath $WINPE_SPEECH_TTS_PATH -ErrorAction stop | Out-Null

            Write-Output "$(Get-TS): Adding package $WINPE_SPEECH_TTS_LANG_PATH"
            Add-WindowsPackage -Path $WINPE_MOUNT -PackagePath $WINPE_SPEECH_TTS_LANG_PATH -ErrorAction stop | Out-Null
        }
    }

    # Generates a new Lang.ini file which is used to define the language packs inside the image
    if ( (Test-Path -Path $WINPE_MOUNT"sourceslang.ini") ) {
        Write-Output "$(Get-TS): Updating lang.ini"
        DISM /image:$WINPE_MOUNT /Gen-LangINI /distribution:$WINPE_MOUNT | Out-Null
    }

    # Add latest cumulative update
    Write-Output "$(Get-TS): Adding package $LCU_PATH"
    Add-WindowsPackage -Path $WINPE_MOUNT -PackagePath $LCU_PATH -ErrorAction stop | Out-Null  

    # Perform image cleanup
    Write-Output "$(Get-TS): Performing image cleanup on WinPE"
    DISM /image:$WINPE_MOUNT /cleanup-image /StartComponentCleanup | Out-Null

    # If second image, save setup.exe for later use. This will address possible binary mismatch with the version in the main OS sources folder
    if ($IMAGE.ImageIndex -eq "2") {
        Copy-Item -Path $WINPE_MOUNT"sourcessetup.exe" -Destination $WORKING_PATH"setup.exe" -Force -ErrorAction stop | Out-Null
    }
        
    # Dismount
    Dismount-WindowsImage -Path $WINPE_MOUNT -Save -ErrorAction stop | Out-Null

    #Export WinPE
    Write-Output "$(Get-TS): Exporting image to $WORKING_PATHboot2.wim"
    Export-WindowsImage -SourceImagePath $MEDIA_NEW_PATH"sourcesboot.wim" -SourceIndex $IMAGE.ImageIndex -DestinationImagePath $WORKING_PATH"boot2.wim" -ErrorAction stop | Out-Null

}

Move-Item -Path $WORKING_PATH"boot2.wim" -Destination $MEDIA_NEW_PATH"sourcesboot.wim" -Force -ErrorAction stop | Out-Null

Update the main operating system

For this next phase, there is no need to mount the main operating system, since it was already mounted in the previous scripts. This script starts by applying the servicing stack Dynamic Update. Then, it adds Japanese language support and then the Japanese language features. Unlike the Dynamic Update packages, it leverages Add-WindowsCapability to add these features. For a full list of such features, and their associated capability name, see Available Features on Demand.

Now is the time to enable other Optional Components or add other Features on Demand. If such a feature has an associated cumulative update (for example, .NET), this is the time to apply those. The script then proceeds with applying the latest cumulative update. Finally, the script cleans and exports the image.

You can install Optional Components, along with the .NET feature, offline, but that will require the device to be restarted. This is why the script installs .NET and Optional Components after cleanup and before export.

#
# update Main OS
#

# Add servicing stack update (Step 18 from the table)

# Depending on the Windows release that you are updating, there are 2 different approaches for updating the servicing stack
# The first approach is to use the combined cumulative update. This is for Windows releases that are shipping a combined cumulative update that
# includes the servicing stack updates (i.e. SSU + LCU are combined). Windows 11, version 21H2 and Windows 11, version 22H2 are examples. In these
# cases, the servicing stack update is not published seperately; the combined cumulative update should be used for this step. However, in hopefully
# rare cases, there may breaking change in the combined cumulative update format, that requires a standalone servicing stack update to be published, 
# and installed first before the combined cumulative update can be installed. 

# This is the code to handle the rare case that the SSU is published and required for the combined cumulative update
# Write-Output "$(Get-TS): Adding package $SSU_PATH"
# Add-WindowsPackage -Path $MAIN_OS_MOUNT -PackagePath $SSU_PATH | Out-Null  

# Now, attempt the combined cumulative update. Unlike WinRE and WinPE, we don't need to check for error 0x8007007e
Write-Output "$(Get-TS): Adding package $LCU_PATH"
Add-WindowsPackage -Path $MAIN_OS_MOUNT -PackagePath $LCU_PATH | Out-Null  

# The second approach for Step 18 is for Windows releases that have not adopted the combined cumulative update
# but instead continue to have a seperate servicing stack update published. In this case, we'll install the SSU
# update. This second approach is commented out below.

# Write-Output "$(Get-TS): Adding package $SSU_PATH"
# Add-WindowsPackage -Path $MAIN_OS_MOUNT -PackagePath $SSU_PATH | Out-Null  

# Optional: Add language to main OS
Write-Output "$(Get-TS): Adding package $OS_LP_PATH"
Add-WindowsPackage -Path $MAIN_OS_MOUNT -PackagePath $OS_LP_PATH -ErrorAction stop | Out-Null  

# Optional: Add a Features on Demand to the image
Write-Output "$(Get-TS): Adding language FOD: Language.Fonts.Jpan~~~und-JPAN~0.0.1.0"
Add-WindowsCapability -Name "Language.Fonts.$LANG_FONT_CAPABILITY~~~und-$LANG_FONT_CAPABILITY~0.0.1.0" -Path $MAIN_OS_MOUNT -Source $FOD_PATH -ErrorAction stop | Out-Null

Write-Output "$(Get-TS): Adding language FOD: Language.Basic~~~$LANG~0.0.1.0"
Add-WindowsCapability -Name "Language.Basic~~~$LANG~0.0.1.0" -Path $MAIN_OS_MOUNT -Source $FOD_PATH -ErrorAction stop | Out-Null

Write-Output "$(Get-TS): Adding language FOD: Language.OCR~~~$LANG~0.0.1.0"
Add-WindowsCapability -Name "Language.OCR~~~$LANG~0.0.1.0" -Path $MAIN_OS_MOUNT -Source $FOD_PATH -ErrorAction stop | Out-Null

Write-Output "$(Get-TS): Adding language FOD: Language.Handwriting~~~$LANG~0.0.1.0"
Add-WindowsCapability -Name "Language.Handwriting~~~$LANG~0.0.1.0" -Path $MAIN_OS_MOUNT -Source $FOD_PATH -ErrorAction stop | Out-Null

Write-Output "$(Get-TS): Adding language FOD: Language.TextToSpeech~~~$LANG~0.0.1.0"
Add-WindowsCapability -Name "Language.TextToSpeech~~~$LANG~0.0.1.0" -Path $MAIN_OS_MOUNT -Source $FOD_PATH -ErrorAction stop | Out-Null

Write-Output "$(Get-TS): Adding language FOD:Language.Speech~~~$LANG~0.0.1.0"
Add-WindowsCapability -Name "Language.Speech~~~$LANG~0.0.1.0" -Path $MAIN_OS_MOUNT -Source $FOD_PATH -ErrorAction stop | Out-Null

# Note: If I wanted to enable additional Features on Demand, I'd add these here.

# Add latest cumulative update
Write-Output "$(Get-TS): Adding package $LCU_PATH"
Add-WindowsPackage -Path $MAIN_OS_MOUNT -PackagePath $LCU_PATH -ErrorAction stop | Out-Null

# Copy our updated recovery image from earlier into the main OS
# Note: If I were updating more than 1 edition, I'd want to copy the same recovery image file
# into each edition to enable single instancing
Copy-Item -Path $WORKING_PATH"winre.wim" -Destination $MAIN_OS_MOUNT"windowssystem32recoverywinre.wim" -Force -ErrorAction stop | Out-Null

# Perform image cleanup
Write-Output "$(Get-TS): Performing image cleanup on main OS"
DISM /image:$MAIN_OS_MOUNT /cleanup-image /StartComponentCleanup | Out-Null

#
# Note: If I wanted to enable additional Optional Components, I'd add these here.
# In addition, we'll add .NET 3.5 here as well. Both .NET and Optional Components might require
# the image to be booted, and thus if we tried to cleanup after installation, it would fail.
#

Write-Output "$(Get-TS): Adding NetFX3~~~~"
Add-WindowsCapability -Name "NetFX3~~~~" -Path $MAIN_OS_MOUNT -Source $FOD_PATH -ErrorAction stop | Out-Null

# Add .NET Cumulative Update
Write-Output "$(Get-TS): Adding package $DOTNET_CU_PATH"
Add-WindowsPackage -Path $MAIN_OS_MOUNT -PackagePath $DOTNET_CU_PATH -ErrorAction stop | Out-Null

# Dismount
Dismount-WindowsImage -Path $MAIN_OS_MOUNT -Save -ErrorAction stop | Out-Null

# Export
Write-Output "$(Get-TS): Exporting image to $WORKING_PATHinstall2.wim"
Export-WindowsImage -SourceImagePath $MEDIA_NEW_PATH"sourcesinstall.wim" -SourceIndex 1 -DestinationImagePath $WORKING_PATH"install2.wim" -ErrorAction stop | Out-Null
Move-Item -Path $WORKING_PATH"install2.wim" -Destination $MEDIA_NEW_PATH"sourcesinstall.wim" -Force -ErrorAction stop | Out-Null

Update remaining media files

This part of the script updates the Setup files. It simply copies the individual files in the Setup Dynamic Update package to the new media. This step brings an updated Setup files as needed, along with the latest compatibility database, and replacement component manifests. This script also does a final replacement of setup.exe using the previously saved version from WinPE.

#
# update remaining files on media
#

# Add Setup DU by copy the files from the package into the newMedia
Write-Output "$(Get-TS): Adding package $SETUP_DU_PATH"
cmd.exe /c $env:SystemRootSystem32expand.exe $SETUP_DU_PATH -F:* $MEDIA_NEW_PATH"sources" | Out-Null

# Copy setup.exe from boot.wim, saved earlier.
Copy-Item -Path $WORKING_PATH"setup.exe" -Destination $MEDIA_NEW_PATH"sourcessetup.exe" -Force -ErrorAction stop | Out-Null

Finish up

As a last step, the script removes the working folder of temporary files, and unmounts our language pack and Features on Demand ISOs.

#
# Perform final cleanup
#

# Remove our working folder
Remove-Item -Path $WORKING_PATH -Recurse -Force -ErrorAction stop | Out-Null

# Dismount ISO images
Write-Output "$(Get-TS): Dismounting ISO images"
Dismount-DiskImage -ImagePath $LP_ISO_PATH -ErrorAction stop | Out-Null
Dismount-DiskImage -ImagePath $FOD_ISO_PATH -ErrorAction stop | Out-Null

Write-Output "$(Get-TS): Media refresh completed!"

This post has been republished via RSS; it originally appeared at: Windows IT Pro Blog articles.

Dynamic Update can help organizations and end users alike ensure that their Windows 10 devices have the latest feature update content (as part of an in-place upgrade)—and preserve precious features on demand (FODs) and language packs (LPs) that may have been previously installed. Further, Dynamic Update also eliminates the need to install a separate quality update as part of the in-place upgrade process.

From an IT perspective, using Dynamic Update reduces the need to apply separate updates to recently installed systems and makes it easier to get your devices up to date with the latest available quality update in one step.

In this blog, we’ll explore which core components are updated by Dynamic Update, how Dynamic Update is initiated, and how to enable or disable it.

What is updated by Dynamic Update?

There are several core components that can be updated by Dynamic Update, including:

  • Setup DU: Fixes to Setup binaries or any files that Setup uses for feature updates.
  • SafeOS DU: Fixes for the ‘safe OS’ that we use to update Windows recovery environment (WinRE).
  • Servicing Stack Update (SSU)/Critical DU: Fixes that are necessary to address the Windows 10 servicing stack issue and thus required to complete the feature update.
  • Latest Cumulative Update (LCU)/General Distribution Release (GDR) DU: Installs the latest cumulative quality update.
  • Language Pack (LP) and Feature On Demand (FOD) DU: Preserves users’ installed language packs and optional features by reinstalling them.
  • Driver DU: Latest version of applicable drivers that have been already published by manufacturers (OEMs and/or IHVs) into Windows Update and specifically targeted for Dynamic Update.

How Dynamic Update works

As soon as a feature update is initiated, whether from media or a Windows Update service-connected environment, Dynamic Update is one of the first steps invoked. Windows 10 Setup reaches out to the HTTPS endpoint, i.e. the Internet-facing URL hosted by Microsoft, fetches the Dynamic Update content, then applies those updates to your OS installation media, thus making the installation process go as smoothly as possible.

Based on your feedback, starting with Windows 10, version 1809, Dynamic Update content is downloaded directly from HTTPS endpoints. Prior to version 1809, Setup leveraged the in-box Windows Update client to retrieve Dynamic Update content, which required those organizations using Configuration Manager with WSUS to approve the Dynamic Update content in the WSUS console.

How do I enable or disable Dynamic Update?

Dynamic Update is enabled by default in all Windows feature update workflows unless disabled explicitly. In an interactive installation, users will be prompted automatically to choose whether to allow Dynamic Update to occur as shown below:

get-updates.png

In an unattended installation (i.e. one that does not require user interaction and automates Windows installation using an answer file), the setting shown below will control whether Dynamic Update occurs or not. By default, it is set to True; however, to disable it, the value can be set to False.

<DynamicUpdate>
     <Enable>True</Enable>
</DynamicUpdate>

The following Setup.exe command line option can also be used to specify whether Windows Setup performs Dynamic Update operations:

/DynamicUpdate {enable | disable}
setup /auto upgrade /DynamicUpdate disable

In a Configuration Manager OS upgrade task sequence, the Task Sequence Editor features a setting for “Dynamically update Windows Setup with Windows Update” to control whether Dynamic Update occurs or not, as shown below:

task-sequence.png

If a command line setting cannot be passed to Setup—for example, in Windows Update or Configuration Manager scenarios based on the software update servicing flow—the setupconfig file can be used to configure Dynamic Update options.

If Dynamic Update is not enabled, Setup will use only the files that are provided on the installation media. FODs and LPs will not be retained or migrated. Instead, after the feature update is installed, the OS will attempt to reacquire these from Windows Update. If the device is offline or cannot reach Windows Update, then the user or admin will need to manually initiate the reinstallation of the FODs and LPs from separate media or an ISO file.

How to manage Dynamic Update content in a managed environment

  • https://fe3.delivery.mp.microsoft.com:443
  • https://tlu.dl.delivery.mp.microsoft.com

These specific endpoints are not exclusive to Dynamic Update; instead, they are used for any content download related to Windows updates.

In a media-based scenario, you will need to download the latest Windows 10 ISO and use it as starting point for customization; for example, removing in-box applications and customizing the user interface, drivers, and applications. For Internet-connected devices, Dynamic Update content will be downloaded directly from HTTPS endpoints. For devices not connected to the Internet, you will first need to download all Dynamic Update content and then patch your media image before initiating Setup. This makes it easier to get your device up to date with the latest available quality update in one step.

Learn more

If you need to ensure that LPs and FODs are retained when updating devices with the latest Windows 10 feature updates, see Language pack acquisition and retention for enterprise devices. To learn more about the process of approving and downloading Dynamic Update content via WSUS for Windows 10, version 1803 and prior, see Using Dynamic Update with WSUS to install Windows 10 feature updates.

In a future blog post, we’ll explore additional scenarios where Dynamic Update can be leveraged for end users and commercial customers. For information on servicing and delivery tools like WSUS, Configuration Manager, or Microsoft Intune—or to learn more about strategies for Windows 10 updates in an organization—see the Quick guide to Windows as a service. To learn more about Windows as a service, check out the Windows as a service gateway on Docs.


Понравилась статья? Поделить с друзьями:
  • Dynamic access control в windows server 2016
  • Dymo mimio view icd03 драйвер скачать windows 10
  • Dying light прекращена работа программы windows 10
  • Dying light не запускается в стиме на windows 10
  • Dying light на 32 bit windows 7 скачать торрент