Сценарий windows cmd установка

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

Если вы имеете обыкновение скачивать программное обеспечение с торрентов и других свободных источников, возможно, вам уже приходилось находить в папке с программой файлы командной строки «Тихая установка». Что они из себя представляют и для чего нужны? Впрочем, догадаться об их назначении не трудно, о нём говорит само название. Если такой файл запустить, программа будет установлена в так называемом тихом режиме.

Когда пользователь устанавливает какую-нибудь программу, обычно мастер последовательно задаёт ряд вопросов: принимаете ли вы лицензионное соглашение, в какой каталог производить копирование программных файлов, устанавливать ли приложение только для администратора или для всех пользователей и прочее, и прочее. Тихий же режим инсталляции означает, что данная программа будет установлена автоматически, не задавая при этом «лишних» вопросов.

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

Могут ли рядовые пользователи сами устанавливать программы в тихом режиме? Разумеется, чего-то особенно сложного в этом нет, хотя с определёнными тонкостями в процессе создания командных или конфигурационных файлов столкнуться всё же придётся. Процедура установки в тихом режиме может быть выполнена несколькими способами:

Из командной строки.
Из диалогового окошка «Выполнить».
С помощью CMD или BAT-файла.
Через самораспаковывающийся архив с включённым в него конфигурационным файлом.

Самым распространённым способом является использование командных файлов. Первые два способа — это всего лишь варианты третьего, а вот о четвёртом следует сказать пару слов отдельно. Применяется он обычно в тех случаях, когда режим тихой установки не предусмотрен разработчиком приложения. SFX-архивы позволяют производить автоматическую распаковку исполняемых файлов программ в нужное расположение, запускать их с нужными ключами, а также выполнять много других действий. Управляются SFX-архивы посредством конфигурационных файлов, содержащих специальные инструкции.

Поскольку создание самораспаковывающихся инсталляционных архивов имеет множество нюансов, рассматривать их в этой статье мы не будет, для начала разберём наиболее простой способ — создание CMD или BAT-файлов. Запуск тихой установки выполняется с помощью параметров командной строки или иначе ключей. Параметров этих довольно много, кроме того, для конкретных случаев необходимо использовать соответствующий параметр.

Выбор ключа зависит от того, в каком упаковщике был собран исполняемый файл приложения. Получить необходимую информацию о ключах тихой установки иногда можно на официальном сайте или форуме разработчика, также можно воспользоваться специальной утилитой Universal Silent Switch Finder. Запустите её, укажите путь к исполняемому файлу, и она выдаст всю основную информацию. Интерес представляют два параметра File Type (тип упаковщика) и Usage (используемые ключи).

Universal Silent Switch Finder

Рассмотрим всё на конкретном примере — тихой установке графического просмотрщика XnView. Утилита Universal Silent Switch Finder выдала нам тип упаковщика Inno Setup и четыре ключа: /VERYSILENT, /SUPPRESSMSGBOXES и, /NORESTART и SP-, хотя на самом деле для типа инсталлятора XnView их гораздо больше.

/VERYSILENT — скрывает окошко мастера установщика и сам установочный процесс.
/SUPPRESSMSGBOXES — подавляет сообщения установщика (ключ работает в паре с SILENT и /VERYSILENT).
/NORESTART — отключает требование перезагрузки компьютера после ускоренной установки
• /SP- — отключает сообщение «Эта программа установит на ваш компьютер…».

Установщик Inno Setup также поддерживает ключи /help, /log, /nocancel, /restartexitcode, /closeapplications, /restartapplications, /lang, /dir, /noicons, /password и ещё как минимум пять параметров. Для других установщиков ключи могут быть иные, например, для NSIS и InstallShield ключом тихой установки является /S. Перечисление всех ключей заняло бы у нас слишком много времени, если вы хотите получить больше информации относительно поддерживаемых разными инсталляторами ключей, то всё это можно найти в интернете.

Итак, зная ключи, давайте напишем командный файл для программы XnView. Создайте в Блокноте новый текстовый файл и вставьте в него такую строку:

XnView-win-full.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART

Командный файл

Сохраните файл как SilentInstall.cmd (название роли не играет) и поместите в папку (!) с исполняемым файлом устанавливаемого приложения. Запустите его двойным кликом и через несколько секунд программа будет установлена.

Программа будет установлена

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

Пакетный режим

Как видите, ничего сложного, главное знать тип инсталлятора и поддерживаемые им параметры, а остальное, как говорится, приложится.

Тихая установка

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

Утилита для определения типа установщика и поддерживаемых ключей: www.softpedia.com/get/System/Launchers-Shutdown-Tools/Universal-Silent-Switch-Finder.shtml

Загрузка…

Содержание

  1. добавление пользовательского скрипта в программа установки Windows
  2. Запуск скрипта после завершения установки (SetupComplete. cmd)
  3. выполнение скрипта, если программа установки Windows обнаруживает неустранимую ошибку (ErrorHandler. cmd)
  4. Add a Custom Script to Windows Setup
  5. Windows setup scripts
  6. Run a script after setup is complete (SetupComplete.cmd)
  7. Order of operations
  8. Run a script if WindowsВ Setup encounters a fatal error (ErrorHandler.cmd)
  9. Use ErrorHandler.cmd
  10. Use Unattend to run scripts
  11. Вадим Стеркин
  12. [+] Сегодня в программе
  13. Файл ответов
  14. Издание, ключ продукта и активация
  15. Учетная запись
  16. Пароль и автоматический вход в аккаунт
  17. Управление дисками
  18. Ссылки по теме
  19. Об авторе
  20. Вас также может заинтересовать:
  21. Я в Telegram
  22. комментариев 30
  23. Customize SetupComplete.cmd and SetupRollback.cmd
  24. 7 thoughts on “Customize SetupComplete.cmd and SetupRollback.cmd”
  25. Leave a Comment Cancel reply
  26. Параметры командной строки программы установки Windows
  27. /1394Debug
  28. /аддбутмгрласт
  29. /битлоккер
  30. /буспарамс
  31. /ConfigFile
  32. /компактос
  33. /Compat
  34. /копилогс
  35. /Debug
  36. /диагностикпромпт
  37. /DynamicUpdate
  38. /емспорт
  39. /финализе
  40. /имажеиндекс
  41. /инсталлдриверс
  42. /InstallFrom
  43. /инсталллангпаккс
  44. /мигнео
  45. /мигратедриверс
  46. /нетдебуг
  47. /норебут
  48. /приорити
  49. /постубе
  50. /построллбакк
  51. /Quiet
  52. /рефлектдриверс
  53. /ресизерековерипартитион
  54. /шовубе
  55. /скипфинализе
  56. /телеметри
  57. Убедиться
  58. /Unattend
  59. /Uninstall
  60. /усбдебуг
  61. /вдсдисковер
  62. /вдссервер

добавление пользовательского скрипта в программа установки Windows

Windows скрипты автоматической установки: создайте файл Unattend.xml с одним из этих параметров для запуска во время программа установки Windows процесса. Его можно использовать с ключами продукта OEM.

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

Некоторые из этих параметров выполняются в контексте пользователя, а другие выполняются в контексте системы в зависимости от этапа настройки.

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

Запуск скрипта после завершения установки (SetupComplete. cmd)

Порядок операций

после установки Windows, но до появления экрана входа программа установки Windows выполняет поиск файла SetupComplete. cmd в каталоге сценариев установки% WINDIR%.

Программа установки не проверяет коды выхода или уровни ошибок в скрипте после выполнения команды Setupcomplete. cmd.

Предупреждение об ошибке Невозможно перезагрузить систему и возобновить выполнение Setupcomplete. cmd. Не следует перезагружать систему, добавляя команду, например shutdown-r. Система будет переведена в неисправное состояние.

выполнение скрипта, если программа установки Windows обнаруживает неустранимую ошибку (ErrorHandler. cmd)

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

если программа установки Windows обнаружит неустранимую ошибку и не сможет завершить установку, программа установки Windows выполняет поиск командного скрипта в следующем каталоге: % WINDIR% программа установки scripts ErrorHandler. cmd. В зависимости от того, найден ли скрипт, будет выполнено одно из двух действий.

в зависимости от этапа программа установки Windows компьютер вернется к среде, из которой выполнялся программа установки Windows, например в более ранней версии операционной системы или среда предустановки Windows (Windows PE).

могут возникнуть экземпляры, когда программа установки Windows встречает более одной ошибки и несколько раз запускает скрипт ErrorHandler. cmd. При разработке кода для ErrorHandler. cmd убедитесь, что этот сценарий можно запустить несколько раз.

Чтобы использовать ErrorHandler. cmd, можно выполнить одно из следующих действий.

Подключите образ и добавьте его к образу в сценариях программы установки% WINDIR% ErrorHandler. cmd. Отключите образ.

Источник

Add a Custom Script to Windows Setup

Windows setup scripts

Setupcomplete.cmd and ErrorHandler.cmd are custom scripts that run during or after the Windows Setup process. They can be used to install applications or run other tasks by using cscript/wscript scripts.

Run a script after setup is complete (SetupComplete.cmd)

Order of operations

After Windows is installed but before the logon screen appears, WindowsВ Setup searches for the SetupComplete.cmd file in the %WINDIR%SetupScripts directory.

If a SetupComplete.cmd file is found, Windows Setup runs the script. WindowsВ Setup logs the action in the C:WindowsPantherUnattendGCSetupact.log file.

Setup does not verify any exit codes or error levels in the script after it executes SetupComplete.cmd.

If the computer joins a domain during installation, the Group Policy that is defined in the domain is not applied to the computer until Setupcomplete.cmd is finished. This is to make sure that the Group Policy configuration activity does not interfere with the script.

Run a script if WindowsВ Setup encounters a fatal error (ErrorHandler.cmd)

ErrorHandler.cmd is useful when you’re installing many systems at the same time. This helps you detect when an error occurs during WindowsВ Setup. When it does, Setup automatically runs a script that can contain custom commands or actions to address the cause of the error.

If WindowsВ Setup encounters a fatal error and is prevented from completing the installation, WindowsВ Setup searches for a command script in the following directory: %WINDIR%SetupScriptsErrorHandler.cmd. One of two actions will occur, depending on whether the script is found.

Depending on the phase of WindowsВ Setup, the computer will return to the environment from which WindowsВ Setup was executed, such as an earlier version of the operating system or Windows Preinstallation Environment (WindowsВ PE), for example.

There may be instances when WindowsВ Setup encounters more than one error and runs the ErrorHandler.cmd script more than once. When developing the code for ErrorHandler.cmd, make sure that you can run this script multiple times.

Use ErrorHandler.cmd

To use ErrorHandler.cmd, you can do either of the following:

Mount the image, and add it to the image, in %WINDIR%SetupScriptsErrorHandler.cmd. Unmount the image.

Add ErrorHandler.cmd to a temporary file location (for example, C:TempErrorHandler.cmd), and then run Windows Setup using the /m option.

Use Unattend to run scripts

Create an Unattend.xml file with one of these settings to run during the Windows Setup process. This can be used with OEM product keys.

To run services or commands that can start at the same time, use RunAsynchronousCommands.

Some of these settings run in the user context, others run in the system context depending on the configuration pass.

Add Microsoft-Windows-SetupRunAsynchronousCommand or RunSynchronousCommand to run a script as Windows Setup starts. This can be helpful for setting hard disk partitions.

Add Microsoft-Windows-DeploymentRunAsynchronousCommand or RunSynchronousCommand to the auditUser configuration pass to run a script that runs when the PC enters audit mode. This can be helpful for tasks like automated app installation or testing.

Add Microsoft-Windows-Shell-SetupLogonCommandsAsynchronousCommand or FirstLogonCommandsSynchronousCommand to run after the Out of Box Experience (OOBE) but before the user sees the desktop. This can be especially useful to set up language-specific apps or content after the user has already selected their language.

Use these scripts sparingly because long scripts can prevent the user from reaching the Start screen quickly. For retail versions of Windows, additional restrictions apply to these scripts. For info, see the Licensing and Policy guidance on the OEM Partner Center.

When you add a script using FirstLogonCommands, it will be triggered on the next boot, even if you boot into audit mode using Ctrl+Shift+F3. To boot to audit mode without triggering these scripts, add the setting: Microsoft-Windows-DeploymentResealMode = Audit.

Источник

Вадим Стеркин

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

[+] Сегодня в программе

Файл ответов

За счет файла значительно сокращается количество экранов программы установки, из которых остаются только:

Файл предназначен для 64-разрядной Windows 10. Сохраните его с именем AutoUnattend.xml в корень установочной флэшки.

Файл рассчитан на английскую ОС с этим же языком ввода по умолчанию, но русским языком для программ, не поддерживающих Юникод.

Для русской версии замените en-US на ru-RU и наоборот везде кроме SystemLocale (если ничего не менять, надо будет вручную указать язык интерфейса, форматов и метода ввода).

Издание, ключ продукта и активация

Издание выбирается на основе ключа продукта в файле ответов. Если ключ не указан, выводится список всех изданий в WIM-образе за исключением случая, когда ноутбук шел с Windows 8 и новее. В этом варианте эквивалентное издание Windows 10 автоматически выбирается на основе данных UEFI BIOS, а после установки система активируется (верно на момент публикации статьи).

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

Учетная запись

Я создаю локальную учетную запись, убивая двух зайцев:

Пароль и автоматический вход в аккаунт

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

unattend01

unattend02

Управление дисками

Я рекомендую UEFI и GPT.

Ссылки по теме

С таким файлом ответов я на днях поставил Windows 10 на ноутбук с SSD за 9 минут. Быстрой вам установки!

Метки: автоустановка Информация в статье применима к Windows 10 и новее

Об авторе

Вас также может заинтересовать:

Я в Telegram

Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.

комментариев 30

Вадим, поправьте если ошибаюсь, в стародавние времена, в файле ответов еще часовой пояс указывался?

Владимир, по умолчанию часовой пояс соответствует языку дистрибутива. Конечно, можно в файле ответов указать, и на сайте автоустановки это есть в пошаговом рук-ве и примерах. Здесь — базовый универсальный файл.

Вадим, подскажите, почему после установки языки ввода en-US, uk-UA, если в файле ответов указано в т.ч ru-RU

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

Образ для установки использую 1909_64BIT_Russian_Pro, после установки и входа получаю RU интерфейс с UA региональными параметрами и раскладками en-US; uk-UA, без ru-RU, хотя он явно указан и присутствует в образе установки.

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

Если получается, укажите в InputLocale файла ответов через точку с запятой идентификаторы вида 0409:00000409 из

Их более наглядный список тут.

Действительно, указав в таком виде раскладки все корректно отработло. Спасибо.

Вроде как, если загрузились через UEFI, то диск, на который будет установлена система, автоматически будет размечен/переконвертирован в GPT. Или тут есть подводные камни, о которые можно споткнуться?

Я не могу отвечать за все многообразие конфигураций, поэтому показываю способ, исключающий подводные камни.

0iCfusi76hMLEGENDED

Вот мне заняться нечем как винду на нг себе или кому-то ставить…

Файл можно использовать не только в новый год

Я один просто отключал инет чтобы пропустить окно создания microsoft учетки?

Это один из вариантов, есть другой

Два простых способа вытащить на поверхность возможность создания локального аккаунта в #Windows10 Home 1903+

• Не подключаться к интернету в процессе установки.

• Ввести неправильные данные учётной записи Майкрософт. Самый короткий вариант: логин 1@1.ru, пароль 1. pic.twitter.com/jwaD9V7Fdq

e2CR0e63Ptizz

Локальной учетной записи не задаются три контрольных вопроса

Всегда устанавливаю с локальной учетной записью, и всегда задаются три вопроса. Буквально вчера устанавливал 1909.

При ручной установке всегда задаются, при автоматической с приведенным файлом ответов — не задаются. И это логично, ведь вы автоматизируете установку 😉

Вадим, пару дней назад обновился на 1909 (только сейчас). Корпоративная. Обновлялся через центр обновления. Но как-то необычно. До сих пор обновление происходило со скачиванием полного дистрибутива, с созданием папки Windows.old и т.д. А на этот раз ничего из этого. Это у майкрософт новая политика доставки пошла или я чего-то недопонимаю. Браузер Edge открылся с новой страничкой со сведениями о новшествах, в сведениях «о сборке ОС» стоит 1909. Хотя я даже рад, что упростили всё. В свойствах сети включено «лимитное подключение», в фоновом режиме новая сборка не скачивалась. Буквально пару минут, и новая сборка. И трафика ушло копейки. Если что, разъясните пожалуйста.

Евгений, вопрос не по теме статьи. Ответ есть в канале ТГ https://t.me/sterkin_ru/835 и чате @winsiders по хэштегу #vnext

Я закомментировал раздел UserAccounts полностью, т.к. не хочу заранее задавать имя пользователя. Но при установке там кроме ввода логина и пароля выходит третий пункт про журнал действий. Можно как-то избавиться от него?

Для журнала действий не предусмотрен параметр файла ответов.

Можно пробовать реестр из setupcomplete.cmd
примерно так. Соответственно, нужно добавлять его в образ или использовать ОЕМ-папки.

читал, что SetupComplete.cmd не выполняется на Windows 10. Пробовал, действительно ничего не происходит. Да и разве он срабатывает не после установки?
как аналог пробовал FirstLogonCommands в файле ответов, но это работает тоже после установки
остаётся только режим аудита?

Setupcomplete в Windows 10 работает, однако не выполняется при использовании ключей ОЕМ, о чем написано в статье по ссылке, которую я дал вам выше. В той же статье ссылка на документацию.

Файл срабатывает по окончании установки ОС. На момент создания учетных записей программой установки ОС уже установлена.

Вопросы о проблемах с файлом направляйте в форум http://forum.oszone.net/thread-128960.html

Такой момент — после установки заметил что в списке предпочитаемых языков в новой панели управления Английский сверху — в результате в программах магазина сразу выставляется английский язык интерфейса. каким параметром это задается?

По умолчанию предпочитаемый язык равен языку интерфейса. Для списка предпочитаемых языков параметра файла ответов нет. Это пользовательская настройка.

Вадим, скажите, пожалуйста, а кроме пользователя Admin в приведенном вами примере будет ли создаваться дефолтный пользователь Administrator?

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

И еще вопрос. Не совсем понятно с KMS keys. Могу ли я в указать свой обычный пользовательский product key для активации или там обязательно указывать один из KMS-ключей, перечисленных по ссылке на Microsoft Docs?

Вы можете прописать ключ KMS для установки (но не активации) или указать свой.

Добрый вечер! Можно ли вообще убрать экран с вводом пароля.

Можно. Для этого надо прочесть раздел статьи «Пароль и автоматический вход в аккаунт».

Источник

Customize SetupComplete.cmd and SetupRollback.cmd

Why? Ever want to run a few tasks after upgrade, or more importantly, ensure a few things happen if the upgrade goes south and rollsback? Why not hitch a ride on what ConfigMgr is doing natively and add a few things you need.

Supported? Highly unlikely. Please test, and please don’t say “Gary did it” as rationalization when someone asks why you decided to do this.

Do you do it? Heck yes I do, in my lab. Need to get a little more test results before implementing in Production

How do you use it? I’m not telling! Oh wait, that’s why I’m blogging. I modify the SetupRollback.cmd to ensure the machine is pulled out of provisioning mode when it the upgrade rolls back, and to set a registry key for our reporting, and trigger hardware inventory.

More background.
ConfigMgr has two files in the c:windowsccm folder that it uses:

During the IPU Task Sequence, the Run OS Upgrade Step does many many things (OSDUpgradeOS.exe), like place the machine into provisioning mode, compile the command line to be used with the Windows 10 Setup Engine, and more, including, what we’ve gather here today to talk about, creating the SetupComplete.cmd and SetupRollback.cmd files.

image thumb 75

These files also live on your server, so if you want to modify the ones in your boot media for whatever reason, you’d do it here: %Program Files%Microsoft Configuration ManagerOSDbinx64
image thumb 76

Knowing this information, we can then create our own package with those files.
image thumb 77
I’ve created a readme file with basic info (I tend to forget, which is why I blog and document). I also created Append text files for each, which contains the additional information I’ve added to each of the two command files. Why? So the next time I update CM to the next Current Branch, I can grab the latest SetupCompleteTemplate.cmd and SetupRollbackTemplate.cmd files and use those. Perhaps the CM Team updated the scripts with some useful items. This way, I can just delete the 2 I have, copy the new ones over, and append my additional code to them.

SetupRollbackTemplate.cmd: (Yellow is what I added)
image thumb 78

In the In Place Upgrade Task Sequence:
image thumb 79

xcopy *.cmd «%WINDIR%CCM» /Q /Y /I

I also made a minor change in the SetupComplete.cmd, just so I could confirm this was working without having to reproduce an actual rollback.
image thumb 80

And as you can see, after the upgrade, the registry key is updated, the log file is also updated.
image thumb 81

SetupComplete (just creating a test key, I really don’t have anything I need to do with this, as anything post upgrade I do in the TS)
SetupComplete2

SetupFallback, Update WaaS_Status Key, Pull from Provisioning Mode, Trigger HWinv
SetupComplete1

SetupComplete3

I hope you find this interesting, if not helpful.
Thanks to @MikeTerrill for showing me these files on the Server, and peeking my curiosity as I search for ways to improve the IPU process, one of which is to reduce the number of machines stuck in provisioning mode after they roll back.
Originally Posted on GARYTOWN.COM

7 thoughts on “Customize SetupComplete.cmd and SetupRollback.cmd”

Hey Gary, good stuff. We do something similar for our IPU as well to handle some BitLocker scenarios and we found we had to manage two instances of the SetupCompleteTemplate.cmd file depending on the version of CM installed on the client. When we moved to the 1710 version of the client from previous versions, we had to accommodate both until all clients were upgraded as there were differences in the file between the two versions. Just something to watch out for but following your process above to simply append to the existing files no matter what version is installed would be easier and thanks for the tip!

Thanks so much for the post. It’s funny, up until recently I never even heard of SetupComplete.cmd.

I am working on upgrading our Win 7 & 10 computers to Win 1803 or 09. Unfortunately we use Symantec encryption. The Symantec supplied scripts are not made for SCCM, or at least, it certainly doesn’t seem like it.

Symantec has their own SetupComplete.cmd that needs to run. This a great idea adding it to the template. Hope it works. Thanks again!

We have the same dilemma with SED (PGP) whole disk encryption. I’m trying to work through in place upgrades using SCCM and its a real pain, as all of symantec products always are. If you are able to share, can you share with me how you achieved IPU with PGP encrypted disks? I came here from googling how others did it, and then wanting to figure out exactly how SCCM leverages these template files.

Gary, Hunter,
We use both SED (versions10.4, 10.3) and SEE (11.2.1, 11.2 and 11.0) and I was able to modify the Symantec scripts to work with SCCM.
To combine them all I used a script to do a GUID search for the product IDs. If 11.2.1 was installed it would copy the upgrade scripts to the computer.
I did modify Symantec’s upgrade scripts to allow common variables between both SED and SEE.
In the task sequence, I run upgrade script before the upgrade OS setup. For the upgrade OS steps, I used the Set Task Sequence Variable = OSDSetupAdditionalUpgradeOptions to add the reflected drivers (which are copied with the upgrade script to the c:pgptemp folder).
If you need the scripts or more help shoot me an email.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Источник

Параметры командной строки программы установки Windows

для программа установки Windows (setup.exe) доступны следующие параметры командной строки. начиная с Windows 10 версии 1607 можно использовать файл сетупконфиг в качестве альтернативы передаче параметров в программа установки Windows в командной строке. дополнительные сведения см. в разделе общие сведения об автоматизации программа установки Windows.

/1394Debug

включает отладку ядра через порт IEEE 1394 (FireWire), пока работает Windows и на этапе настройки WindowsPE программа установки Windows.

Синтаксис
/1394Debug: [скорость: ]

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

Замечания
Значение по умолчанию для равно 1. указывает скорость, используемую при Windows передаче данных во время отладки. Значение по умолчанию — 19200, но также можно задать 57600 или 115200.

/аддбутмгрласт

указывает программа установки Windows добавить диспетчер загрузки Windows в качестве последней записи в порядке загрузки встроенного по UEFI.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 и более поздних версий Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

Замечания
этот параметр поддерживается только на компьютерах UEFI под управлением Windows PE 4,0 или более поздней версии.

Выполняет автоматическое обновление до более новой версии Windows.

Параметр Описание
Очистить Выполняет чистую установку Windows
DataOnly выполняет обновление Windows, сохраняя только данные (а не приложения). если параметр установки только для данных недоступен из-за проверки совместимости, программа установки Windows будет выходить из системы автоматически и регистрировать код выхода.
Обновление выполняет обновление Windows сохранения приложений и данных. если параметр установки обновления недоступен или пользователь должен устранить проблему совместимости приложений, программа установки Windows будет автоматически завершать работу и регистрировать код выхода.
ноаутоеит Не используется начиная с Windows 10. в Windows 8.1, если обнаружена ошибка, программа установки Windows не завершает работу, а останавливается и остается на экране программа установки Windows, пока пользователь не исправляет ошибку. Установка с этого момента будет промерена.
перформду Не используется начиная с Windows 10. в Windows 8.1 программа установки Windows проверяет наличие динамических обновлений для программа установки Windows

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Нет

при использовании /ауто программа установки Windows будет обновляться с помощью образа саурцесинсталл.вим Windows. С помощью DISM/експорт-имажеэтот образ можно использовать как исходный образ для экспорта нового образа с помощью параметра/Compress: Recovery. этот экспортируемый образ должен иметь имя install. esd, чтобы программа установки Windows использовать вместо install. wim. Кроме того, необходимо удалить install. wim из саурцес. если требуется уменьшить размер образа Windows, экспортируйте его только в install. esd. Экспортируемый образ будет меньше, но не будет подключен.

начиная с Windows 11, /ауто не принимает и не сурпресс лицензионное соглашение. См. /еула.

/битлоккер

Указывает состояние BitLocker во время обновления.

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

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

/буспарамс

Указывает PCI-адрес порта 1394, USB или NET Debug.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

Замечания
Номера шины, устройстваи функции должны быть в десятичном формате. Дополнительные сведения см. в разделе Настройка отладки ядра с помощью USB 2,0.

/ConfigFile

Указывает расположение файла сетупконфиг.

Параметр Описание
локальный путь к файлу или сетевой путь UNC к папке, содержащей файл конфигурации программа установки Windows.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Нет

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

/компактос

Указывает, следует ли использовать функцию Compact OS для экономии места на жестком диске.

Параметр Описание
Включить Windows программа установки устанавливает Windows с помощью сжатых системных файлов.
Отключить Windows программа установки устанавливает Windows с использованием несжатых системных файлов.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
по умолчанию программа установки Windows определяет, следует ли использовать эту функцию автоматически. Дополнительные сведения о Compact OS см. в разделе Оптимизация операционной системы, однокомпонентного создания экземпляров и оптимизации изображений.

/Compat

указывает программа установки Windows, как работать с проверками совместимости и сообщениями.

Параметр Описание
IgnoreWarning Windows Программа установки завершает установку, игнорируя любые сообщения о совместимости который можно скрыть.
ScanOnly Windows Программа установки запускается с помощью проверки совместимости, а затем завершает работу (без завершения установки) с кодом выхода, указывающим на наличие проблем совместимости. Windows Если проблем не обнаружено, программа установки возвратит 0xC1900210. Windows Программа установки возвратит 0xC1900208, если обнаружены проблемы совместимости.

Эта команда работает с другими параметрами. для запуска программа установки Windows в фоновом режиме без какого бы то ни было пользовательского интерфейса:

Чтобы игнорировать общие отказы в пользовательском интерфейсе, например изменения языка:

часто Pro просматривает совместимое XML, если программа установки Windows находит проблемы совместимости. используйте /копилогс для получения журналов программа установки Windows:

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да только с /compat IgnoreWarning

Замечания
этот параметр доступен начиная с Windows 10 и выше.

при запуске программа установки Windows с помощью /Compat ScanOnly:

/копилогс

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

Параметр Описание
Локальный путь к файлу или сетевые пути в формате UNC.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
Принятые параметры — это локальные пути к файлам и сетевые пути в формате UNC. Выполнение выполняется в контексте системы, поэтому у него могут отсутствовать разрешения на копирование в расположения, для которых требуются разрешения пользователя.

/Debug

включает отладку ядра через порт связи (COM) при выполнении Windows и во время этапа настройки WindowsPE программа установки Windows.

Параметр Описание
Указывает порт отладки. Значение по умолчанию — 1.
указывает скорость, используемую при Windows передаче данных во время отладки. Значение по умолчанию — 19200, но также может иметь значение 57600 или 115200.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

/диагностикпромпт

указывает, что командная строка доступна во время программа установки Windows.

Параметр Описание
Включить доступ к командной строке можно получить, нажав клавиши Shift + F10 во время программа установки Windows.
Отключить командная строка недоступна во время программа установки Windows. Командная строка будет недоступна, пока выполняются фазы offline и OOBE. Это параметр по умолчанию.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
этот параметр доступен начиная с Windows 10 версии 1703.

/DynamicUpdate

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

Параметр Описание
Включить Выполняются операции динамического обновления.
Отключить Динамические операции обновления не выполняются.
Драйверы Выполняются динамические операции обновления, за исключением получения драйвера.
нодриверснолку Динамические операции обновления выполняются, за исключением драйвера и последнего накопительного пакета обновления.
нолку Динамические операции обновления выполняются, за исключением последнего накопительного пакета обновления.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да для обновлений компонентов на основе Центр обновления Майкрософт (MU); Да для обновлений компонентов на основе унифицированной платформы (УУП) только в том случае, если указаны драйверы/DynamicUpdate

/емспорт

включает или отключает службы аварийного управления (EMS) во время программа установки Windows и после установки серверной операционной системы.

Параметр Описание
ПОРТУ Включает EMS через порт COM1. Поддерживается только для систем x86.
COM2 Включает EMS через порт COM2. Поддерживается только для систем x86.
усебиоссеттингс использует параметр, который указывает BIOS. для систем x86 Windows использует значение из таблицы перенаправления консоли последовательных портов (SPCR). если в BIOS не указаны пути к устройству таблицы SPCR или консоли EFI, Windows отключает EMS.
Выключено Отключает EMS. если служба ems отключена в программа установки Windows, можно позднее включить ems, изменив параметры загрузки.
указывает скорость, используемую при Windows передаче данных во время отладки. Значение по умолчанию — 19200, но оно также может быть равно 57600 или 115200.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

инструкции программа установки Windows для подавления программа установки Windows пользовательского лицензионного соглашения.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

/финализе

инструкции программа установки Windows для завершения ранее запущенных операций обновления в ос нижнего уровня, за которыми следует немедленная перезагрузка для запуска этапа «вне сети».

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Нет

/имажеиндекс

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

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да для обновлений компонентов на основе Центр обновления Майкрософт (MU); Нет для обновлений компонентов на основе унифицированных обновленных платформ (УУП)

/инсталлдриверс

добавляет драйверы стиля inf к новой установке Windows 10.

Параметр Описание
Локальный путь к файлу или сетевой путь UNC к папке, содержащей INF-файлы.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
Это новый параметр, начинающийся в Windows 10. Файл driver. INF может находиться в папке в указанном расположении. Команда выполняет рекурсивный перебор в указанном расположении.

/InstallFrom

указывает другой файл Install. wim для использования во время программа установки Windows.

Путь устанавливаемого WIM-файла.

Этот параметр также можно использовать с файлами разделенных изображений (. SWM). Выберите первый разделенный файл изображения в серии

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Нет

Замечания
это позволяет использовать одну среду предустановки для установки нескольких версий Windows образов. например, можно использовать 32-разрядную версию программа установки Windows для развертывания 64-разрядного Windows образа. Можно также использовать файл ответов для межплатформенных развертываний. дополнительные сведения см. в разделе «создание WIM для нескольких типов архитектуры» статьи программа установки Windows поддерживаемые платформы и межплатформенные развертывания

/инсталллангпаккс

добавляет языковые пакеты (lp.cab) в новую установку Windows 10 или выше.

Параметр Описание
Локальный путь к файлу или сетевой путь UNC к папке, содержащей INF-файлы.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да для обновлений компонентов на основе Центр обновления Майкрософт (MU); Нет для обновлений компонентов на основе унифицированных обновленных платформ (УУП)

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

Параметр Описание
Имя и расположение папки, содержащей файлы замены. это может быть любое расположение на локальном диске. Пути в формате UNC не поддерживаются.

При изменении ресурсов в файлах замены необходимо добавить в установку обновленные файлы многоязычного пользовательского интерфейса (MUI).

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

/мигнео

указывает программа установки Windows выполнить обновление Windows без дополнительных оптимизаций автономных этапов.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да только с обновлением/АУТО | Только с единственным
setupconfig.ini файлы, используемые для обновлений компонентов Да только с обновлением/АУТО | Только с единственным

Замечания
NEO — это цель, не относящаяся к событию, для сокращения времени автономного обновления компонентов, включая одну перезагрузку для большинства пользователей. этот параметр доступен начиная с Windows 10 версии 1803 и более поздних версий.

/мигратедриверс

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

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
Можно указать значение ALL или None. по умолчанию программа установки Windows определяет оптимальное значение для каждого отдельного драйвера в зависимости от выбранного варианта установки. Этот параметр можно использовать с /инсталлдриверс, хотя это и не является обязательным.

/нетдебуг

Включает отладку ядра по сети.

Параметр Описание
IP-адрес главного компьютера.
Порт главного компьютера.
Пароль для настройки безопасного подключения.
Номер шины, номер устройства и номер функции адаптера для определенного устройства шины PCI.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

/норебут

предписывает программа установки Windows не перезагружать компьютер после завершения фазы нижнего уровня программа установки Windows.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Нет

Замечания
Этот параметр является новым для Windows 10. параметр /норебут позволяет выполнять дополнительные команды перед перезапуском Windows. Этот параметр подавляет только первую перезагрузку. Параметр не подавляет последующие перезагрузки.

предоставляет программа установки Windows с указанным ключом продукта.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
Это новый параметр, начинающийся в Windows 10.

/приорити

сообщает программа установки Windows увеличить приоритет потока от низкого до обычного для обновления компонентов с помощью Центр обновления Windows.

Параметр Описание
Обычный Windows Программа установки будет выполняться с нормальным приоритетом потока.
Низкая Windows Программа установки будет выполняться с низким приоритетом потока.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
этот параметр доступен начиная с Windows 10 версии 1709 и более поздних версий. низкий приоритет — это новая версия для Windows 10 версии 2004. Установки на основе мультимедиа по умолчанию работают с нормальным приоритетом, но их можно уменьшить до низкого приоритета.

/постубе

после программа установки Windows выполните сценарий.

Синтаксис
/Постубе [сетупкомплете.КМД]

Параметр Описание
Локальный путь к файлу или сетевой путь UNC к файлу с именем Setupcomplete. cmd или папке, содержащей файл Setupcomplete. cmd.

BT для запуска после OOBE.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
Этот параметр доступен, начиная с Windows 10.

/построллбакк

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

Параметр Описание
Локальный путь к файлу или сетевой путь UNC к файлу с именем сетупроллбакк. cmd или папке, содержащей сетупроллбакк. cmd.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

BT для запуска после OOBE.

/Quiet

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

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Нет

Замечания
Этот параметр доступен, начиная с Windows 10.

/рефлектдриверс

Указывает путь к папке, содержащей драйверы шифрования для компьютера с включенным шифрованием стороннего производителя.

Параметр Описание
Локальный путь к файлу или сетевой путь UNC к папке, содержащей INF-файлы.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

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

/ресизерековерипартитион

указывает, можно ли изменить размер существующего раздела Windows среды восстановления (Windows RE) или создать новый во время установки.

>

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

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

/шовубе

Указывает, требуется ли пользователю интерактивное завершение работы с интерфейсом onout (OOBE).

Параметр Описание
Полное Требует, чтобы пользователь в интерактивном режиме завершил работу из окна приветствия (OOBE).
Нет Пропускает файл OOBE и выбирает параметры по умолчанию.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
Этот параметр доступен, начиная с Windows 10.

/скипфинализе

Инструкции настройки для запуска операций обновления в ОС нижнего уровня без инициации перезагрузки для запуска этапа «вне сети».

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Нет

/телеметри

указывает, должны ли программа установки Windows записывать и сообщать данные об установке.

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

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Убедиться

указывает программа установки Windows постановки временных файлов установки в указанный раздел.

Параметр Описание
секция, в которую копируются файлы установки во время программа установки Windows.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
этот параметр доступен начиная с Windows 10 версии 1607. При обновлении параметр /tempdrive влияет только на размещение временных файлов. Операционная система обновляется в разделе, из которого запускается файл setup.exe.

/Unattend

позволяет использовать файл ответов с программа установки Windows.

Параметр Описание
путь к файлу и имя файла для автоматической программа установки Windows файла ответов.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

/Uninstall

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

Параметр Описание
Включить Windows Программа установки включает элементы управления, позволяющие пользователю вернуться к предыдущей операционной системе.
Отключить Windows Программа установки не включает элементы управления, позволяющие пользователю вернуться к предыдущей операционной системе.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Нет
Setup.exe запускается из Windows 10 или более Да
setupconfig.ini файлы, используемые для обновлений компонентов Да

Замечания
Этот параметр доступен, начиная с Windows 10.

/усбдебуг

Настройка отладки на USB-порте.

Параметр Описание
Имя компьютера для отладки.

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

Замечания
Данные отладки вступают в силу при следующей перезагрузке.

/вдсдисковер

указывает, что клиент служб развертывания Windows (WDS) должен находиться в режиме обнаружения.

Примеры
Чтобы запустить клиент WDS в режиме динамического обнаружения, выполните следующую команду:

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

Замечания
Если вы не укажете /Вдссервер WDS, выполните поиск сервера.

/вдссервер

указывает имя сервера служб развертывания Windows (WDS), к которому должен подключаться клиент.

Параметр Описание
имя сервера служб развертывания Windows.

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

Сущности, к которым применяется триггер

Конфигурация Применимо
Setup.exe запускается из WinPE Да
Setup.exe запускается из Windows 10 или более Нет
setupconfig.ini файлы, используемые для обновлений компонентов Нет

Источник

Создание разделов жесткого диска

Создание разделов жесткого диска на базе BIOS с помощью диспетчера установки Windows

  1. Открываем диспетчер установки Windows и файл ответов.
  2. Добавляем параметр Microsoft-Windows-SetupDiskConfigurationDisk в этап настройки windowsPE.
  3. Для каждого дополнительного жесткого диска щелкаем правой кнопкой мыши на параметр «DiskConfiguration» и выбираем «Вставить новый диск».
  4. Для каждого диска задаем значение «DiskID». Первому жесткому диску соответствует значение 0 (ноль), второму — значение 1 и т.д.
  5. Для каждого диска задаем значение «WillWipeDisk» равным «true».
  6. Добавляем параметр Microsoft-Windows-SetupDiskConfigurationDiskCreatePartitions в этап настройки windowsPE.
  7. Жмем правой кнопкой мыши на параметр «CreatePartitions» и выбираем пункт «CreatePartition». Повторяем это действие для каждого раздела.
  8. В параметре «CreatePartition» добавляем параметр «Order» для каждого раздела. Первому разделу диска соответствует значение 1, второму — значение 2 и т.д.
  9. В параметре «CreatePartition» задаем тип каждого раздела.
    Задаем системный раздел как Type = Primary, другие разделы как Type = Primary, Extended или Logical.
  10. В параметре «CreatePartition» настраиваем размер разделов. Для каждого раздела необходимо использовать либо Size = <размер>, либо Extend = true.
    • Чтобы указать размер раздела в мегабайтах (например, 15000), используйте Size.
    • Для последних основных или расширенных разделов используйте Extend = true, чтобы программа установки Windows задала размер раздела в соответствии с оставшимся пространством на жестком диске.
    • Если используются логические разделы, размер последнего из них можно установить в соответствии с оставшейся частью расширенного раздела. В Microsoft-Windows-SetupDiskConfigurationDiskCreatePartitionsCreatePartitionExtend задайте Extend = false и задайте Size = 100. Изначально размер раздела составляет 100 МБ. Процесс его изменения описан в следующей части.

Изменение разделов

  1. Добавляем параметр Microsoft-Windows-SetupDiskConfigurationDiskModifyPartitions в этап настройки windowsPE.
  2. Жмем правой кнопкой мыши параметр «ModifyPartitions» и выбираем пункт «ModifyPartition». Повторите это действие для каждого раздела, который требуется изменить.
    • Если используются только основные разделы, для каждого из них добавляем элемент «ModifyPartition». Эта структура позволяет использовать одни и те же значения для ModifyPartitionOrder и «PartitionID» в следующих двух шагах для CreatePartitionOrder.
    • Если используется расширенный раздел, добавляем один элемент «ModifyPartition» для каждого раздела. Обычно для расширенного раздела дальнейшие изменения не требуются. Эта структура позволяет использовать одни и те же значения для ModifyPartitionOrder и «PartitionID» в следующих двух шагах.
  3. В «ModifyPartition» необходимо использовать «Order», чтобы указать последовательность изменения разделов. Первому изменению раздела соответствует значение 1, второму — значение 2 и т.д.
  4. В элементе «ModifyPartition» используется параметр «PartitionID», для идентификации каждого раздела.
    • Если используются только основные разделы, значение «PartitionID» совпадет со значением «Order».
    • Если используется расширенный раздел, первые основные разделы получают значение «PartitionID», совпадающее со значением «Order». Расширенный раздел сам по себе не получает «PartitionID». Однако каждый логический раздел в составе расширенного получает «PartitionID», начинающийся со значения «Order» расширенного раздела и продолжающий изменяться. Каждый основной раздел, за которым следует расширенный, продолжает данную последовательность.
  5. В «ModifyPartition» указываем системный раздел как Active = true. Если отдельные системные разделы отсутствуют, необходимо указать раздел Windows.
  6. В «ModifyPartition» можно использовать «Label», чтобы добавить подпись к каждому основному и логическому разделу.
  7. В элементе «ModifyPartition» можно использовать параметр «Letter», чтобы задать буквы дисков для разделов Windows и данных. Для раздела Windows рекомендуется использовать параметр Letter = C. Если буква не задана, то по умолчанию используется первая доступная буква от C до Z.
  8. При использовании логических разделов необходимо выбрать последний раздел и задать ModifyPartitionExtend = true, чтобы размер раздела соответствовал оставшемуся пространству в расширенном разделе.

Определение раздела для установки Windows

  1. В параметре Microsoft-Windows-SetupImageInstallOSImage необходимо либо очистить параметр «InstallToAvailablePartition», либо задать ему значение «false».
  2. Добавляем параметр Microsoft-Windows-SetupImageInstallOSImageInstallTo.
  3. В «InstallTo» в качестве значения «DiskID» указываем жесткий диск, где будет установлена ОС Windows.
  4. В качестве значения «PartitionID» указываем раздел, где будет установлена ОС Windows.

Создание разделов жесткого диска на базе UEFI с помощью диспетчера установки Windows

  1. Открываем диспетчер установки Windows и файл ответов.
  2. Добавляем параметр: Microsoft-Windows-SetupDiskConfigurationDisk в этап настройки windowsPE.
  3. Для каждого дополнительного жесткого диска жмем правой кнопкой мыши на параметр «DiskConfiguration» и выбираем «Вставить новый диск».
  4. Для каждого диска задаем значение «DiskID». Первому жесткому диску соответствует значение 0 (ноль), второму — значение 1 и т.д.
  5. Для каждого диска задаем значение «WillWipeDisk» равным true.
  6. Добавляем параметр: Microsoft-Windows-SetupDiskConfigurationDiskCreatePartitions в этап настройки windowsPE.
  7. Жмем правой кнопкой мыши на параметр «CreatePartitions» и выбираем пункт «CreatePartition». Повторяем это действие для каждого раздела.
  8. В параметре «CreatePartition» добавляем значение «Order» для каждого раздела. Первому разделу диска соответствует значение 1, второму — значение 2 и т.д.
  9. В параметре «CreatePartition» задаем тип каждого раздела.
    • Определяем системный раздел EFI (ESP) как Type = EFI.
    • Определяем MSR-раздел как Type = MSR.
    • Определяем другие разделы как Type = Primary.
  10. В параметре «CreatePartition» настраиваем размер разделов. Для каждого раздела используйте или параметр Size=<size>, или Extend=True, но не оба варианта сразу.
    • Чтобы задать размер раздела в мегабайтах, используйте параметр Size (например, 15000).
    • Для последнего основного раздела используйте параметр Extend = True, чтобы программа установки Windows расширила раздел на всю оставшуюся часть жесткого диска.

Изменение разделов

  1. Добавляем параметр: Microsoft-Windows-SetupDiskConfigurationDiskModifyPartitions в этап настройки windowsPE.
  2. Жмем правой кнопкой мыши параметр «ModifyPartitions» и выбираем пункт «ModifyPartition». Повторяем это действие для каждого раздела, который требуется изменить.
  3. Добавляем элемент «ModifyPartition» для каждого раздела. Эта структура позволяет использовать одинаковые значения для элементов CreatePartitionOrder, ModifyPartitionOrder и параметра «PartitionID».
  4. В элементе «ModifyPartition» необходимо использовать параметр «Order», чтобы задать последовательность, которая должна соблюдаться изменениями раздела. Первому изменению раздела соответствует значение 1, второму — значение 2 и т.д.
  5. В элементе «ModifyPartition» используем параметр «PartitionID», чтобы идентифицировать каждый раздел. Значение «PartitionID» будет совпадать со значением элемента CreatePartition | Order.
  6. В элементе «ModifyPartition» используем параметр «Label», чтобы пометить каждый основной раздел.
  7. В элементе «ModifyPartition» используйте параметр «Letter», чтобы задать буквы дисков для разделов Windows и данных.

Определение раздела для установки Windows

  1. В параметре Microsoft-Windows-SetupImageInstallOSImage необходимо либо очистить параметр «InstallToAvailablePartition», либо задать ему значение «false».
  2. Добавляем параметр Microsoft-Windows-SetupImageInstallOSImageInstallTo.
  3. В «InstallTo» в качестве значения «DiskID» указываем жесткий диск, где будет установлена ОС Windows.
  4. В качестве значения «PartitionID» указываем раздел, где будет установлена ОС Windows.

Добавление пользовательских команд и сценариев

Чтобы добавить пользовательскую команду в файл ответов

  1. Открываем диспетчер образов системы Windows.
  2. Открываем файл ответов.
  3. В меню «Вставка» выбираем пункт «Синхронная команда». В подменю выбираем цикл конфигурации (проходы). Откроется диалоговое окно «Создание синхронной команды».
  4. В поле «Ввод» командной строки вводим команду с параметрами. В поле «Порядок» выбираем порядок выполнения команд и нажимаем кнопку «ОК». Команда будет добавлена в файл ответов в выбранный этап настройки.
    • Команды, добавленные в этап настройки 1 windowsPE, отображаются в параметре Microsoft-Windows-SetupRunSynchronous.
    • Команды, добавленные в этап настройки 4 specialize или 6 auditUser, отображаются в параметре Microsoft-Windows-DeploymentRunSynchronous.
    • Команды, добавленные в этап настройки 7 oobeSystem, отображаются в параметре Microsoft-Windows-Shell-SetupFirstLogonCommands.

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

  • сразу после завершения программы установки Windows

    После завершения программы установки Windows можно выполнить дальнейшую настройку системы путем добавления команд в файл %WINDIR%SetupScriptsSetupComplete.cmd. Этот файл позволяет устанавливать дополнительные приложения, запускать специальные сценарии Windows (cscript или wscript) или вносить в систему другие изменения перед входом в нее пользователя. Команды в файле Setupcomplete.cmd выполняются с привилегией локальной системы. После установки Windows и перед появлением экрана входа в систему программа установки Windows выполняет поиск файла SetupComplete.cmd в каталоге %WINDIR%SetupScripts. Если файл SetupComplete.cmd найден, он выполняется. В противном случае установка продолжается в обычном режиме. Программа установки Windows записывает действие в файл Setupact.log. Нельзя перезагрузить систему и возобновить выполнение файла SetupComplete.cmd. Программа установки не проверяет коды выхода или коды ошибок в сценарии после выполнения файла SetupComplete.cmd. Функции Setupcomplete.cmd отличаются от команд RunSynchronous и RunAsynchronous следующим образом: Setupcomplete.cmd выполняется после завершения программы установки Windows, а команды RunSynchronous и RunAsynchronous выполняются в процессе выполнения установки Windows. Если в процессе установки компьютер присоединяется к домену, то групповая политика, определенная в домене, не применяется к компьютеру до выполнения Setupcomplete.cmd. Это гарантирует, что действия групповой политики, связанные с настройкой, не повлияют на работу сценария.

  • если в программе установки Windows возникает неустранимая ошибка.

    Если в программе установки Windows возникает неустранимая ошибка, можно настроить программу установки на автоматический запуск сценария, содержащего специальные команды или действия. Неустранимая ошибка — это ошибка, не позволяющая программе установки Windows завершить работу. Данная функция полезна при автоматической установке нескольких систем сразу. Эта функция позволяет сразу обнаружить ошибку во время установки Windows и выполнить специальные действия. Если в программе установки Windows возникает неустранимая ошибка, не позволяющая программе установки завершить свою работу, то последняя выполняет поиск командного сценария в следующем каталоге: %WINDIR%SetupScriptsErrorHandler.cmd. Будет выполнено одно из двух действий в зависимости от того, найден ли сценарий. Если сценарий не найден, появится диалоговое окно с описанием ошибки. Пользователь должен закрыть диалоговое окно перед выходом из программы установки Windows. Если сценарий найден, то он выполняется синхронно. Диалоговое окно и описание ошибки не отображаются. После завершения сценария ErrorHandler.cmd выполняется выход из программы установки Windows. В зависимости от этапа установки Windows компьютер возвращается в ту среду, из которой выполнялась установка (например, в предыдущую версию операционной системы или в среду предустановки Windows). Существует несколько способов добавления файла ErrorHandler.cmd с помощью структуры каталогов $OEM$. Первый — создать папку Sources$OEM$$$SetupScripts в дистрибутиве Windows и скопировать файл ErrorHandler.cmd в эту папку. Второй — создать временную папку, содержащую структуру папок $$SetupScripts и скопировать в этот каталог файл ErrorHandler.cmd, а затем запустить программу установки Windows с параметром /m:временная_папка, где временная_папка — это временная папка, созданная в начале этого шага.

Краткие итоги

Изучив данную лекцию, вы должны получить представления о:

  1. Дистрибутивных общих ресурсах для развертывания одноязычной и многоязычной версии Windows.
  2. Ключах активации, на каких этапах их можно задать.
  3. Настройка региональных параметров, применяемые на разных проходах программы установки Windows.
  4. Создание разделов жестких дисков на основе BIOS и UEFI.
  5. Добавление пользовательских команд и способах их запуска.

Ключевые термины

Дистрибутивный общий ресурс — это папка для хранения драйверов, приложений и пакетов, например, бюллетени по безопасности.

Тихая установка — это такой процес, при котором вы тихо-мирно сидите и смотрите на экран, где без вашего участия происходит процесс установки ПО, при условии, что его вообще видно. При этом установщик не беспокоит вас вопросами типа Вы согласны с лицензионным соглашением?. Параметры для установки используются по-умолчанию. т.е. те, которые предлагает установщик при установке ПО обычным способом.

К минусам тихой установки можно отнести всякие панели в обозревателях и ярыки типа E-Bay на рабочем столе, поскольку чаще всего подобные бонусы включены в установку по-умолчанию. Но это скорее исключение, хотя и не редкое. Подробно о тихой установке читайте в этой статье. 

На самом деле тихая установка — это очень удобная процедура, которая экономит время и упрощает жизнь системного администратора. Я, например, использую режим silent install после чистой установки ОС.

Режим тихой установки включается при помощи параметров или (как их ещё называют) ключей. Если вы не знаете, что это такое, можете восполнить пробел в знаниях при помощи этой статьи: BAT файлы. Запуск процедуры можно осуществить несколькими способами:

  1. Из командной строки, используя параметры.
  2. Аналогично через bat-файл (com-файл).
  3. Через SFX-архив с файлом конфигурации.

Ключей достаточно много. Какой именно ключ нужно использовать зависит от установщика. Т.е. любая программа, говоря простым языком, это папка с файлами, а запаковывает всё это добро в один файл установки специальный сборщик (система создания установщиков ПО). И вот от того, какой сборщик использовался, зависит — какой ключ будет вызывать режим тихой установки. Наиболее известные системы создания установщиков:

  1. Install Shield
  2. WISE Installer
  3. NSIS
  4. Inno Setup

Подробнее о ССИ и их ключах можно посмотреть тут. Также можно попробовать найти нужный ключ с помощью специального ПО — Universal Silent Switch Finder или почитать документацию на сайте разработчиков той программы, ключи к которой вы ищите.

Во время экспериментов с тихой установкой мне встречались следующие параметры запуска режима тихой установки:

 /silent
 /verysilent
 /quiet
 /qb
 /qn
 /qr
 /passive
 /s
 /S
 /qn REBOOT=ReallySuppress
 /s /v" /qn REBOOT=ReallySuppress

Ключи для отмены перезагрузки:

 /norestart
 /noreboot

Антивирус Avast имеет опцию тихой установки в корпоративной версии. В бесплатной (Home) версии по заявлениям разработчиков тихой установки нет. Однако, если вы в курсе как работает инсталятор InstallShield, вы поймете, что это утверждение не соответствует действительности, поскольку этот инсталятор сам по себе поддерживает ключ тихой установки /S. А значит все продукты, выполненные на его базе — тоже. И Avast Home не исключение.

Для запуска тихой установки архиватора 7Zip (сборщик NSIS) нужно запустить установщик с ключом /S. Положите установщик 7Zip (7z.exe) в корень диска С. Затем откройте меню Пуск › Выполнить (или   + R) и введите в форму следующую команду:

C:7z.exe /S

Архиватор установится без диалоговых окон и признаков внешней активности.

Однако случается что установщик собран нестандартно и ключей для запуска тихой установки у него просто нет. К таким исключениям относится Avira Antivir. По-тихому можно только распаковать содержимое установщика во временную директорию (минус одно окно), а дальше всё. В этом случае приходится создавать специальные самораспаковывающиеся архивы с файлами инструкций внутри. Тут дело обстоит немного сложнее.

Тихая установка с помощью sfx-архивов

Выше я упомянул о случаях, когда вариант с ключами может не работать. Режим тихой установки может быть просто не предусмотрен разработчиком. В этом случае достаточно часто можно выйти из положения, используя sfx-архивы. Sfx-архив – это само-распаковывающийся архив.

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

Например, сразу после распаковки sfx-архив позволяет запустить один или несколько распакованных файлов, удалить файлы после выполнения операций и много чего ещё. В этих операциях принимают участие конфигурационные файлы, содержащие команды (например, BAT файлы).

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

Чтобы в общих чертах представить конфигурационный файл (для тех, кто не в курсе) ниже приведён пример такого файла для программы Firefox Portable

[FirefoxPortable]
FirefoxDirectory=Appfirefox
ProfileDirectory=Dataprofile
SettingsDirectory=Datasettings
PluginsDirectory=Dataplugins
FirefoxExecutable=firefox.exe
AdditionalParameters=
LocalHomepage=index.html
DisableSplashScreen=false
AllowMultipleInstances=false
DisableIntelligentStart=false
SkipCompregFix=false
RunLocally=false

Стоит отметить, что возможности и режимы работы программ со временем могут меняться. Firefox Portable может перестать поддерживать ini-файлы, а будущие версии инсталятора Avira – понимать и подхватывать файлы инструкций. Поэтому при экспериментах стоит ознакомиться с актуальной информацией о возможностях программ, которые вы планируете использовать.

Как sfx-архив может помочь процессу тихой установки, я думаю, мы разобрались. Теперь настало время перейти к практической части. Для создания sfx-архивов я пользуюсь доработанным модулем архиватора 7Zip. Весь процесс создания sfx-архива и запуска при помощи него режима тихой установки описан в статье Олега Щербакова (разработчика модуля). Я же очень кратко перескажу написанное в ней, пояснив пару моментов.

Сразу отмечу, что цель примера — запаковать установщик программы в sfx-архив таким образом, чтобы он после распаковки автоматически начинал устанавливаться по-тихому. В данной статье в качестве подопытного будет выступать установщик архиватора 7Zip (7z465.exe), хотя можно использовать любой другой, главное знать ключ тихой установки. У установщика 7Zip это ключ /S. Итак, для исполнения задуманного нам понадобится:

  1. Модуль sfх Олега Щербакова.
  2. Архиватор 7Zip. Им мы будем запаковывать установщик программы в архив формата «.7z». Архиватор, понятное дело, надо установить в систему.
  3. Установщик программы (как я отметил выше, в примере я использую 7z465.exe).
  4. Архив .7z, который мы получим, запаковав установщик программы архиватором 7Zip.
  5. Конфигурационный файл config.txt, в котором будут содержаться иструкции «поведения» sfx-архива при распаковке, т.е. в данном примере в нём будет содержаться команда на запуск тихой установки.
    Заклинание для создания sfx-архива (вводится в консоли).

Для удобства я положил все ингредиенты в один архив, который вы можете скачать по этой ссылке. Также, если скачать вот эту программу, можно поменять иконку архива (как это сделать читайте тут).

Обратите внимание, кодировка файла конфигурации config.txt должна быть UTF-8.

Итак, получаем после скачивания и распаковки папку со всем этим добром, далее по списку:

  1. Устанавливаем архиватор 7zip (лежит в папке).
  2. Запаковываем подопытного 7z465.exe (лежит в папке) в 7z-архив. Получаем на выходе файл 7z465.7z.
  3. Открываем консоль (Пуск › Выполнить — cmd) и переходим в папку с файлами: cd C:files (пример для папки «files» на диске «С»).
  4. Запускаем в консоли заклинание:
    • COPY /b 7zsd.sfx + config.txt + 7z465.7z 7Zip.exe
    • 7zsd.sfx — имя модуля sfx.
    • config.txt — имя файла конфигурации.
    • 7z465.7z — имя запакованного установщика 7z465.exe.
    • 7Zip.exe — имя sfx-архива на выходе.

В результате получаем sfx-архив 7Zip.exe, который представляет собой исполняемый файл или самораспаковывающийся архив, внутри которого содержится инструкция config.txt. Содержание инструкции следующее:

;!@Install@!UTF-8!
RunProgram="7z465.exe /S"
GUIMode="2"
;!@InstallEnd@!
  • ;!@Install@!UTF-8!
    ;!@InstallEnd@! – строки начала и конца файла инструкции. Это комментарии, их можно удалить. А вот остальные две нужны обязательно.
  • GUIMode=»2″ – режим распаковки архива без оповещений (по-тихому).
  • RunProgram=»7z465.exe /S» – строка инструкции, в которую необходимо вносить изменения в зависимости от того, какой установщик вы используете. В строке прописывается имя установщика, который запаковывается в 7z-архив и который требуется установить по-тихому + ключ тихой установки.

На этом всё. Ознакомившись со статьями Олега (ссылки выше), можно создать различные архивы, выполняющие абсолютно разные задачи. Удачных экспериментов!

Если материалы сайта оказались для вас полезными, можете поддержать дальнейшее развитие ресурса, оказав ему (и мне ) моральную и материальную поддержку.

Совершенствуйте свои сценарии Сценарии для командной строки — это файлы с простым текстом, которые интерпретируются командным процессором как наборы команд, подлежащие последовательному исполнению. История сценариев для командной строки началась на заре

Совершенствуйте свои сценарии

Сценарии для командной строки — это файлы с простым текстом, которые интерпретируются командным процессором как наборы команд, подлежащие последовательному исполнению. История сценариев для командной строки началась на заре 80-х — именно с этого времени и по сей день оболочка Command.com в MSDOS поддерживает исполнение сценариев посредством простых пакетных файлов. Выпущенный в 1993 году вместе с Windows NT другой командный процессор, Cmd.exe, также поддерживает язык макропрограммирования, подобный языку пакетных файлов Command.com. Несмотря на солидный возраст технологии, макропрограммирование в оболочке Cmd.exe все еще широко используется специалистами по ИT. Например, простой сценарий с командой For может превратить команду, которая сама по себе работает одновременно только с одним компьютером или пользователем в командной строке, в команду, которая пошагово проходит другой текстовый файл и исполняется для каждой строки в этом файле. Благодаря тому что сценарии для командной строки являются файлами с простым текстом, который представляет собой набор команд, их легко создавать и менять и они удобны для восприятия. Но простота макропрограммирования обманчива. Небрежно написанный сценарий для командного процессора может вызывать проблемы. Мне приходилось наблюдать, как сценарии для командного процессора при неправильных допущениях относительно вычислительной среды и операционной системы в лучшем случае работали некорректно, а в худшем — внезапно выполняли разрушительные действия на системах. Чтобы читатели могли избежать подобных проблем, я подготовил 10 советов для создания более надежных сценариев, которые могут работать во многих вычислительных средах.

1.

По возможности используйте переменные среды

Используя переменную в сценарии, мы заключаем имя переменной между знаками процента (%), а когда сценарий исполняется, знаки процента и текст между ними заменяется значением этой переменной. Применение переменных делает код сценария более универсальным, поэтому у него больше шансов успешно работать на разных компьютерах. Например, в сценарии для командного процессора не стоит жестко прописывать установочный каталог Windows. Вместо этого следует использовать переменную SystemRoot, которая всегда будет указывать на конкретный установочный каталог Windows. Так, команда

Echo %SystemRoot%

будет отображать содержимое SystemRoot (т. е. установочного каталога Windows). Я неоднократно видел сценарии, в которых для того, чтобы указать на установочный каталог Windows, использовали запись C:WINDOWS. Если Windows установлена не в C:WINDOWS (например, Windows 2000 и более ранние версии устанавливаются в WINNT), сценарий не будет работать корректно. Чтобы увидеть список переменных среды, следует ввести в командной строке команду Set. Некоторые переменные не появляются в списке, генерируемом командой Set, потому что они динамически генерируются Cmd.exe. В табл. 1 показан список этих переменных. Как и в случае с другими переменными среды, эти переменные заключаются в знаки процента. Например, следующая строка сценария будет отображать текущие время и дату:

Echo %DATE% %TIME%

2.

Не следует ожидать, что обычные пакетные файлы для Command.com будут так же хорошо работать в Cmd.exe

Те, кто привык писать пакетные файлы для платформ MS-DOS или Windows 9x/Me, должны иметь в виду, что в новейших версиях Windows некоторых команд не существует. Два самых распространенных примера — команды Choice и Deltree. Просмотрите свои старые пакетные файлы, чтобы убедиться, что они корректно работают в оболочке Cmd.exe. В табл. 2 приведено несколько возможных замен для Choice и Deltree. Большинство замен имеют синтаксис, отличный от синтаксиса команд, на место которых они предлагаются, поэтому придется соответствующим образом изменить сценарии.

3.

В оболочке Cmd.exe используйте расширение .cmd

Пакетным файлам Command.com необходимо расширение .bat. Оболочка Cmd.exe тоже может использовать расширение .bat, но в более мощном языке макропрограммирования Cmd.exe многие команды несовместимы с Command.com. Таким образом, .bat файл, написанный для Cmd.exe, может сбоить, если пользователь попытается исполнить его в Command.com (например, в Windows 98). Один из способов избежать этой проблемы состоит в использовании расширения .cmd для сценариев. Поскольку Command.com не распознает расширение .cmd, он просто не будет исполнять пакетный файл, если его имя оканчивается на .cmd.

4.

Убедитесь в том, что нужные исполняемые файлы доступны

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

«% ~dp0exename» …

где exename — это имя исполняемого модуля, который требуется запустить. Синтаксис %~dp0 возвращает диск, путь и имя файла текущего сценария без кавычек. Заключение всей строки в кавычки гарантирует работоспособность сценария, даже если имя файла или каталога, в котором находится сценарий, содержат кавычки.

5.

Правильно используйте двойные кавычки

Похоже, двойные кавычки («) являются общим источником путаницы для тех, кто пишет сценарии. Двойные кавычки — это всего лишь способ идентифицировать содержащие пробелы аргументы командной строки. Например, правильная на первый взгляд командная строка

dir C:Program Files

на самом деле дает команде Dir два аргумента: C:Program и Files. Чтобы воплотить свое намерение передать команде один аргумент C:Program Files (включая пробел), мы должны заключить его в двойные кавычки:

dir «C:Program Files»

Символы кавычек не являются частью имени папки. Они сообщают команде Dir, что текст между ними является одним аргументом.

Сценарии для командного процессора также поддерживают параметры командной строки. Чтобы воспользоваться параметрами командной строки сценария, нужно задействовать запись %n (где n — число от 0 до 9). Эта запись называется заменяющим параметром (или просто параметром). Например, сценарий будет заменять параметр %1 первым аргументом командной строки, %2 — вторым аргументом и т. д. Помимо параметров от %1 до %9, %0 заменяется именем сценария, %* заменяется целой командной строкой сценария (исключая имя сценария). Я упоминаю здесь параметры командной строки потому, что, когда Cmd.exe заменяет параметры от %1 до %9 соответствующими аргументами командной строки, он оставляет двойные кавычки, если они есть в аргументе. Напрашивается очевидный вывод: параметр сценария всегда будет заключен в кавычки, если он содержит пробелы. На этом наблюдении основано несколько простых правил, аккуратно следуя которым можно практически полностью устранить проблемы кавычек.

  • Не используйте кавычки внутри параметров сценария (от %1 до %9), поскольку они уже могут содержать кавычки. Если необходимо задействовать параметр с командой If, используйте символы, отличные от кавычек (например, фигурные скобки), чтобы избежать синтаксической ошибки. Следующая строка будет работать правильно, даже если первый параметр (%1) содержит кавычки:

If {%1}=={} Goto :HELP

Исключение из этого правила составляет случай, когда мы используем синтаксис %~n, чтобы удалить кавычки параметра (см. следующее правило).

  • Не помещайте кавычки внутрь переменной среды. Наличие пробелов в переменных среды допускается, и кавычки при этом не нужны. Если нужно скопировать параметр в переменную, используйте синтаксис %~n (где n — число от 1 до 9), который возвращает параметр без кавычек. Например, строка

    Set DATAFILE=% ~1
    будет копировать первый параметр сценария (без кавычек) в переменную DATAFILE. Исключение составляет случай, когда вы создаете текст в кавычках, который будет передан в другую команду.

  • Не забывайте, когда это необходимо, помещать переменные среды в кавычки. Например, рассмотрите следующие строки сценария:

    Set TARGET=% ~2
    Copy %1 «%TARGET%»

Первая из этих строк копирует второй аргумент сценария в переменную TARGET, удаляя кавычки. Вторая строка синтаксически верна, потому что параметр %1 уже заключен в кавычки, если он содержит пробелы, а переменная TARGET должна иметь кавычки, потому что она может содержать пробелы.

6.

Применяйте команды Setlocal и Endlocal

Команда Setlocal копирует все переменные среды, а команда Endlocal восстанавливает все переменные со значениями, которые они имели перед запуском сценария. Endlocal также удаляет любые переменные, созданные сценарием. Использование обеих команд делает сценарий более самостоятельным и гарантирует, что сценарий «убирает за собой мусор» путем восстановления переменных среды в их оригинальные значения и удаления переменных, созданных сценарием.

Также можно использовать команду Setlocal Enableextensions, чтобы точно знать, что расширения команд включены. Расширения команд — это усовершенствования для группы внутренних команд Cmd.exe (например, If, For, Call), которые предоставляют дополнительные возможности по сравнению с командами Command.com, имеющими такие же имена. Расширения команд включены по умолчанию, но в тех редких случаях, когда они отключены, команда Setlocal Enableextensions гарантирует включение расширений команд. Чтобы получить более подробную информацию о расширениях команд, следует ввести в командной строке Cmd /?.

7.

Используйте при необходимости символ Escape

Cmd.exe использует символ каретки (^) как признак отмены специального значения зарезервированных символов командной оболочки. Например, амперсанд (&) является разделителем команд — он позволяет поместить несколько команд в одной строке. Если вы намерены использовать амперсанд в обычном, литературном смысле, то должны «аннулировать» его специальное значение, поместив перед ним символ каретки ^. Так, в строке

Echo The ^& character is
the command separator

символ ^ вынуждает командный процессор отменить обычную интерпретацию следующего за ним символа. Специальными символами являются символы ( ) < > ^ & |. Нет необходимости использовать признак отмены, если эти символы встречаются внутри строки, заключенной в кавычки.

8.

Не используйте команду Exit без ключа /b

Без ключа /b команда Exit закрывает текущую командную оболочку. Если кто-то запускает Cmd.exe и исполняет сценарий, который содержит команду Exit, текущая сессия командного процессора резко закроется. Команда Exit /b закрывает текущий сценарий, не закрывая текущую сессию командного процессора. Чтобы больше узнать о команде Exit, наберите в командной строке Exit /?.

9.

Используйте команду If Errorlevel с осторожностью

Команда If Errorlevel проверяет код завершения последней команды, исполнение которой окончено. Поведение сценария зависит от результата проверки кода завершения программы. Рассмотрите, например, следующий сценарий:

Myprogram
If Errorlevel 1 Goto :ERROR

Команда Goto в этих строках будет выполнена, только если Myprogram.exe возвращает код завершения больше или равный 1. Другими словами, «If Errorlevel n» не означает «если последний код завершения программы в точности равен n»; на самом деле это условие означает «если последний код завершения программы не меньше n». Учитывая такое поведение, следует проверять код завершения программы в порядке убывания (от самого большого к самому маленькому). Чтобы проверить конкретное значение кода завершения программы, используйте динамическую переменную ERRORLEVEL вместо команды If Errorlevel. Нужно иметь в виду, что команда If Errorlevel отличается от переменной ERRORLEVEL, стоящей в списке в табл. 1. Команда If Errorlevel обратно совместима с командой If Errorlevel из Command.com; переменная ERRORLEVEL доступна только в Cmd.exe.

10.

Учитывайте особенности команды Start

Команда Start запускает программу или команду в окне новой консоли. Однако, если попытаться запустить программу из папки, которая содержит пробелы (или если имя программы содержит пробелы), поведение команды Start может не соответствовать вашим ожиданиям. Например, следующая команда:

Start «C:Program FilesMicrosoft
OfficeOffice11Winword.exe»

не запускает Microsoft Word вопреки ожиданию. Вместо этого команда Start откроет новую сессию Cmd.exe, заголовком окна консоли которой будет заключенная в кавычки строка. Такое поведение объясняется тем, что команда Start использует первую строку в кавычках в ее командной строке как заголовок окна консоли.

Чтобы обойти эту странность, используйте пару кавычек для указания пустого заголовка, затем вводите строку программы, которую хотите запустить. Корректная программа Start выглядит примерно так:

Start «» «C:Program FilesMicrosoft
OfficeOffice11Winword.exe»

Всего не предусмотришь

Сценарии командного процессора Cmd.exe применяются весьма широко. Освоив приведенные в этой статье рекомендации, вы сможете создавать более надежные сценарии и избегать распространенных проблем.


Дополнительные материалы по написанию сценариев в online-доступе на сайте Windows IT Pro/RE

OneNote — полнофункциональная система хранения сценариев
http://www.osp.ru/text/302/3546232.html

Рекурсивная загрузка Web-узла целиком
http://www.osp.ru/text/302/3207223/

Программный доступ к информации о дисковых квотах
http://www.osp.ru/text/302/3177796.html

Организация печати данных из сценариев
http://www.osp.ru/text/302/3177769.html

Как написать сценарий, выдающий заметные предупреждения
http://www.osp.ru/text/302/3137821.html

Получение списка членов вложенных групп
http://www.osp.ru/text/302/3137821.html

Самодельный инструмент для инвентаризации аппаратных средств
http://www.osp.ru/text/302/2876185.html

Перенос и активация учетных записей пользователей
http://www.osp.ru/text/302/2863575.html

Получение функциональности с использованием управляющих компонентов
http://www.osp.ru/text/302/2863520.html

Извлечение информации из Web-страницы
http://www.osp.ru/text/302/2740759.html

Системные утилиты одной строкой
http://www.osp.ru/text/302/2740725.html


Таблица 1. Таблица 2.

Понравилась статья? Поделить с друзьями:
  • Сценарий акции дня народного единства
  • Сценарий windows bat
  • Сценарий акции день россии
  • Сценарий welcome тренинга
  • Сценарий акции день памяти жертв дтп