Установщик setup.exe в дистрибутиве Windows 10 имеет довольно большой набор параметров командной строки, который может быть интересен администратором для автоматизации и управления обновлением билда (версии/сборки) Windows 10 на компьютерах пользователей с помощью SCCM и других инструментов. В этой статье мы покажем, как использовать параметры setup.exe при выполнении обновления и проверки совместимости с новым билдом Windows 10 .
Параметры установщика Setup.exe в Windows 10
Для обновления билда Windows 10 используется программа установки Windows setup.exe. При обычном запуске setup.exe запускается графический мастер обновления Windows 10, однако у данной программы имеется большое количество параметров командной строки, которые можно использовать для автоматизации обновления ОС на компьютерах пользователей. Общий синтаксис и параметры 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 и их значениях для Windows 10 можно получить на странице документации: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-command-line-options
Генерация актуального ISO образа Windows 10
Чтобы выполнить обновление версии Windows 10б, вам нужно получить установочный ISO образ с последней версией Windows 10. На данный момент это Windows 10 1903.
Вы можете создать ISO образ с актуальной версией Windows 10 с помощью Media Creation Tool.
- Скачайте Media creation tool (https://www.microsoft.com/ru-ru/software-download/windows10);
- Запустите файл MediaCreationTool1903.exe и с помощью мастера укажите, что вы хотите “Создать установочный носитель (USB-устройство, флеш памяти, DVD-диск или ISO файл)”;
- Выберите язык, редакцию и архитектуру (x64 или x86) образа Windows 10, который вы хотите создать;
- Укажите, что вы хотите создать ISO-файл и укажите желаемое имя файла;
- И дождитесь, пока Media Creation Tool закончит загрузку установочного ISO образа Windows 10 на ваш локальный диск.
Распакуйте содержимое ISO образа на файловый сервер.
Проверка совместимости (возможности апгрейда) Windows 10
Перед апгрейдом версии Windows 10 вы можете проверить, возможно ли обновить ваш билд Windows 10 до версии, которая содержится в указанном образе. Для этого выполните команду:
start /wait setup.exe /Auto Upgrade /Quiet /NoReboot /DynamicUpdate Disable /Compat ScanOnly
Используемые параметры:
- /Auto Upgrade – автоматический режим обновления;
- /Quiet – скрыть диалоговые окна мастера обновления;
- /NoReboot – запретить перезагрузку компьютера;
- /DynamicUpdate Disable — указывает, что не нужно загружать последние обновления через Windows Update;
- /Compat ScanOnly – выполнить только проверку совместимости, без выполнения обновления.
Сканирование компьютера на совместимости с новый билдом Windows 10 займет некоторое время.
Вы можете отслеживать завершение процесса сканирования системы с помощью файла C:\$Windows.~BT\Sources\Panther\setupact.log. Сканирование завершено, если в файле содержится строка:
Info MOUPG **************** SetupHost Logging End ****************
Результаты анализа на совместимость содержаться в файле C:\$Windows.~BT\Sources\Panther\setuperr.log. Найдите последнюю строку, которая выглядит так:
CSetupHost::Execute(xxx): Result = xxxxxxxx
Это и есть код результата проверки.
Кроме того, вы можете получить код ошибки при проверке совместимости обновления из командной строки:
echo %errorlevel%
Например, команда вернула вам код -1047526896. Вам нужно с помощью калькулятора в режиме “Программист” вставить код ошибки в десятичном режиме (Dec). Чтобы получить шестнадцатеричный код ошибки, скопируйте значение из поля Hex, отбросив все F в начале и добавив в начало 0x. Например, в моем случае получился код 0xC1900210.
Наиболее распространение коды проверки совместимости ОС с новой версией Windows 10:
- 0xC1900210 – проблем не найдено:
- 0xC1900208 – выявлена проблема совместимости;
- 0xC1900204 и 0xC190010E – невозможно автоматическое обновление (неверный редакция или архитектура Windows);
- 0xC1900200 – компьютер не соответствует минимальным требования для Windows 10l
- 0xC190020E – недостаточно места на диске;
- 0xC1420127 – проблема при отключении WIM файла образа.
В моем случае в логе setuperr.log присутствовала ошибка:
Error MOUPG CSetupHost::Execute(412): Result = 0xC1900208[gle=0x00000003]
Смотрим лог SetupDiagResults.log, который сформировала утилита SetupDiag. В логе указано, что есть две причины, которые мешают выполнить апгрейд Windows 10:
- CompatBlockedApplicationAutoUninstall — найдено несовместимое приложение, которое нужно удалить перед апгрейдом версии.
- FindAbruptDownlevelFailure — информация о последней ошибке, когда записи в журнале неожиданно обрываются.
Matching Profile found: CompatBlockedApplicationAutoUninstall, FindAbruptDownlevelFailure - BEBA5BC6-6150-413E-8ACE-5E1EC8D34DD5, 55882B1A-DA3E-408A-9076-23B22A0472BD SetupDiag version: 1.6.0.0
При этом в конце журнала указано, что перед обновлением нужно удалить установленный антивирус McAfee.
You must uninstall "McAfee VirusScan Enterprise" before continuing with the installation/update.
При наличии SCCM вы можете централизованно собрать значения статуса errorlevel с компьютеров пользователей простым пакетом с командой
setup.exe /Compat ScanOnly ….
.
Автоматизация обновления версии Windows 10 из командной строки
Если вы не выявили проблем совместимости, которые мешают обновлению билда Windows 10, вы можете запустить обновление на компьютере с помощью простого скрипта. Создайте в сетевой папке с распакованным дистрибутивом Windows 10 простой bat файл run_win10_upgrade.bat со следующим кодом:
start /wait .\ W101903\Windows10x64-1903_ru\setup.exe /auto upgrade /DynamicUpdate disable /showoobe None /Telemetry Disable
Параметр /migratedrivers all – используется для принудительного переноса всех драйверов. Если параметр не задан, установщик сам принимает решения по каждому драйверу индивидуально.
Вы можете использовать другие опции setup.exe при обновлении Windows 10.
Начиная с Windows 10 1607 вы можете указывать параметры установки через файл Setupconfig.ini. Этот файл должен находится в каталоге с setup.exe и содержать примерно такой текст, аналогичный команде выше:
[SetupConfig] NoReboot ShowOobe=None Telemetry=Disable DynamicUpdate=Disable
Для запуска обновления Windows 10 с помощью файла параметров используется команда:
Setup.exe /ConfigFile setupconfig.ini
Прикольно. Но зачем?
Автоматизация обновления билдов для небольших сетей. Можно централизованно управлять обновлением тихим билда из сетевой даже через GPO или скрипты.
Команда для SCCM — setup.exe /Compat ScanOnly …
3 точки это опечатка?
Тут речь о том, что вы сами можете подобрать нужные параметры. Или использовать мои вариант setup.exe чуть выше.
подскажите, какие настройки выполнить для клиента (естественно через GPO),когда новая сборка установилась с WSUSа, и заставить компьютер ночью перезагрузиться с установкой нового билда. обычная настройка перезагрузки для установки обновлений не запускает установку новой сборки. а если пользователь выбирает обновить и завершить, то на утро получает 30 минутный перерыв в виде «синего экрана» с надписью «подождите, идет установка обновлений». вопрос только про установку Билда. с установкой обновлений проблем нет
В GPO ничего подобного нет. В этом случае наверно лучше использовать некое внешнее средство для раскатки нового билда ( SCCM, скрипты).
Либо как вариант, можно сделать отдельную политику WSUS с security filtering на группу компьютеров с автоустановкой и перезагрукой для апдейта билда. Вам нужно будет периодически добавлять в эту группу компьютеры для планового автообновления и затем через какое-то время исключать. Но тут нужно все правильно планировать и, конечно, понадобится ручное добавление/исключение компьютеров из группы.
Встал вопрос обновить все ПК до билда 22H2. Причем у существующих ПК текущие билды от 1809 до 21H2.
Какие пакеты обновлений мне выбрать чтобы ТОЛЬКО перейти на последний билд винды? Без всех остальных обновлений.
Качаете ISO образ Win22H2 и выполняете с него обновление по этой статье.
Отдельными апдейтами вы билд не поднимите.
Все остальные обновления будут на новый билд будут приезжать стандартно через wsus/windows update
От 20H1 до 21H2 можете воспользоваться обновлением KB5015684, поднимет версию билда до 22H2. Все, что ниже 20H1 только через обновление или через чистую установку.