Як створити скрипти для встановлення Windows 11 з певною конфігурацією

  • Спільне використання файлів SetupComplete.cmd, ErrorHandler.cmd та Unattend/autounattend.xml для автоматизації інсталяції Windows 11.
  • Автоматична інсталяція, здатна обійти OOBE, визначити мову, облікові записи, конфіденційність та подолати вимоги до обладнання.
  • Розширене налаштування за допомогою WinScript та централізоване виконання скриптів PowerShell за допомогою Configuration Manager.
  • Моніторинг, вивід JSON та детальне ведення журналу для контролю та налагодження масових розгортань Windows 11.

Як створити скрипти для встановлення Windows 11 з певною конфігурацією

Якщо вам доводиться багато разів встановлювати Windows 11, повторне ставити одні й ті ж запитання щодо регіону, клавіатури, облікового запису, конфіденційності чи програм справді виснажує. Завдяки поєднанню… скрипти, файли відповідей без попереднього налаштування та деякі інструменти Microsoft Можна зробити весь цей процес майже автоматичним, навіть пропустити процес OOBE та застосувати власні розширені налаштування.

У наступних рядках ви побачите, як скористатися цим SetupComplete.cmd, ErrorHandler.cmd, Unattend/autounattend.xml, PowerShell та диспетчер конфігурацій...плюс деякі хитрощі, щоб уникнути перевірок обладнання або повністю налаштувати Windows 11. Ідея полягає в тому, що ви можете створювати завантажувальний USB-накопичувач або модифікований ISO-образ здатний встановити систему з вашими налаштуваннями, скриптами та програмами практично без натискання клавіші.

Скрипти встановлення Windows: SetupComplete.cmd та ErrorHandler.cmd

У самому інсталяторі Windows роками існував механізм для перехоплення користувацькі скрипти на пізніших етапах встановленняДва ключові файли – це SetupComplete.cmd y ErrorHandler.cmd, які розташовані на маршруті %WINDIR%\Налаштування\Скрипти\ та виконуються в контексті локальної системи.

Файл SetupComplete.cmd Він запускається одразу після завершення основної інсталяції та першого появи робочого столу, ще до того, як користувач почне використовувати систему у звичайному режимі. Звідти ви можете запускати інші скрипти. cscript або wscript, встановлювати програми, застосувати параметри реєстру або виконувати будь-які завдання після встановлення. Майте на увазі, що на обладнанні з ключем виробника Ця опція може бути обмежена, окрім версій Enterprise та Windows Server.

Зі свого боку, сценарій ErrorHandler.cmd Він розроблений як аварійний механізм. Коли під час встановлення трапляється серйозна поломка, яка перешкоджає подальшій роботі, монтажник перевіряє, чи є резервна система. %WINDIR%\Setup\Scripts\ErrorHandler.cmd та виконує його з системними привілеями. Цей компонент особливо корисний, коли Багато машин розгортаються одночаснооскільки це дозволяє вам записати помилку, зібрати інформацію або навіть спробувати автоматизовані виправлення.

Якщо інсталятор стикається з невиправною помилкою, а файл ErrorHandler.cmd відсутній, він відображає діалогове вікно з повідомленням і вимагає ручного закриття. Однак, якщо скрипт присутній, він виконується автоматично. синхронний, без відображення повідомлень користувачевіПісля цього програма інсталяції закривається. Залежно від етапу, на якому стався збій, комп’ютер повернеться до попереднього середовища, такого як Windows PE або попередня інсталяція Windows.

Бувають випадки, коли установка виявляє кілька послідовних помилок і тому виконує ErrorHandler.cmd більше одного разу. Під час розробки цього скрипта важливо підготувати його до ідемпотентТобто, його можна запускати багаторазово, не порушуючи нічого та не викликаючи рідкісних побічних ефектів.

Як працює SetupComplete.cmd та порядок виконання

Поведінка SetupComplete.cmd відповідає дуже певній послідовності, що дозволяє вам знати це зі значною точністю. коли будуть виконані ваші власні дії А які ще функції Windows все ще очікують на розгляд?

Після копіювання файлів та застосування образу, до появи екрана входу, інсталятор шукає в %WINDIR%\Налаштування\Скрипти\ файл із назвою SetupComplete.cmdЯкщо він його знаходить, він виконує його з системними обліковими даними, записуючи подію в журнал. C:\Windows\Panther\UnattendGC\Setupact.log, де ви можете перевірити, що саме сталося.

Щось важливе: програма конфігурації не перевіряє код виходу скриптаІншими словами, навіть якщо SetupComplete.cmd завершиться невдало або поверне ненульовий рівень помилки, встановлення продовжиться так, ніби нічого не сталося. Це змушує вас бути обережними з обробкою помилок у самому скрипті та, за необхідності, залишати сліди в користувацьких журналах.

Ще одна деталь, яку слід врахувати, це зв'язок з приєднання до домену та групові політикиЯкщо комп’ютер додається до домену під час інсталяції, об’єкти групової політики, визначені в цьому домені, не застосовуються, доки не завершиться виконання SetupComplete.cmd. Це запобігає втручанню застосування політик у ваші пост-інсталяційні сценарії, надаючи вам цінний час для внесення змін до того, як корпоративні налаштування набудуть чинності.

Розширене використання ErrorHandler.cmd для масових інсталяцій

Як створити скрипти для встановлення Windows 11 з певною конфігурацією

Коли ми розгортаємо десятки чи сотні систем, це лише питання часу, коли одна інсталяція зазнає невдачі через конфлікт драйвера, проблему з мережею або пошкоджений образ. У таких сценаріях, ErrorHandler.cmd — ваш найкращий союзник для збору діагностичної інформації та прийняття автоматизованих рішень.

Існує два основних способи включення цього скрипта до ваших розгортань. Перший передбачає Монтування образу Windows (наприклад, файл install.wim), створіть шлях %WINDIR%\Налаштування\Скрипти\ в цьому образі та скопіюйте туди файл ErrorHandler.cmd. Після відключення та збереження змін кожна інсталяція, яка використовує цей образ, матиме інтегровану обробку помилок.

Інший варіант — розмістити ErrorHandler.cmd у тимчасова папка, доступна під час встановленняНаприклад, C:\Temp\ErrorHandler.cmd та запустіть програму інсталяції Windows з параметром /m вказуючи на це місце: Setup /m:C:\TempТаким чином, інсталятор автоматично скопіює файли, знайдені в цій папці, до своєї внутрішньої структури, включаючи сценарій помилки.

Цей останній метод дуже зручний під час роботи з середовищем розгортання, де вже є спільні ресурси, оскільки він дозволяє оновити скрипт, не змінюючи базове зображенняУ будь-якому випадку, бажано, щоб ErrorHandler.cmd мав достатньо логіки для запису контексту збою (відповідні журнали, стан мережі, інформація про обладнання) та, за необхідності, пересилання цих даних на центральний сервер для подальшого аналізу.

Автоматичні встановлення за допомогою Unattend.xml та autounattend.xml

Якщо ви хочете встановити Windows 11 не ставлячи тобі жодних питань Щодо мови, клавіатури, облікового запису, OOBE, ліцензій тощо, ключовим компонентом є файл відповідей. Unattend.xml або autounattend.xmlЗавдяки цьому ви можете крок за кроком керувати установником, заздалегідь вказуючи всі опції, які зазвичай доводиться заповнювати вручну.

Файл Unattend.xml можна запускати на різних етапах процесу налаштування. Деякі опції запускаються дуже рано, під час фази налаштування. Налаштування Windowsідеально підходить для підготовки розділів диска. Інші запускаються під час кроків auditUser, oobeSystem або firstLogon, більше підходить для встановлення програм, активації служб або застосування налаштувань користувача.

Щоб запустити команди під час завантаження інсталятора, можна скористатися розділами Microsoft-Windows-Setup\RunAsynchronous o Синхронний запускВони ідеально підходять для визначення стилю розбиття диска (наприклад, GPT з EFI та розділами відновлення), стирання вмісту основного диска або застосування попередніх змін перед першим перезавантаженням.

Якщо ви хочете автоматизувати те, що відбувається в режим аудитуКоли система переходить у спеціальний стан для тестування та налаштування, у вашому розпорядженні є ключі. Розгортання Microsoft-Windows\RunAsynchronousCommand y ВиконатисинхроннуКоманду у фазі Користувач auditСаме там зазвичай розміщуються скрипти, призначені для тестування програм, встановлення великих пакетів або налаштування корпоративних шаблонів.

Нарешті, для керування тим, що відбувається після OOBE, перш ніж користувач побачить робочий стіл, використовуються такі розділи: Налаштування оболонки Microsoft Windows\Команди входу\Асинхронні команди y Команди першого входу\Синхронна командаЦі команди ідеально підходять для Додавайте або видаляйте програми, застосовуйте мовні налаштування, вимикайте пропозиції або налаштовуйте меню «Пуск».Однак краще не зловживати ними: занадто довгі скрипти затримують перехід користувача до робочого столу, а в комерційних версіях Windows є додаткові обмеження, яких важливо дотримуватися.

Windows 11 без нагляду: повністю пропустіть OOBE

Microsoft ускладнювала етап готовності до використання (OOBE) Windows 11 з кожним оновленням, додаючи екрани для підключення до мережі, створення або примусового використання облікових записів Microsoft, активації OneDrive, спроби Office, визначення використання пристрою або прийняття довгого списку параметрів конфіденційності. Усього цього можна уникнути за допомогою… автоматична інсталяція на основі autounattend.xml.

Ідея полягає в тому, щоб створити завантажувальний інсталяційний носій (зазвичай USB-накопичувач) з ISO-образом Windows 11 та помістіть його в кореневий каталог диска, на тому ж рівні, що й setup.exe, файл під назвою autounattend.xmlКоли інсталятор виявляє цей файл під час запуску, він використовує його як орієнтир для відповідей на всі ваші запитання.

За допомогою добре підготовленого файлу autounattend.xml ви можете вказати, що його слід встановити. Windows 11 Pro у повністю автоматичному режимі, створити обліковий запис адміністратора (наприклад, Адміністратор) та іншого стандартного користувача (Користувач) з тим самим попередньо визначеним паролем, а загальний ключ продукту залишити у фоновому режимі, який пізніше можна буде замінити вашою фактичною ліцензією.

Крім того, можна відкласти налаштування мережі до кінця, що в поєднанні з певними налаштуваннями дозволяє вам Встановлення Windows 11 без підключення до Інтернету або облікового запису MicrosoftЦе створює локальні облікові записи, вимикає телеметрію, змінює поведінку служби Windows Update на ручні оновлення, вимикає веб-результати Bing у меню «Пуск», блокує запропоновані програми та, за бажанням, відновлює класичне контекстне меню, подібне до меню Windows 10.

Той самий файл відповідей може містити команди для відображення поширених значків на робочому столі такі як Цей комп’ютер, Мережа, Кошик, Панель керування або папка користувача, а також налаштувати Провідник на свій смак (наприклад, завжди вмикаючи відомі розширення файлів). Багато з цих налаштувань застосовуються за допомогою додаткових скриптів і можуть стати видимими через кілька хвилин після першого входу в систему.

Подолання вимог та обмежень до обладнання Windows 11

Офіційно, Windows 11 вимагає відносно новіших процесорів, TPM 2.0, Secure Boot, 4 ГБ оперативної пам'яті, мінімальний обсяг сховища та графічний процесор, сумісний з DirectX 12Ці обмеження виключають багато комп'ютерів, які все ще цілком здатні виконувати офісні або лабораторні завдання, але залишаються без оновлень через надмірно суворі перевірки.

Хоча Microsoft не рекламує це, існують методи, задокументовані спільнотою Вставте в autounattend.xml ключі, які вимикають TPM, Secure Boot або перевірку мінімального обсягу пам'яті.Це дозволяє продовжувати встановлення без зависання на екрані вимог, навіть на непідтримуваному обладнанні. Це дуже корисна функція для тестових середовищ, старіших машин або навчальних лабораторій.

Однак важливо пам’ятати, що сама Microsoft попередила, що це вплине на пристрої, які обходять вимоги. Вони можуть перестати отримувати оновлення через Windows Updateособливо ті, що пов'язані з безпекою. Крім того, відсутність сумісного обладнання може спричинити проблеми: драйвери, які працюють неправильно, частіші сині екрани смерті (BSOD) на машинах з невеликим обсягом оперативної пам'яті, несумісність із програмним забезпеченням для віртуалізації або значне падіння продуктивності в деяких іграх.

Також існує цікавий ярлик, поширений спільнотою, який дозволяє запускати інсталятор Windows 11 з існуючого сеансу Windows за допомогою команди setup /product server у вікні командного рядка з правами адміністратора. Це змушує інсталятор обрати шлях оновлення, подібний до серверних версій, де вимоги до обладнання перевіряються по-іншому або послаблюються.

Використання цих хитрощів у робочому середовищі має свої ризики: ви можете отримати систему, в якій не буде повністю стабільних драйверів або довгострокових патчів безпеки. Для багатьох домашніх користувачів може бути краще залишитися з Windows 10, яка все ще підтримується до 2025 року, ніж... Примусове встановлення Windows 11 на дуже старих машинахАле для лабораторій, випробувань або обладнання, яке вже вийшло з експлуатації, ці рішення відкривають цікаві можливості.

Створіть та налаштуйте файл autounattend.xml для вашого середовища

Як створити скрипти для встановлення Windows 11 з певною конфігурацією

Створення файлу autounattend.xml з нуля може бути виснажливим, але існують онлайн-інструменти та спеціальні утиліти, які спрощують процес. Одним із найзручніших є веб-генератор, здатний Створення шаблонів автоматичної роботи для Windows 10 та 11, у якому ви вибираєте параметри через форми та не маєте потреби боротися з синтаксисом XML.

За допомогою цього типу генератора ви можете завантажити попередньо підготовлений файл-приклад, натиснути на "Вибрати файл" Щоб імпортувати його, вам потрібно буде переглянути налаштовані параметри розділ за розділом: мова, розділи, облікові записи, параметри конфіденційності, поведінка Windows Update, активація або деактивація функцій тощо. Якщо щось не відповідає вашому середовищу, ви адаптуєте це, а після завершення завантажуєте знову. користувацький файл autounattend.xml.

Архів містить такі розділи, як Запуск користувацьких скриптівУ цьому розділі визначено додаткові команди та скрипти, які будуть виконані після завершення встановлення, як на системному, так і на користувацькому рівні. Тут ви можете додати посилання на скрипти PowerShell, файли .cmd або .bat, які застосовують оптимізацію, очищають блоат-програми, змінюють параметри реєстру або розгорнути власне програмне забезпечення вашої організації.

Об'єкт без нагляду також контролює схема розподілу основного диска. Наприклад, ви можете вказати, що весь вміст диска має бути стертий, а таблиця розділів GPT має бути створена з розділом EFI розміром 300 МБ для завантаження та розділом відновлення розміром 1000 МБ, що містить середовище відновлення Windows RE. Решта місця виділяється системному розділу, що дозволяє уникнути несподіванок із залишковими розділами від попередніх інсталяцій.

Після того, як файл autounattend.xml буде готовий, його можна використовувати двома типовими способами: скопіювати його до кореневий каталог інсталяційного USB-накопичувача (разом із setup.exe) або змініть сам ISO-образ за допомогою утиліти, наприклад AnyBurnДодавання файлу назад до кореневого каталогу образу гарантує, що будь-який носій, створений з цього ISO, працюватиме під керуванням Windows 11 з уже включеною автоматизованою конфігурацією.

Налаштуйте власні скрипти та глибокі параметри за допомогою WinScript

Хоча автоматична/безперервна робота дозволяє автоматизувати значну частину встановлення, іноді потрібно піти далі та ретельно змінити внутрішню конфігурацію Windows 10 та 11 без необхідності вручну редагувати реєстр або створювати купу скриптів з нуля. Саме тут на допомогу приходить дуже цікавий інструмент з відкритим кодом під назвою WinScript.

WinScript представлений як безкоштовний додаток, доступний як у встановлюваній, так і в портативній версіях, який Він імітує інтерфейс налаштувань Windows 11. На бічній панелі пропонуються різні категорії налаштувань: конфіденційність, телеметрія, продуктивність, ігри, попередньо встановлені програми тощо. Праворуч ви знайдете певні опції для кожної категорії, кожна з яких має перемикач увімкнення/вимкнення.

Коли ви активуєте або деактивуєте ці перемикачі, WinScript буде автоматичне створення скрипта Це внутрішня система, яка фіксує всі ці зміни. Немає попередньо визначених профілів, що змушує вас ретельно переглядати кожну категорію, щоб створити власний ідеальний «рецепт» Windows. Перевага полягає в тому, що вам не потрібні глибокі знання скриптів: кожен параметр містить короткий опис, який точно пояснює, що він робить.

Після завершення налаштування параметрів ви можете зберегти програму з отриманим скриптом у usb driveТаким чином, ви можете просто запустити WinScript на будь-якому щойно встановленому комп'ютері, щоб одразу застосувати набір змін: видалити віруси, вимикати зайві служби, налаштовувати політики телеметрії, оптимізувати продуктивність та багато іншого.

Перш ніж вносити агресивні зміни, завжди рекомендується скористатися вбудованою опцією WinScript створити точку відновлення системиТаким чином, якщо будь-яке налаштування щось порушить або вас це не влаштує, ви зможете швидко повернутися до попереднього стану без необхідності переформатувати чи відновлювати весь образ системи.

Автоматизація скриптів PowerShell за допомогою Configuration Manager

У корпоративному середовищі, де команди вже мають клієнта Менеджер конфігурацій (поточна гілка), інтеграція зі скриптами PowerShell — справжній рятівник. Ця функція дозволяє створювати, затверджувати та запускати скрипти на цілих колекціях пристроїв Windows із централізованим відстеженням та консолідованими результатами.

Щоб скористатися цією функцією, клієнти повинні мати PowerShell 3.0 або вище (або версію, необхідну для конкретного скрипта) та клієнт Configuration Manager версії принаймні 1706. Крім того, необхідно виконати певні вимоги до дозволів: особа, яка створює скрипти, повинна мати дозволи на створення «SMS-скриптів», особа, яка їх затверджує, повинна мати дозволи на затвердження, а особа, яка їх запускає, повинна мати дозвіл на «Запуск скрипта» для колекцій.

Консоль чітко розрізняє автори, особи, що затверджують та виконавці сценаріївЗа замовчуванням один користувач не повинен мати змоги створювати та затверджувати власні сценарії, що додає важливого рівня безпеки до процесу. Це подвійне затвердження можна вимкнути для тестових цілей у лабораторіях, але для виробничих середовищ рекомендується підтримувати розподіл ролей.

Середовища безпеки використовуються для обмежити, хто може бачити та використовувати певні скриптиПризначаючи власні мітки та ролі, ви можете створити, наприклад, роль «Виконавці скриптів» з правами лише на читання та виконання колекцій і скриптів, роль «Автори» з можливістю створювати, змінювати та видаляти скрипти, але без їх виконання, та третю роль «Затверджувачі», яка відповідатиме виключно за перегляд та затвердження.

Створення скриптів з консолі є відносно простим: виберіть описову назву, вкажіть PowerShell як мову, імпортуйте підготовлений файл ps1 або запишіть його безпосередньо туди та налаштуйте параметри, якщо потрібно. Потім скрипт має стан... «Очікує на схвалення» доки особа, що затверджує, не перевірить його та не позначить як «Схвалено». Тільки після цього його можна розгорнути на пристроях або в колекціях.

Параметри, перевірка та заплановане виконання скриптів

Однією з переваг функції «Запуск сценаріїв» Configuration Manager є її здатність керувати типізовані та перевірені параметриВи можете визначити вхідні змінні типу рядок, ціле число або списки значень, до десяти параметрів на скрипт, що забезпечує велику гнучкість без надмірного ускладнення інтерфейсу.

Кожен параметр має власне поле властивостей, де можна налаштувати мінімальна та максимальна довжина, регулярні вирази та власні повідомлення про помилкиНаприклад, для рядкового параметра "FirstName" можна вимагати від 2 до 30 символів та забороняти використання певних великих літер за допомогою регулярного виразу, такого як Якщо оператор введе значення, яке не відповідає цим умовам, система відобразить визначене вами повідомлення про помилку.

Значення параметрів за замовчуванням отримуються з самого скрипта PowerShell, але Configuration Manager не змінює та не перезаписує їх; він просто Він відображає їх в інтерфейсі як пропозиціюЯкщо вам потрібно змінити фактичне значення за замовчуванням, вам слід редагувати безпосередньо скрипт, а не визначення параметра в консолі.

Коли настане час запустити скрипт, ви можете зробити це знову один пристрій або повна колекціяСистема ініціює команду як операцію з високим пріоритетом, яка зазвичай завершується менш ніж за годину. Результати повертаються через повідомлення про стан, включаючи код виходу (зазвичай 0 для успішного виконання) та стандартний вивід скрипта у форматі JSON або звичайного тексту.

У останніх версіях можна запланувати виконання на певну дату та час, завжди в Формат UTCЦе дуже корисно, якщо ви хочете синхронізувати глобальні розгортання або уникнути їх запуску в години пік. Скрипти виконуються від імені локального системного облікового запису пристрою, який має обмежений доступ до мережі, тому будь-яку потребу в доступі до віддалених ресурсів слід обробляти обережно (наприклад, використовуючи керовані облікові дані або відповідні точки розповсюдження).

Моніторинг, вивід JSON та діагностичне журналювання

Щоб уникнути помилок, Configuration Manager містить панель моніторинг стану скриптівУ розділі «Стан сценарію» ви можете перевірити майже в режимі реального часу, скільки пристроїв отримали команду, скільки успішно виконали сценарій, скільки не вдалося виконати або скільки з них були офлайн на той момент.

Крім того, оскільки Перегляд «Заплановані сценарії» Ви можете відстежувати заплановані вами виконання. Кожен запис відображає ідентифікатор операції клієнта, запланований час, поточний стан (наприклад, «Заплановано» або «Операцію клієнта успішно розпочато») та інші корисні метадані. Після виконання результати також відображаються у вузлі стану скрипта, на який посилається той самий ідентифікатор.

Вивід скриптів бажано повертати у JSONза допомогою командлета ConvertTo-Json серіалізувати згенеровані об'єкти. Це дозволяє консолі відображати структуроване представлення виводу, яке набагато легше читати та аналізувати, ніж просту стіну тексту. Якщо скрипт не повертає об'єкти або вивід не є коректним JSON, він буде відображено у форматі звичайного тексту.

Найкраще уникати надмірно великих виходів: система скорочує результати до 4 КБТому скрипти, які повертають багато інформації, ризикують пропустити важливі дані. Також бажано вручну конвертувати певні спеціальні типи, такі як перерахування, у рядки, щоб отриманий JSON був зрозумілим та легким для інтерпретації.

У разі виникнення проблем, є кілька журналів, про які варто знати. На самому клієнті, в C:\Windows\CCM\Logs, виділятися Scripts.log y CcmMessaging.logМодуль адміністрування містить MP_RelayMsggr.log і на сервері сайту, зазвичай під C:\Program Files\Configuration Manager\Logs, файл SMS_Message_Processing_Engine.logЦі журнали є першою обов'язковою зупинкою, коли щось йде не так з виконанням або звітуванням про скрипти.

Ця вся екосистема скриптів, файлів відповідей без нагляду та централізованих інструментів управління дозволяє створювати високоавтоматизовані робочі процеси встановлення Windows 11Від пропуску перевірок OOBE та обладнання до запуску Sysprep, виконання скриптів PSWindowsUpdate для встановлення драйверів з Windows Update, багаторазового перезавантаження та повернення комп'ютера до готового до використання стану OOBE, практично будь-який повторюваний сценарій можна інкапсулювати в набір добре розроблених файлів та кількох рекомендацій.

  • Автоматизація Windows 11 Це передбачає об'єднання файлів Unattend/autounattend.xml зі скриптами, такими як SetupComplete.cmd та ErrorHandler.cmd.
  • Установки Без нагляду дозволяє пропустити OOBEНалаштуйте мову, облікові записи та конфіденційність, а також подолайте вимоги TPM та Secure Boot.
  • Такі інструменти, як WinScript та диспетчер конфігурацій Вони спрощують створення, затвердження та запуск скриптів PowerShell з параметрами та централізованим відстеженням.
  • Ретельне проектування скриптів та журналів гарантує надійніші масові розгортання, з меншим ручним втручанням та кращими діагностичними можливостями.
Створення Bash-скриптів у Windows за допомогою WSL
Пов'язана стаття:
Де зберігати скрипти у Windows, щоб запускати їх з будь-якого місця