Автоматическая установка Windows Vista и Windows 7

Создание файла ответов

Для автоматической установки Windows Vista/Windows 7 нужен файл ответов. Сразу хочу заметить, что рассматриваемые здесь параметры файла ответов предназначены лишь для того чтобы произвести автоматическую установку и не используют возможности по настройке операционной системы.

Для создания файл ответов служит программа Windows System Image Manager (Windows SIM), входит в состав Windows Automated Installation Kit (AIK).

Запускаем Windows SIM (Start (Пуск) -> All Programs (Все программы) -> Microsoft Windows AIK -> Windows System Image Manager). Первым делом необходимо открыть файл каталог (catalog) (размещается на DVD диске в директории sources). Для этого выбираем File -> Select Windows Image и указываем файл install_Windows 7 ULTIMATE.clg (для написание этой статьи использовался диск с Windows 7 Ultimate). После открытия в панели Windows Image появится список доступных пакетов и компонентов. Теперь нажимаем File -> New Answer File. В панели Answer File отобразиться список этапов установки операционной системы (Рисунок 1). Не смотря на то, что этапов установки всего семь, нам понадобиться всего три: windowsPE, specialize и oobeSystem.

Этап – windowsPE

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

Начнем с настройки языка. Для этого нажимаем правую клавишу мыши на компоненте Microsoft-Windows-International-Core-WinPE и выбираем Add Setting to Pass 1 windowsPE. Производим его настройку.

Свойство Значение Описание
InputLocale 0409:00000409;0419:00000419 Во время установки Windows использовать английскую и русскую клавиатуру.
SystemLocale ru-RU Использовать русские шрифты и кодовые страницы для программ не использующих Unicode.
UILanguage, UILanguageFallback ru-RU Использовать русский язык в интерфейсе операционной системы. В случае английской версии здесь должно быть en-US.
UserLocale ru-RU Использовать российский формат для отображения даты и времени, денежных единиц и чисел.
SetupUILanguage\UILanguage ru-RU Во время установки использовать русский язык. В случае установки английской версии здесь должно быть en-US.

Теперь настраиваем компонент Microsoft-Windows-Setup, который перетаскиваем с панели Windows Image на панель Answer file в windowsPE (Рисунок 2).

Свойство Значение Описание
UserData\AcceptEula True Автоматически соглашаться с лицензионным соглашением.
UserData\ProductKey\Key 12345-12345-12345-12345-12345 Ключ продукта.

Перед тем как начать инсталляцию, программа установки Windows должна знать, что же устанавливать. Идентификация дистрибутива осуществляется либо по индексу (index), имени (name) или описанию (description). Для того чтобы указать что устанавливать, необходимо выяснить как же наш дистрибутив обзывается в недрах файла install.wim. Можно это сделать несколькими вариантами. Первый, так сказать рекомендованный разработчиком, использовать программу dsim.exe (входит в состав Windows AIK). Набираем dsim.exe /get-wiminfo /wimfile:z:\sources\install.wim, где Z – буква назначенная DVD. Например, для Windows 7 Ultimate команда dsim.exe вывела следующие данные.

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Details for image : z:\sources\install.wim

Index : 1
Name : Windows 7 STARTER
Description : Windows 7 STARTER
Size : 7 738 117 472 bytes

Index : 2
Name : Windows 7 HOMEBASIC
Description : Windows 7 HOMEBASIC
Size : 7 757 925 235 bytes

Index : 3
Name : Windows 7 HOMEPREMIUM
Description : Windows 7 HOMEPREMIUM
Size : 8 200 331 182 bytes

Index : 4
Name : Windows 7 PROFESSIONAL
Description : Windows 7 PROFESSIONAL
Size : 8 082 880 421 bytes

Index : 5
Name : Windows 7 ULTIMATE
Description : Windows 7 ULTIMATE
Size : 8 241 451 274 bytes

The operation completed successfully.

Так как я устанавливаю Windows 7 Ultimate, то установщику я должен указать, либо индекс 5, либо имя Windows 7 Ultimate, либо такое же описание.

Второй вариант с помощью команды imageX.exe /info z:\sources\install.wim. Так как вывод команды очень подробный, то попробуем из вывода исключить не нужное, изменив команду на imageX.exe /info z:\sources\install.wim | findstr “<IMAGE <NAME> <DESCRIPTION”.

  <IMAGE INDEX="1">
    <NAME>Windows 7 STARTER</NAME>
    <DESCRIPTION>Windows 7 STARTER</DESCRIPTION>
  <IMAGE INDEX="2">
    <NAME>Windows 7 HOMEBASIC</NAME>
    <DESCRIPTION>Windows 7 HOMEBASIC</DESCRIPTION>
  <IMAGE INDEX="3">
    <NAME>Windows 7 HOMEPREMIUM</NAME>
    <DESCRIPTION>Windows 7 HOMEPREMIUM</DESCRIPTION>
  <IMAGE INDEX="4">
    <NAME>Windows 7 PROFESSIONAL</NAME>
    <DESCRIPTION>Windows 7 PROFESSIONAL</DESCRIPTION>
  <IMAGE INDEX="5">
    <NAME>Windows 7 ULTIMATE</NAME>
    <DESCRIPTION>Windows 7 ULTIMATE</DESCRIPTION>

Или же еще один вариант. Определить имя устанавливаемой версии Windows можно по имени файла каталога. На дисках от Microsoft, данные файлы располагаются в каталоге sources и имеют расширение CLG. Для определения необходимо с имени файла убрать "install_” и расширение “.clg". Например, файл "install_Windows 7 ULTIMATE.clg" обозначает Windows 7 Ultimate.

Теперь осталось внести данные о том, что устанавливать в наш файл ответов.

Свойство Значение Описание
ImageInstall\OSimage\InstallFrom Нажимаем правую клавишу мыши и выбираем пункт Insert New Metadata
ImageInstall\OSimage\InstallFrom\MetaData\Key /IMAGE/NAME Значения Key может быть следующим :/IMAGE/INDEX, /IMAGE/NAME, /IMAGE/DESCRIPTION.
ImageInstall\OSimage\InstallFrom\MetaData[key=”/image/name”]\Value Windows 7 Ultimate В зависимости от значения Key указываем инсталлируемый дистрибутив либо по индексу, либо по имени, либо по описанию. Так как значение Key было указано выше, как /IMAGE/NAME, то Value принимает значение Windows 7 Ultimate.

Как я уже говорил в начале этой статьи, что одним из нововведений стало поддержка разбития дисков на разделы, а также указание, куда устанавливать Windows. Сразу хочу заметить, что нумерация дисков начинается с нуля, а разделов с единицы. Нумеруются только основные (primary) и логические (logical) разделы. Дополнительному (extended) разделу номер не присваивается. Конфигурация дисковой подсистемы выполняется на этапе windowsPE с помощью компонента Microsoft-Windows-Setup и группы параметров DiskConfiguration.

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

Свойство Значение Описание
DiskConfiguration\WillShowUI Always Всегда отображать меню настройки жесткого диска.

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

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

Свойство Значение Описание
DiskConfiguration Нажимаем правую клавишу мыши и выбираем пункт Insert New Disk
DiskConfiguration\Disk\DiskID 0 Выбираем первый диск (нумерация начинается с нуля)
DiskConfiguration\Disk[DiskID=”0”]\WillWipeDisk true Производим полную очистку
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions Нажимаем правую клавишу мыши и выбираем пункт Insert New CreatePartition
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition\Order 1 Значение 1, говорит, что данный раздел будет первым в очереди на создание.
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”1”]\Extend true Создаваемый раздел займет все свободное место.
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”1”]\Type Primary Создаваемый раздела будет основным.
DiskConfiguration\WillShowUI OnError Отображать меню выбора жесткого диска в случае ошибки.
ImageInstall\OSImage\InstallTo\DiskID 0 Выбрать для установки первый диск
ImageInstall\OSImage\InstallTo\PartitionID 1 Установить операционную систему на первый раздел

Кто устанавливал Windows XP/2003 сразу заметит, что и предыдущие версии с этой задачей хорошо справлялись. А теперь, для примера, усложним задачу. Необходимо очистить диск, создать основной раздел объемом 1000 Мб с файловой системой FAT32 и назначить ему букву C. и логический диск D размером 50000 Мб. Установку операционной системы Windows 7 произвести на D.

Свойство Значение Описание
DiskConfiguration Нажимаем правую клавишу мыши и выбираем пункт Insert New Disk
DiskConfiguration\Disk\DiskID 0 Выбираем первый диск (нумерация начинается с нуля)
DiskConfiguration\Disk[DiskID=”0”]\WillWipeDisk True Производим полную очистку
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions Нажимаем правую клавишу мыши и выбираем пункт Insert New CreatePartition
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition\Order 1 Значение 1, говорит, что данный раздел будет создан первым.
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”1”]\Extend False Размер создаваемого раздела будет указан ниже
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”1”]\Type Primary Создаваемый раздела будет основным
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”1”]\Size 1000 Размер раздела 1000 Мб
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions Так как логические диски располагаются внутри дополнительного раздела, то его необходимо создать.

Нажимаем правую клавишу мыши и выбираем пункт Insert New CreatePartition

DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition\Order 2 Значение 2, говорит, что данный раздел будет вторым в очереди на создание.
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”2”]\Extend True Дополнительный раздел займет все свободное место на диске.
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”2”]\Type Extended Создаваемый раздел будет дополнительным.
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions Создаем логический диск. Нажимаем правую клавишу мыши и выбираем пункт Insert New CreatePartition
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition\Order 3 Значение 3, говорит, что данный раздел будет третьим в очереди на создание.
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”3”]\Extend False Размер создаваемого раздела будет указан ниже
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”3”]\Type Logical Создаваемый раздела будет логическим
DiskConfiguration\Disk[DiskID=”0”]\CreatePartitions\CreatePartition[Order=”3”]\Size 50000 Размер раздела составляет 50000 Мб
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions Нажимаем правую клавишу мыши и выбираем пункт Insert New ModifyPartition
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions\ModifyPartition\Order 1 Указываем, что данный раздел будет обработан первым.
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions\ModifyPartition[Order=”1”]\Letter C Присвоить разделу букву C.
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions\ModifyPartition[Order=”1”]\Format FAT32 Отформатировать раздел под файловую систему FAT32. По умолчанию используется NTFS.
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions\ModifyPartition[Order=”1”]\PartitionID 1 Выбрать для операций (форматирование и присвоение буквы) первый раздел на диске.
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions Нажимаем правую клавишу мыши и выбираем пункт Insert New ModifyPartition
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions\ModifyPartition\Order 2 Значение 2, говорит, что данный раздел будет вторым в очереди на обработку.
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions\ModifyPartition[Order=”2”]\Letter D Присвоить разделу букву D.
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions\ModifyPartition[Order=”2”]\Format NTFS Отформатировать раздел под файловую систему NTFS.
DiskConfiguration\Disk[DiskID=”0”]\ModifyPartitions\ModifyPartition[Order=”2”]\PartitionID 2 Выбрать для операций (форматирование и присвоение буквы) второй раздел на диске.
DiskConfiguration\WillShowUI OnError Отображать меню выбора жесткого диска в случае ошибки.
ImageInstall\OSImage\InstallTo\DiskID 0 Выбрать для установки первый диск.
ImageInstall\OSImage\InstallTo\PartitionID 2 Установить операционную систему на второй раздел.

Пару слов о PartitionID. Данный параметр задает номер раздела, на который будет производиться установка (InstallTo\PartitionID) либо который будет изменен с помощью группы параметров ModifyPartition. PartitionID не следует путать с Order, который всего лишь задает порядок при обработке. Нумерация PartitionID начинается с единицы, и номер присваивается только основным (primary) и логическим (logical) разделам.

Этап – specialize

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

Выбираем из списка компонентов Microsoft-Windows-Shell-Setup и нажимаем на нем правую клавишу мыши. Выбираем Add Setting to Pass 4 specialize и приступаем к его настройке (Рисунок 3).

Свойство Значение Описание
ComputerName * Символ звездочка, указывает, что имя компьютера будет автоматически сгенерировано.

Этап – oobeSystem

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

Перетаскиваем компонент Microsoft-Windows-Shell-Setup с панели Windows Image на oobeSystem панели Answer file и производим его настройку (Рисунок 4).

Свойство Значение Описание
TimeZone Russian Standard Time Данное значение соответствует временной зоне (UTC+03:00) Москва, Санкт-Петербург, Волгоград. Жители Республики Беларусь должны указывать E. Europe Standard Time, а Украины FLE Standard Time.
OOBE\ProtectYourPC 3 Автоматическая установка обновлений с помощью Windows Update отключена.
OOBE\NetworkLocation Other Отключить определение устройств в сети .
UserAccounts\LocalAccounts Нажимаем правую клавишу мыши и выбираем пункт Insert New LocalAccount
UserAccounts\LocalAccounts\LocalAccount\Name User Имя пользователя
UserAccounts\LocalAccounts\LocalAccount[Name=”user”]\Group administrators Пользователь входит в группу Administrators
UserAccounts\LocalAccounts\LocalAccount[Name=”user”]\Password\Value 12345 Пароль

Завершение создание файла

Перед тем как сохранить файл компанией Microsoft рекомендуется удалить неиспользуемые параметры, а затем с помощью Tools -> Validate Answer File проверить корректность файла ответов. Если замечаний в панели Messages нет, то тогда файл можно сохранять, иначе сначала необходимо устранить все замечания. На мой взгляд, это лишнее и можно сразу сохранять.

В результате получился вот такой файл. Обратите внимание на свойство processorArchitecture в описании компонентов (component). Значение этого параметра указывает, на каких платформах (x86, amd86) использовать тот или иной компонент. Таким образом, для автоматической установки Windows 7 х64 этот файл не подойдет.

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>ru-RU</UILanguage>
            </SetupUILanguage>
            <InputLocale>0409:00000409;0419:00000419</InputLocale>
            <SystemLocale>ru-RU</SystemLocale>
            <UILanguage>ru-RU</UILanguage>
            <UILanguageFallback>ru-RU</UILanguageFallback>
            <UserLocale>ru-RU</UserLocale>
        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <DiskConfiguration>
                <WillShowUI>Always</WillShowUI>
            </DiskConfiguration>
            <ImageInstall>
                <OSImage>
                    <InstallFrom>
                        <MetaData wcm:action="add">
                            <Key>/IMAGE/NAME</Key>
                            <Value>Windows 7 Ultimate</Value>
                        </MetaData>
                    </InstallFrom>
                </OSImage>
            </ImageInstall>
            <UserData>
                <ProductKey>
                    <Key>12345-12345-12345-12345-12345</Key>
                </ProductKey>
                <AcceptEula>true</AcceptEula>
            </UserData>
        </component>
    </settings>
    <settings pass="specialize">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <ComputerName>*</ComputerName>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <ProtectYourPC>3</ProtectYourPC>
                <NetworkLocation>Other</NetworkLocation>
            </OOBE>
            <UserAccounts>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Password>
                            <Value>12345</Value>
                            <PlainText>true</PlainText>
                        </Password>
                        <Name>user</Name>
                        <Group>administrators</Group>
                    </LocalAccount>
                </LocalAccounts>
            </UserAccounts>
            <TimeZone>Russian Standard Time</TimeZone>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="catalog:d:/sources/install_windows 7 ultimate.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>