Ручное обновление билда (версии) Windows из командной строки

Стандартный установщик setup.exe в дистрибутивах Windows может использоваться для интерактивной установки операционной системы или обновлению версии ОС на компьютере. Кроме интерактивного режима, setup.exe поддерживает большое количество параметров командной строки, которые будут полезны системным администраторам. С помощью параметров setup.exe можно автоматизировать обновление билда (версии) Windows 10/11 на компьютерах пользователей с помощью SCCM, MDT или других средств автоматизации.

В этой статье мы покажем, как получить установочный ISO образ с последним билдом Windows 11 (в нашем примере это 24H2), с помощью параметров командной строки setup.exe выполнить проверку совместимости компьютера с новой версией Windows и выполнить обновление билда (in-place upgrade) в фоновом режиме.

Параметры командной строки установщика Windows (setup.exe)

При обычном запуске программы установки Windows ( setup.exe ) из установочного ISO запускается графический мастер установки/обновления. Однако у программы setup.exe есть большое количество параметров командной строки, позволяющих управлять процессом обновления версии ОС (вплоть до полностью автоматического обновления в фоновом режиме).

Общий синтаксис и доступные параметры утилиты Setup.exe перечислены ниже:

/1394Debug:<channel>
[BaudRate:<baudrate>]
/AddBootMgrLast
/Auto {Clean | DataOnly | Upgrade}
/BitLocker {AlwaysSuspend | TryKeepActive | ForceKeepActive}
/BusParams:<bus.device.function>
/CompactOS {Enable / Disable}
/Compat {IgnoreWarning / ScanOnly}
/CopyLogs<location>

/Debug:<port> [BaudRate:<baudrate>]
/DiagnosticPrompt {enable | disable}
/DynamicUpdate {enable | disable}
/EMSPort: {COM1 | COM2 | off} [/emsbaudrate:<baudrate>]
/InstallDrivers<location>
/InstallFrom<path>
/InstallLangPacks<location>
/m:<folder_name>
/MigNEO Disable
/MigrateDrivers {all | none}
/NetDebug:hostip=<w.x.y.z>,port=<n>,key= <q.r.s.t>[,nodhcp][,busparams=n.o.p]
/NoReboot
/PKey<product key>
/Priority Normal
/PostOOBE<location> [setupcomplete.cmd]
/PostRollback<location> [setuprollback.cmd] [/postrollbackcontext {system / user}]
/Quiet
/ReflectDrivers<location>
/ResizeRecoveryPartition {Enable / Disable}

/ShowOOBE {full / none}
/Telemetry {Enable / Disable}
/TempDrive <drive_letter>
/Unattend:<answer_file>
/Uninstall {enable / disable}
/USBDebug:<hostname>
/WDSDiscover
/WDSServer:<servername>

Список доступных параметров установки можно вывести так:

setup.exe /?

Подробную информацию об всех опциях setup.exe и возможных значениях можно получить на странице документации: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-command-line-options?view=windows-11

Генерация актуального установочного ISO образа Windows 11

Чтобы выполнить обновление, вам нужно получить установочный ISO образ с последней версией Windows (на данный момент это Windows 11 24H2).

Вы можете сгенерировать установочный ISO образ с помощью официальной утилиты Media Creation Tool или скачать актуальный Windows 11 multi-edition x64 ISO со страницы загрузки Microsoft (https://www.microsoft.com/en-us/software-download/windows11)

Смонтируйте полученный ISO образ в Windows и распакуйте содержимое образа на файловый сервер.

Проверка совместимости системы с новым билдом Windows 11

Прежде чем приступать к обновлению ОС, нужно проверить, совместим ли компьютер с новым билдом Windows 11, который находится в установочном образе. Откройте командную строку, перейдите в каталог с образом и выполните:

cd c:IsoW1124h2

start /wait SETUP.EXE /Auto Upgrade /NoReboot /DynamicUpdate Disable /Compat ScanOnly

Здесь используются такие параметры setup.exe:

  • /Auto Upgrade – автоматический режим обновления;
  • /NoReboot – запретить перезагрузку компьютера;
  • /DynamicUpdate Disable —не нужно загружать последние обновления через Windows Update;
  • /Compat ScanOnly – выполнить только проверку совместимости, без выполнения обновления.

В данном случае мастер обновления вернул, что обновление невозможно, т.к. компьютер не совместим с требованиями из-за недостаточного размер системного диска.

Можно скрыть графическое окно мастера обновления Windows 11 Setup и вернуть от setup.exe только результат проверки, добавив параметр Quiet .

start /wait setup.exe /Auto Upgrade /Quiet /NoReboot /DynamicUpdate Disable /Compat ScanOnly

После выполнения этой команды, выведите содержимое переменной:

echo %errorlevel%

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

В нашем случае команда вернула значение -1047526912 . Что означает это значение? (в скобках указан шестнадцатеричный код ошибки, его можно получить в калькуляторе преобразовав DEC в HEX значение)

  • -1047526896 (0xC1900210) – ошибок совместимости не найдено
  • -1047526912 (0xC1900200) – компьютер не совместим с минимальными системными требованиями Windows 11 (см. как выполнить обновление Windows 11 на неподдерживаемом железе)
  • -1047526904 (0xC1900208) – несовместимое окружение (hard block)
  • -1047526898 (0xC190020E) – недостаточно свободного места на диске
  • -1047526908 (0xC1900204) – неверная редакция или архитектура образа

Подробнее изучить ошибки при проверки совместимости можно по лог файлам SETUPACT.LOG и SETUPERR.LOG в папке C:$Windows.~BTSourcesPanther , которые генерирует setup.exe в процессе проверки.

Для получения более детальной информации о причине невозможности обновить версию Windows 11 используется утилита setupdiag.exe.

При наличии SCCM вы можете централизованно собрать значения статуса errorlevel с компьютеров пользователей простым пакетом с командой

setup.exe /Compat ScanOnly ….

Автоматическое обновления билда Windows 11 из командной строки

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

start /wait .W1124h2setup.exe /auto upgrade /DynamicUpdate disable /showoobe None /Telemetry Disable /Copylogs %SystemDrive%temp /EULA Accept /compat IgnoreWarning /NoReboot

Мы использовали такие параметры обновления:

  • /Auto:Upgrade сохранить все установленные приложения и данные пользователей.
  • /ShowOOBENone – пропустить экран первоначальной настройки (OOBE)после обновления Windows
  • Можно добавить параметр /migratedrivers all. Используется для принудительного переноса всех драйверов. Если параметр не задан, установщик сам принимает решения по каждому драйверу индивидуально.
  • /Copylogs %SystemDrive%temp – поместить логи обновления в указанный каталог
  • /Telemetry Disable – отключить запись и отправку отчетов телеметрии при установке
  • /EULA Accept – принять лицензионное соглашение
  • /Unattend:unattend.xml – позволяет задать файл ответа для установки (не используется в нашем примере)
  • /Quiet – выполнить обновление в фоновом режиме. Все графические окна Windows Setup не будут отображаться пользователю (автоматическая установка обновления).
  • /Priority low|normal – увеличить или уменьшить приоритет процесса Windows Setup
  • /CompactOS enable|disable – включить или отключить сжатие файлов с помощью функции Compact OS (позволяет сэкономить место на диске)
  • /BitLocker AlwaysSuspend — приостановить шифрование BitLocker при обновлении
  • /Compat IgnoreWarning – игнорировать все сообщения о несовместимости, которые можно пропустить
  • /NoReboot – не перезагружать компьютер автоматически после выполнения обновления.

Начиная с Windows 10 1607 вы можете указывать параметры установки через файл Setupconfig.ini. Этот файл должен находится в каталоге с setup.exe и содержать примерно такой текст, аналогичный команде выше:

[SetupConfig] NoRebootShowOobe=None Telemetry=Disable DynamicUpdate=Disable 

Для запуска обновления Windows 11 с помощью файла параметров используется команда:

Setup.exe /ConfigFile setupconfig.ini


Комментарии

Добавить комментарий

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