background img

The New Stuff

Создание файла ответов для автоматической установки Windows 7

    Примечание:
    16.02.2015. Обновил статью для работы с 13 редакциями/версиями (изменились последние шаги, где интеграция ключа и сжатие).



    Как было бы здорово, если можно было бы избавиться от ненужных клацаний мышкой и по клавиатуре во время установки Windows, оставив лишь только самые важные и настраиваемые каждый раз уникальные параметры (у меня это: выбор редакции и разметка диска). Зачем каждый раз подтверждать, что ты согласен с пользовательским соглашением Microsoft? Зачем каждый раз выбирать язык установки? И т.д и т.п.
    Всё это можно выбрать один раз и прописать в файле ответов, который будет в дальнейшем использоваться установщиком Windows.
    Если подробнее, то файл ответов представляет собой сценарий ответов на серию диалоговых окон графического интерфейса установки системы. Файл ответов сообщает программе установки, как обращаться со всеми дополнительными файлами и папками, которые вы создали, а также предоставляет программе установки всю информацию, которую пользователь вводит вручную во время стандартной установки Windows.
    Файл ответов для автоматической установки - это текстовый файл в формате XML. Его можно создать вручную в текстовом редакторе, таком как Блокнот. Однако, учитывая сложную структуру файла ответов и большое количество содержащихся в нем параметров, текстовые редакторы подходят скорее для быстрой правки, чем для создания файла и серьезной работы с ним. Для автоматизации создания файла ответов и его последующей правки рекомендуется использовать диспетчер образов системы Windows (Windows System Image Manager, WSIM), который входит в состав пакета автоматической установки Windows (WAIK).
    И в этой статье я покажу как работать с WSIM и создать свой файл ответов с выбором только устанавливаемой редакции и разметкой диска.
    Помимо WSIM будет производиться интеграция ключей продукта с помощью уже знакомой утилиты DISM.



    Сначала определимся с тем, что у нас уже есть:
1. Свой ISO-образ содержащий настроенный install.wim (объединенные x86 и x64).
2. Установленный WAIK.
3. Распакованный ISO-образ дистрибутива в папку .\ISO_files.
4. Пустой каталог .\mount.

    Теперь непосредственно перейдем к работе с Диспетчером образов системы Windows (WSIM).

Последовательность действий:

1. Помещаем любым способом наш файл install.wim в папку .\install_wims.
    Примечание:
    В конце 7 пункта я выложил свой настроенный файл ответов, так что если что-то пойдет не так, или просто лень все это делать, то можете взять его.


2. Откроем WSIM.
Меню Пуск -> Все программы -> Microsoft Windows AIK -> Диспетчер образов системы Windows
3. Откроем наш образ install.wim в WSIM. Справка MS
    Меню Файл -> Пункт Выбрать образ Windows -> Указываем на .\install_wims\install.wim -> Выбираем образ (редакцию и разрядность) из появившегося списка (пусть будет Starter (x86)):

    Диспетчер образов сообщит вам о том, что файл каталога не удается найти. Это стандартное предупреждение. Щелкнем кнопку Да, чтобы создать файл каталога.

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

4. Создадим файл ответов. Справка MS
    Меню Файл -> Пункт Новый файл ответов

    В панели Файл ответов появится новый файл ответов, содержащий в себе элементы, представляющие различные стадии (проходы) настройки Windows во время установки (что они значат на примере Vista можете узнать тут):

5. Добавим все необходимые компоненты в файл ответов. Справка MS
    Для создания файла ответов необходимо добавить в него компоненты из каталога. Компоненты содержатся в узле Components, который раскрывается щелчком мыши по узлу [+]. Многие компоненты также объединены в узлы, поэтому будьте внимательны при выборе компонента - последовательно раскрывайте узлы до тех пор, пока не увидите нужный компонент.
    Рассмотрим добавление компонента Microsoft-Windows-International-Core-WinPE | SetupUILanguage (параметр задает язык программы установки Windows).

5.1. Раскрываем узел Microsoft-Windows-International-Core-WinPE, чтобы отобразить компонент SetupUILanguage:

5.2. Щелкаем правой кнопкой мыши на компоненте SetupUILanguage и выбираем из контекстного меню пункт Добавление параметра для прохода 1 windowsPE:

    В данном случае добавление компонента возможно только для первого прохода (остальные проходы неактивны), однако так будет не всегда. Поэтому будьте внимательны при указании прохода.
    После добавления компонента его запись будет отображена в панели Файл ответов, а параметры - доступны для редактирования:

    Аналогично добавим все необходимые компоненты. Таким образом у нас должны быть добавлены следующие компоненты в выбранные проходы:
Компонент
Проход
Microsoft-Windows-International-Core-WinPE | SetupUILanguage-->1 windowsPE
Microsoft-Windows-Setup | UserData-->1 windowsPE
Microsoft-Windows-Shell-Setup-->4 specialize
Microsoft-Windows-International-Core-->7 oobeSystem
Microsoft-Windows-Shell-Setup-->7 oobeSystem

    После добавления всех указанных компонентов панель Файл ответов должна выглядеть так:

    На этом добавление компонентов в базовый файл ответов завершено. Не закрывайте файл ответов, иначе все пустые параметры будут из него удалены.

6. Редактирование параметров добавленных компонентов. Справка MS
    Для того чтобы отобразить и изменить значения параметров, щелкните на названии компонента в панели Файл ответов. Редактирование параметров осуществляется в соседней панели Свойства: <Название компонента>.
    Покажу как менять один из параметров.
    Требуется задать русский язык установщика Windows, для этого в меню Файл ответов выбираем параметр:
windowsPE | Microsoft-Windows-International-Core-WinPE | SetupUILanguage 
и заносим в соседней панели Свойства: SetupUILanguage в параметр UILanguage значение ru-RU:

    Аналогичным образом задаем все необходимые параметры. И таким образом у нас должны быть установлены следующие значения в соответствующие параметры (пометил курсивом, то что может быть другим, например, имя пользователя):
ПараметрЗначение
windowsPE | Microsoft-Windows-International-Core-WinPE | SetupUILanguage | UILanguage --> ru-RU
windowsPE | Microsoft-Windows-International-Core-WinPE | InputLocale --> en-US; ru-RU
windowsPE | Microsoft-Windows-International-Core-WinPE | SystemLocale --> ru-RU
windowsPE | Microsoft-Windows-International-Core-WinPE | UILanguage --> ru-RU
windowsPE | Microsoft-Windows-International-Core-WinPE | UserLocale --> ru-RU
windowsPE | Microsoft-Windows-Setup | UserData | AcceptEula --> true
specialize | Microsoft-Windows-Shell-Setup | ComputerName --> 1
oobeSystem | Microsoft-Windows-International-Core | InputLocale --> en-US; ru-RU
oobeSystem | Microsoft-Windows-International-Core | SystemLocale --> ru-RU
oobeSystem | Microsoft-Windows-International-Core | UILanguage --> ru-RU
oobeSystem | Microsoft-Windows-International-Core | UserLocale --> ru-RU
oobeSystem | Microsoft-Windows-Shell-Setup | TimeZone --> Ekaterinburg Standard Time
oobeSystem | Microsoft-Windows-Shell-Setup | AutoLogon | Enabled --> true
oobeSystem | Microsoft-Windows-Shell-Setup | AutoLogon | Username --> Admin
oobeSystem | Microsoft-Windows-Shell-Setup | AutoLogon | Password --> "Запись пустой строки"
oobeSystem | Microsoft-Windows-Shell-Setup | OOBE | HideEULAPage --> true
oobeSystem | Microsoft-Windows-Shell-Setup | OOBE | HideWirelessSetupInOOBE --> true
oobeSystem | Microsoft-Windows-Shell-Setup | OOBE | NetworkLocation --> Home
oobeSystem | Microsoft-Windows-Shell-Setup | OOBE | ProtectYourPC --> 1
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | DisplayName --> Admin
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Group --> Administrators
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Name --> Admin
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Password --> "Запись пустой строки"

    Для автоматического входа в систему (без ввода имени пользователя и пароля) необходимо в параметрах:
oobeSystem | Microsoft-Windows-Shell-Setup | AutoLogon | Password
и
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Password
указать в качестве значения Value пустую сроку (ПКМ->"Запись пустой строки"):

    После заполнения всех значений получим следующий файл ответов:

    Сохраним полученный файл ответов с именем AutoUnatted.xml, закроем WSIM, и заново откроем, чтобы все пустые параметры удалились и не мешали нам. Посмотрим на результат (красиво, неправда ли):
7. Чтобы не повторять вручную все эти действия для каждой редакции и для каждой разрядности, провернем кое-что над полученным файлом AutoUnatted.xml в блокноте (у меня AkelPad)

7.1. Для начала откроем этот файл AutoUnatted.xml и пролистаем его к самому низу:
    Как мы видим в конце файла (в предпоследней строчке у меня) хранится информация о текущем wim-образе и редакции, для которой мы все это делали, дак вот ни к чему нам эта строчка ( ) - удалим ее и сохраним измененный файл.

7.2. Т.к. кроме редакций разрядности x86 в нашем образе имеются и редакции x64, которые подразумевают несколько другие настройки, но все их различие по сути состоит лишь в 5 символах. Давайте сделаем наш файл ответов универсальным для обоих разрядностей:
7.2.1. Создадим временную копию нашего файла AutoUnatted.xml (не важно где и как она будет называться, главное чтобы была).
7.2.2. Откроем файл AutoUnatted.xml в блокноте (AkelPad'е).
7.2.3. Откроем меню "Замена" и введем следующую строку для поиска:
processorArchitecture="x86"
    и следующую строку для замены:
processorArchitecture="amd64"
7.2.4. Произведем замену всех вхождений искомой строки в файле:
    Теперь наш файл ответов пригоден для установки всех редакции разрядности x64.
7.2.5. Склеим оба файла вместе, но не простым "кописпастом". Т.к. у нас при создании файла ответов использовались параметры из 3 проходов (windowsPE, specialize, oobeSystem), то сам xml-файл состоит из 3 разделов с нашими параметрами содержащимися внутри тэгов .

    И нам необходимо правильно скопировать все параметры для архитектуры x86 (из временной копии файла AutoUnatted.xml) из каждого прохода (тега settings) внутрь каждого прохода, но уже для архитектуры x64 (текущего файла AutoUnatted.xml). Объяснил, как смог...

    Как вы можете видеть, кол-во компонентов у меня в меню справа увеличилось вдвое, после данной операции. Сохраняем изменения в файле AutoUnatted.xml. Закрываем его.
    Вот так он выглядит, если открыть его в WSIM:

    Больше нам не придется его модифицировать.
    Вот, собственно, то, что получилось у меня: скачать AutoUnatted.xml (mirror).

8. Перенесем полученный файл ответов AutoUnatted.xml в папку .\ISO_files (коренная папка содержащая распакованный ISO-образ дистрибутива).

9. И последнее:
    Чтобы избавится от этого надоедливого окошка со вводом ключа продукта:
    необходимо интегрировать ключ с помощью DISM в каждую редакцию/индекс нашего образа install.wim.
    Возникает вопрос: где взять ключ?
    Ответ: купить, или взять из файла product.ini (находится в папке .\ISO_files\sources ISO-образа дистрибутива), именно с этими ключами устанавливается Windows, если пропустить это окно не вводя ключа и нажав кнопку "Далее". Само собой с этими ключами нельзя активировать ОС, но нам ведь главное установить ее без лишних вопросов, а ключик можно и потом сменить (у нас будет 3 дня на это).
    Как всегда для начала смотрим какие редакции под какими индексами у нас находятся в образе install.wim (он у нас все еще лежит в папке .\install_wims) с помощью следующей команды (напомню, что все команды вводятся в "Командной строке средств развертывания" запущенной от имени Администратора):
dism /get-wiminfo /wimfile:.\install_wims\install.wim
    Результат:
Cистема DISM
Версия: 6.1.7600.16385

Сведения об образе : .\install.wim

Индекс: 1
Имя : Windows 7 Starter (x86)
Описание : Windows 7 STARTER
Размер (байт): 7 873 232 304

Индекс: 2
Имя : Windows 7 HomeBasic (x86)
Описание : Windows 7 HOMEBASIC
Размер (байт): 7 893 059 504

Индекс: 3
Имя : Windows 7 HomePremium (x86)
Описание : Windows 7 HOMEPREMIUM
Размер (байт): 8 335 398 278

Индекс: 4
Имя : Windows 7 Professional (x86)
Описание : Windows 7 PROFESSIONAL
Размер (байт): 8 218 641 683

Индекс: 5
Имя : Windows 7 Ultimate (x86)
Описание : Windows 7 ULTIMATE
Размер (байт): 8 379 064 882

Индекс: 6
Имя : Windows 7 HomeBasic (x64)
Описание : Windows 7 HOMEBASIC
Размер (байт): 11 537 436 013

Индекс: 7
Имя : Windows 7 HomePremium (x64)
Описание : Windows 7 HOMEPREMIUM
Размер (байт): 12 050 812 181

Индекс: 8
Имя : Windows 7 Professional (x64)
Описание : Windows 7 PROFESSIONAL
Размер (байт): 11 953 184 030

Индекс: 9
Имя : Windows 7 Ultimate (x64)
Описание : Windows 7 ULTIMATE
Размер (байт): 12 116 011 126

Индекс: 10
Имя : Windows 7 Enterprise (x86)
Описание : Windows 7 ENTERPRISE
Размер (байт): 8 223 165 758

Индекс: 11
Имя : Windows 7 Enterprise (x64)
Описание : Windows 7 ENTERPRISE
Размер (байт): 11 958 749 455

Индекс: 12
Имя : Windows 7 Professional VL (x86)
Описание : Windows 7 PROFESSIONAL
Размер (байт): 8 218 767 771

Индекс: 13
Имя : Windows 7 Professional VL (x64)
Описание : Windows 7 PROFESSIONAL
Размер (байт): 11 954 208 757

Операция успешно завершена.
    Чтобы интегрировать ключ, создадим небольшой cmd/bat-скрипт и запустим его (он будет интегрировать нужный ключик в нужный индекс):
mkdir .\mount

::1. Starter x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:1 /mountdir:.\mount
dism /image:.\mount /set-productkey:7Q28W-FT9PC-CMMYT-WHMY2-89M6G
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::2. HomeBasic x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:2 /mountdir:.\mount
dism /image:.\mount /set-productkey:YGFVB-QTFXQ-3H233-PTWTJ-YRYRV
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::3. HomePremium x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:3 /mountdir:.\mount
dism /image:.\mount /set-productkey:RHPQ2-RMFJH-74XYM-BH4JX-XM76F
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::4. Professional x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:4 /mountdir:.\mount
dism /image:.\mount /set-productkey:HYF8J-CVRMY-CM74G-RPHKF-PW487
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::5. Ultimate x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:5 /mountdir:.\mount
dism /image:.\mount /set-productkey:D4F6K-QK3RD-TMVMJ-BBMRX-3MBMV
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::6. HomeBasic x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:6 /mountdir:.\mount
dism /image:.\mount /set-productkey:YGFVB-QTFXQ-3H233-PTWTJ-YRYRV
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::7. HomePremium x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:7 /mountdir:.\mount
dism /image:.\mount /set-productkey:RHPQ2-RMFJH-74XYM-BH4JX-XM76F
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::8. Professional x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:8 /mountdir:.\mount
dism /image:.\mount /set-productkey:HYF8J-CVRMY-CM74G-RPHKF-PW487
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::9. Ultimate x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:9 /mountdir:.\mount
dism /image:.\mount /set-productkey:D4F6K-QK3RD-TMVMJ-BBMRX-3MBMV
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::10. Entreprise x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:10 /mountdir:.\mount
dism /image:.\mount /set-productkey:H7X92-3VPBB-Q799D-Y6JJ3-86WC6
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::11. Entreprise x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:11 /mountdir:.\mount
dism /image:.\mount /set-productkey:H7X92-3VPBB-Q799D-Y6JJ3-86WC6
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::12. Professional VL x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:12 /mountdir:.\mount
dism /image:.\mount /set-productkey:HYF8J-CVRMY-CM74G-RPHKF-PW487
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::13. Professional VL x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:13 /mountdir:.\mount
dism /image:.\mount /set-productkey:HYF8J-CVRMY-CM74G-RPHKF-PW487
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim
10. Переименуем полученный образ install.wim в _install.wim, чтобы в дальнейшем его сжать с помощью ImageX (я выиграл ~0,3ГБ):
move /y .\install_wims\install.wim .\install_wims\_install.wim

imagex /export ".\install_wims\_install.wim" 1 ".\install_wims\install.wim" "Windows 7 Starter (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 2 ".\install_wims\install.wim" "Windows 7 HomeBasic (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 3 ".\install_wims\install.wim" "Windows 7 HomePremium (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 4 ".\install_wims\install.wim" "Windows 7 Professional (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 5 ".\install_wims\install.wim" "Windows 7 Ultimate (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 6 ".\install_wims\install.wim" "Windows 7 HomeBasic (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 7 ".\install_wims\install.wim" "Windows 7 HomePremium (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 8 ".\install_wims\install.wim" "Windows 7 Professional (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 9 ".\install_wims\install.wim" "Windows 7 Ultimate (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 10 ".\install_wims\install.wim" "Windows 7 Enterprise (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 11 ".\install_wims\install.wim" "Windows 7 Enterprise (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 12 ".\install_wims\install.wim" "Windows 7 Professional VL (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 13 ".\install_wims\install.wim" "Windows 7 Professional VL (x64)" /compress maximum
    И вы можете сами убедиться новый файл install.wim весит меньше несжатого _install.wim.
    Повторное сжатие, как я уже говорил, ни к чему не приведет.
    Старый несжатый _install.wim можно удалить:
del /q .\install_wims\_install.wim
11. Перенесем полученный файл install.wim внутрь нашего распакованного образа дистрибутива в .\ISO_files\sources:
move /y .\install_wims\install.wim .\ISO_files\sources\install.wim
12. Обратно запакуем всё в ISO-образ с помощью OSCDIMG. Для этого создадим bat-файл следующего содержания и запустим его в "Командной строке средств развертывания":
:: Папка с установочными файлами Windows
SET source=.\ISO_files
:: Папка для сохранения ISO-образа
SET target=.\
:: Путь до загрузчика
SET bootloader="%source%\boot\etfsboot.com"

:: Создание ISO-образа
oscdimg -u2 -lWIN7 -m -h -b"%bootloader%" "%source%" "%target%\WIN7x86-x64.iso"

::-u2 - Создает образ, который имеет файловую систему UDF.
::-l  - Задает метку тома. Между параметрами l и метка пробелов быть не должно.
::-b  - Указывает на загрузочный файл образа, который используется для создания загрузочного сектора на DVD-диске или образе.
::-h  - Включает в создаваемый образ все скрытые файлы и папки, расположенные по указанному пути
::-m  - Игнорирует ограничение максимального размера образа.
13. Готово!
    Можно попробовать загрузиться с созданного образа и установить Windows.
    Я решил попробовать установить Windows 7 Professional (x64), чтобы проверить все ли прошло успешно.
    Первым "кликом" было это окно (при желании можно и его убрать простым удалением файла bootfix.bin из дистрибутива, но я не хочу):
    Дальше запускается установщик, загружается наш файл ответов и второй "клик" - это выбор редакции и разрядности:
    Я выбрал Windows 7 Professional (x64). Следующее и последнее (третий "клик") в чем мне пришлось поучаствовать - это стандартное окно выбора раздела для установки (опять же при желании это можно автоматизировать, но я предпочитаю вручную разбивать диски).
    Дальше процесс установки полностью автоматизирован и не было задано ни единого вопроса. И после завершения установки был показан привычный рабочий стол.
    А вот скриншот с информацией о установленной системе:

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

Используемый материал:
Автоматическая установка Windows Vista / Windows 7 / Windows 8
Процесс установки Windows Vista
Общее - [статья] Файл ответов (AutoUnattend.xml) .:[все вопросы, параметры, уточнения, etc]:.
Создание учетных записей и настройка автоматического входа в систему
Техническое руководство по диспетчеру установки Windows
Создание файла ответов для Windows Vista

При копировании статьи просьба указывать источник и автора.
С уважением, GRomR1.
    Примечание:
    16.02.2015. Обновил статью для работы с 13 редакциями/версиями (изменились последние шаги, где интеграция ключа и сжатие).



    Как было бы здорово, если можно было бы избавиться от ненужных клацаний мышкой и по клавиатуре во время установки Windows, оставив лишь только самые важные и настраиваемые каждый раз уникальные параметры (у меня это: выбор редакции и разметка диска). Зачем каждый раз подтверждать, что ты согласен с пользовательским соглашением Microsoft? Зачем каждый раз выбирать язык установки? И т.д и т.п.
    Всё это можно выбрать один раз и прописать в файле ответов, который будет в дальнейшем использоваться установщиком Windows.
    Если подробнее, то файл ответов представляет собой сценарий ответов на серию диалоговых окон графического интерфейса установки системы. Файл ответов сообщает программе установки, как обращаться со всеми дополнительными файлами и папками, которые вы создали, а также предоставляет программе установки всю информацию, которую пользователь вводит вручную во время стандартной установки Windows.
    Файл ответов для автоматической установки - это текстовый файл в формате XML. Его можно создать вручную в текстовом редакторе, таком как Блокнот. Однако, учитывая сложную структуру файла ответов и большое количество содержащихся в нем параметров, текстовые редакторы подходят скорее для быстрой правки, чем для создания файла и серьезной работы с ним. Для автоматизации создания файла ответов и его последующей правки рекомендуется использовать диспетчер образов системы Windows (Windows System Image Manager, WSIM), который входит в состав пакета автоматической установки Windows (WAIK).
    И в этой статье я покажу как работать с WSIM и создать свой файл ответов с выбором только устанавливаемой редакции и разметкой диска.
    Помимо WSIM будет производиться интеграция ключей продукта с помощью уже знакомой утилиты DISM.



    Сначала определимся с тем, что у нас уже есть:
1. Свой ISO-образ содержащий настроенный install.wim (объединенные x86 и x64).
2. Установленный WAIK.
3. Распакованный ISO-образ дистрибутива в папку .\ISO_files.
4. Пустой каталог .\mount.

    Теперь непосредственно перейдем к работе с Диспетчером образов системы Windows (WSIM).

Последовательность действий:

1. Помещаем любым способом наш файл install.wim в папку .\install_wims.
    Примечание:
    В конце 7 пункта я выложил свой настроенный файл ответов, так что если что-то пойдет не так, или просто лень все это делать, то можете взять его.


2. Откроем WSIM.
Меню Пуск -> Все программы -> Microsoft Windows AIK -> Диспетчер образов системы Windows
3. Откроем наш образ install.wim в WSIM. Справка MS
    Меню Файл -> Пункт Выбрать образ Windows -> Указываем на .\install_wims\install.wim -> Выбираем образ (редакцию и разрядность) из появившегося списка (пусть будет Starter (x86)):

    Диспетчер образов сообщит вам о том, что файл каталога не удается найти. Это стандартное предупреждение. Щелкнем кнопку Да, чтобы создать файл каталога.

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

4. Создадим файл ответов. Справка MS
    Меню Файл -> Пункт Новый файл ответов

    В панели Файл ответов появится новый файл ответов, содержащий в себе элементы, представляющие различные стадии (проходы) настройки Windows во время установки (что они значат на примере Vista можете узнать тут):

5. Добавим все необходимые компоненты в файл ответов. Справка MS
    Для создания файла ответов необходимо добавить в него компоненты из каталога. Компоненты содержатся в узле Components, который раскрывается щелчком мыши по узлу [+]. Многие компоненты также объединены в узлы, поэтому будьте внимательны при выборе компонента - последовательно раскрывайте узлы до тех пор, пока не увидите нужный компонент.
    Рассмотрим добавление компонента Microsoft-Windows-International-Core-WinPE | SetupUILanguage (параметр задает язык программы установки Windows).

5.1. Раскрываем узел Microsoft-Windows-International-Core-WinPE, чтобы отобразить компонент SetupUILanguage:

5.2. Щелкаем правой кнопкой мыши на компоненте SetupUILanguage и выбираем из контекстного меню пункт Добавление параметра для прохода 1 windowsPE:

    В данном случае добавление компонента возможно только для первого прохода (остальные проходы неактивны), однако так будет не всегда. Поэтому будьте внимательны при указании прохода.
    После добавления компонента его запись будет отображена в панели Файл ответов, а параметры - доступны для редактирования:

    Аналогично добавим все необходимые компоненты. Таким образом у нас должны быть добавлены следующие компоненты в выбранные проходы:
Компонент
Проход
Microsoft-Windows-International-Core-WinPE | SetupUILanguage-->1 windowsPE
Microsoft-Windows-Setup | UserData-->1 windowsPE
Microsoft-Windows-Shell-Setup-->4 specialize
Microsoft-Windows-International-Core-->7 oobeSystem
Microsoft-Windows-Shell-Setup-->7 oobeSystem

    После добавления всех указанных компонентов панель Файл ответов должна выглядеть так:

    На этом добавление компонентов в базовый файл ответов завершено. Не закрывайте файл ответов, иначе все пустые параметры будут из него удалены.

6. Редактирование параметров добавленных компонентов. Справка MS
    Для того чтобы отобразить и изменить значения параметров, щелкните на названии компонента в панели Файл ответов. Редактирование параметров осуществляется в соседней панели Свойства: <Название компонента>.
    Покажу как менять один из параметров.
    Требуется задать русский язык установщика Windows, для этого в меню Файл ответов выбираем параметр:
windowsPE | Microsoft-Windows-International-Core-WinPE | SetupUILanguage 
и заносим в соседней панели Свойства: SetupUILanguage в параметр UILanguage значение ru-RU:

    Аналогичным образом задаем все необходимые параметры. И таким образом у нас должны быть установлены следующие значения в соответствующие параметры (пометил курсивом, то что может быть другим, например, имя пользователя):
ПараметрЗначение
windowsPE | Microsoft-Windows-International-Core-WinPE | SetupUILanguage | UILanguage --> ru-RU
windowsPE | Microsoft-Windows-International-Core-WinPE | InputLocale --> en-US; ru-RU
windowsPE | Microsoft-Windows-International-Core-WinPE | SystemLocale --> ru-RU
windowsPE | Microsoft-Windows-International-Core-WinPE | UILanguage --> ru-RU
windowsPE | Microsoft-Windows-International-Core-WinPE | UserLocale --> ru-RU
windowsPE | Microsoft-Windows-Setup | UserData | AcceptEula --> true
specialize | Microsoft-Windows-Shell-Setup | ComputerName --> 1
oobeSystem | Microsoft-Windows-International-Core | InputLocale --> en-US; ru-RU
oobeSystem | Microsoft-Windows-International-Core | SystemLocale --> ru-RU
oobeSystem | Microsoft-Windows-International-Core | UILanguage --> ru-RU
oobeSystem | Microsoft-Windows-International-Core | UserLocale --> ru-RU
oobeSystem | Microsoft-Windows-Shell-Setup | TimeZone --> Ekaterinburg Standard Time
oobeSystem | Microsoft-Windows-Shell-Setup | AutoLogon | Enabled --> true
oobeSystem | Microsoft-Windows-Shell-Setup | AutoLogon | Username --> Admin
oobeSystem | Microsoft-Windows-Shell-Setup | AutoLogon | Password --> "Запись пустой строки"
oobeSystem | Microsoft-Windows-Shell-Setup | OOBE | HideEULAPage --> true
oobeSystem | Microsoft-Windows-Shell-Setup | OOBE | HideWirelessSetupInOOBE --> true
oobeSystem | Microsoft-Windows-Shell-Setup | OOBE | NetworkLocation --> Home
oobeSystem | Microsoft-Windows-Shell-Setup | OOBE | ProtectYourPC --> 1
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | DisplayName --> Admin
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Group --> Administrators
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Name --> Admin
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Password --> "Запись пустой строки"

    Для автоматического входа в систему (без ввода имени пользователя и пароля) необходимо в параметрах:
oobeSystem | Microsoft-Windows-Shell-Setup | AutoLogon | Password
и
oobeSystem | Microsoft-Windows-Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Password
указать в качестве значения Value пустую сроку (ПКМ->"Запись пустой строки"):

    После заполнения всех значений получим следующий файл ответов:

    Сохраним полученный файл ответов с именем AutoUnatted.xml, закроем WSIM, и заново откроем, чтобы все пустые параметры удалились и не мешали нам. Посмотрим на результат (красиво, неправда ли):
7. Чтобы не повторять вручную все эти действия для каждой редакции и для каждой разрядности, провернем кое-что над полученным файлом AutoUnatted.xml в блокноте (у меня AkelPad)

7.1. Для начала откроем этот файл AutoUnatted.xml и пролистаем его к самому низу:
    Как мы видим в конце файла (в предпоследней строчке у меня) хранится информация о текущем wim-образе и редакции, для которой мы все это делали, дак вот ни к чему нам эта строчка ( ) - удалим ее и сохраним измененный файл.

7.2. Т.к. кроме редакций разрядности x86 в нашем образе имеются и редакции x64, которые подразумевают несколько другие настройки, но все их различие по сути состоит лишь в 5 символах. Давайте сделаем наш файл ответов универсальным для обоих разрядностей:
7.2.1. Создадим временную копию нашего файла AutoUnatted.xml (не важно где и как она будет называться, главное чтобы была).
7.2.2. Откроем файл AutoUnatted.xml в блокноте (AkelPad'е).
7.2.3. Откроем меню "Замена" и введем следующую строку для поиска:
processorArchitecture="x86"
    и следующую строку для замены:
processorArchitecture="amd64"
7.2.4. Произведем замену всех вхождений искомой строки в файле:
    Теперь наш файл ответов пригоден для установки всех редакции разрядности x64.
7.2.5. Склеим оба файла вместе, но не простым "кописпастом". Т.к. у нас при создании файла ответов использовались параметры из 3 проходов (windowsPE, specialize, oobeSystem), то сам xml-файл состоит из 3 разделов с нашими параметрами содержащимися внутри тэгов .

    И нам необходимо правильно скопировать все параметры для архитектуры x86 (из временной копии файла AutoUnatted.xml) из каждого прохода (тега settings) внутрь каждого прохода, но уже для архитектуры x64 (текущего файла AutoUnatted.xml). Объяснил, как смог...

    Как вы можете видеть, кол-во компонентов у меня в меню справа увеличилось вдвое, после данной операции. Сохраняем изменения в файле AutoUnatted.xml. Закрываем его.
    Вот так он выглядит, если открыть его в WSIM:

    Больше нам не придется его модифицировать.
    Вот, собственно, то, что получилось у меня: скачать AutoUnatted.xml (mirror).

8. Перенесем полученный файл ответов AutoUnatted.xml в папку .\ISO_files (коренная папка содержащая распакованный ISO-образ дистрибутива).

9. И последнее:
    Чтобы избавится от этого надоедливого окошка со вводом ключа продукта:
    необходимо интегрировать ключ с помощью DISM в каждую редакцию/индекс нашего образа install.wim.
    Возникает вопрос: где взять ключ?
    Ответ: купить, или взять из файла product.ini (находится в папке .\ISO_files\sources ISO-образа дистрибутива), именно с этими ключами устанавливается Windows, если пропустить это окно не вводя ключа и нажав кнопку "Далее". Само собой с этими ключами нельзя активировать ОС, но нам ведь главное установить ее без лишних вопросов, а ключик можно и потом сменить (у нас будет 3 дня на это).
    Как всегда для начала смотрим какие редакции под какими индексами у нас находятся в образе install.wim (он у нас все еще лежит в папке .\install_wims) с помощью следующей команды (напомню, что все команды вводятся в "Командной строке средств развертывания" запущенной от имени Администратора):
dism /get-wiminfo /wimfile:.\install_wims\install.wim
    Результат:
Cистема DISM
Версия: 6.1.7600.16385

Сведения об образе : .\install.wim

Индекс: 1
Имя : Windows 7 Starter (x86)
Описание : Windows 7 STARTER
Размер (байт): 7 873 232 304

Индекс: 2
Имя : Windows 7 HomeBasic (x86)
Описание : Windows 7 HOMEBASIC
Размер (байт): 7 893 059 504

Индекс: 3
Имя : Windows 7 HomePremium (x86)
Описание : Windows 7 HOMEPREMIUM
Размер (байт): 8 335 398 278

Индекс: 4
Имя : Windows 7 Professional (x86)
Описание : Windows 7 PROFESSIONAL
Размер (байт): 8 218 641 683

Индекс: 5
Имя : Windows 7 Ultimate (x86)
Описание : Windows 7 ULTIMATE
Размер (байт): 8 379 064 882

Индекс: 6
Имя : Windows 7 HomeBasic (x64)
Описание : Windows 7 HOMEBASIC
Размер (байт): 11 537 436 013

Индекс: 7
Имя : Windows 7 HomePremium (x64)
Описание : Windows 7 HOMEPREMIUM
Размер (байт): 12 050 812 181

Индекс: 8
Имя : Windows 7 Professional (x64)
Описание : Windows 7 PROFESSIONAL
Размер (байт): 11 953 184 030

Индекс: 9
Имя : Windows 7 Ultimate (x64)
Описание : Windows 7 ULTIMATE
Размер (байт): 12 116 011 126

Индекс: 10
Имя : Windows 7 Enterprise (x86)
Описание : Windows 7 ENTERPRISE
Размер (байт): 8 223 165 758

Индекс: 11
Имя : Windows 7 Enterprise (x64)
Описание : Windows 7 ENTERPRISE
Размер (байт): 11 958 749 455

Индекс: 12
Имя : Windows 7 Professional VL (x86)
Описание : Windows 7 PROFESSIONAL
Размер (байт): 8 218 767 771

Индекс: 13
Имя : Windows 7 Professional VL (x64)
Описание : Windows 7 PROFESSIONAL
Размер (байт): 11 954 208 757

Операция успешно завершена.
    Чтобы интегрировать ключ, создадим небольшой cmd/bat-скрипт и запустим его (он будет интегрировать нужный ключик в нужный индекс):
mkdir .\mount

::1. Starter x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:1 /mountdir:.\mount
dism /image:.\mount /set-productkey:7Q28W-FT9PC-CMMYT-WHMY2-89M6G
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::2. HomeBasic x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:2 /mountdir:.\mount
dism /image:.\mount /set-productkey:YGFVB-QTFXQ-3H233-PTWTJ-YRYRV
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::3. HomePremium x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:3 /mountdir:.\mount
dism /image:.\mount /set-productkey:RHPQ2-RMFJH-74XYM-BH4JX-XM76F
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::4. Professional x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:4 /mountdir:.\mount
dism /image:.\mount /set-productkey:HYF8J-CVRMY-CM74G-RPHKF-PW487
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::5. Ultimate x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:5 /mountdir:.\mount
dism /image:.\mount /set-productkey:D4F6K-QK3RD-TMVMJ-BBMRX-3MBMV
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::6. HomeBasic x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:6 /mountdir:.\mount
dism /image:.\mount /set-productkey:YGFVB-QTFXQ-3H233-PTWTJ-YRYRV
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::7. HomePremium x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:7 /mountdir:.\mount
dism /image:.\mount /set-productkey:RHPQ2-RMFJH-74XYM-BH4JX-XM76F
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::8. Professional x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:8 /mountdir:.\mount
dism /image:.\mount /set-productkey:HYF8J-CVRMY-CM74G-RPHKF-PW487
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::9. Ultimate x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:9 /mountdir:.\mount
dism /image:.\mount /set-productkey:D4F6K-QK3RD-TMVMJ-BBMRX-3MBMV
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::10. Entreprise x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:10 /mountdir:.\mount
dism /image:.\mount /set-productkey:H7X92-3VPBB-Q799D-Y6JJ3-86WC6
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::11. Entreprise x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:11 /mountdir:.\mount
dism /image:.\mount /set-productkey:H7X92-3VPBB-Q799D-Y6JJ3-86WC6
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::12. Professional VL x86
dism /mount-wim /wimfile:.\install_wims\install.wim /index:12 /mountdir:.\mount
dism /image:.\mount /set-productkey:HYF8J-CVRMY-CM74G-RPHKF-PW487
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim

::13. Professional VL x64
dism /mount-wim /wimfile:.\install_wims\install.wim /index:13 /mountdir:.\mount
dism /image:.\mount /set-productkey:HYF8J-CVRMY-CM74G-RPHKF-PW487
dism /unmount-wim /mountdir:.\mount /commit
dism /cleanup-wim
10. Переименуем полученный образ install.wim в _install.wim, чтобы в дальнейшем его сжать с помощью ImageX (я выиграл ~0,3ГБ):
move /y .\install_wims\install.wim .\install_wims\_install.wim

imagex /export ".\install_wims\_install.wim" 1 ".\install_wims\install.wim" "Windows 7 Starter (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 2 ".\install_wims\install.wim" "Windows 7 HomeBasic (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 3 ".\install_wims\install.wim" "Windows 7 HomePremium (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 4 ".\install_wims\install.wim" "Windows 7 Professional (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 5 ".\install_wims\install.wim" "Windows 7 Ultimate (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 6 ".\install_wims\install.wim" "Windows 7 HomeBasic (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 7 ".\install_wims\install.wim" "Windows 7 HomePremium (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 8 ".\install_wims\install.wim" "Windows 7 Professional (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 9 ".\install_wims\install.wim" "Windows 7 Ultimate (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 10 ".\install_wims\install.wim" "Windows 7 Enterprise (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 11 ".\install_wims\install.wim" "Windows 7 Enterprise (x64)" /compress maximum
imagex /export ".\install_wims\_install.wim" 12 ".\install_wims\install.wim" "Windows 7 Professional VL (x86)" /compress maximum
imagex /export ".\install_wims\_install.wim" 13 ".\install_wims\install.wim" "Windows 7 Professional VL (x64)" /compress maximum
    И вы можете сами убедиться новый файл install.wim весит меньше несжатого _install.wim.
    Повторное сжатие, как я уже говорил, ни к чему не приведет.
    Старый несжатый _install.wim можно удалить:
del /q .\install_wims\_install.wim
11. Перенесем полученный файл install.wim внутрь нашего распакованного образа дистрибутива в .\ISO_files\sources:
move /y .\install_wims\install.wim .\ISO_files\sources\install.wim
12. Обратно запакуем всё в ISO-образ с помощью OSCDIMG. Для этого создадим bat-файл следующего содержания и запустим его в "Командной строке средств развертывания":
:: Папка с установочными файлами Windows
SET source=.\ISO_files
:: Папка для сохранения ISO-образа
SET target=.\
:: Путь до загрузчика
SET bootloader="%source%\boot\etfsboot.com"

:: Создание ISO-образа
oscdimg -u2 -lWIN7 -m -h -b"%bootloader%" "%source%" "%target%\WIN7x86-x64.iso"

::-u2 - Создает образ, который имеет файловую систему UDF.
::-l  - Задает метку тома. Между параметрами l и метка пробелов быть не должно.
::-b  - Указывает на загрузочный файл образа, который используется для создания загрузочного сектора на DVD-диске или образе.
::-h  - Включает в создаваемый образ все скрытые файлы и папки, расположенные по указанному пути
::-m  - Игнорирует ограничение максимального размера образа.
13. Готово!
    Можно попробовать загрузиться с созданного образа и установить Windows.
    Я решил попробовать установить Windows 7 Professional (x64), чтобы проверить все ли прошло успешно.
    Первым "кликом" было это окно (при желании можно и его убрать простым удалением файла bootfix.bin из дистрибутива, но я не хочу):
    Дальше запускается установщик, загружается наш файл ответов и второй "клик" - это выбор редакции и разрядности:
    Я выбрал Windows 7 Professional (x64). Следующее и последнее (третий "клик") в чем мне пришлось поучаствовать - это стандартное окно выбора раздела для установки (опять же при желании это можно автоматизировать, но я предпочитаю вручную разбивать диски).
    Дальше процесс установки полностью автоматизирован и не было задано ни единого вопроса. И после завершения установки был показан привычный рабочий стол.
    А вот скриншот с информацией о установленной системе:

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

Используемый материал:
Автоматическая установка Windows Vista / Windows 7 / Windows 8
Процесс установки Windows Vista
Общее - [статья] Файл ответов (AutoUnattend.xml) .:[все вопросы, параметры, уточнения, etc]:.
Создание учетных записей и настройка автоматического входа в систему
Техническое руководство по диспетчеру установки Windows
Создание файла ответов для Windows Vista

При копировании статьи просьба указывать источник и автора.
С уважением, GRomR1.

0 коммент.:

Отправить комментарий

Popular Posts