Руками не трогать!

Сегодня мы продолжим исследовать способы устранения ручного труда при установке Windows (начало см. в статье "Хорошо забытое старое", "КВ" №37.) От необходимости брать в руки отвертку уже избавились. Теперь постараемся организовать процесс установки так, чтобы нам вообще не было нужно прикасаться к компьютеру. В качестве примера возьмем установку Windows 2000 Professional.

Способ, который мы будем рассматривать, применим не только при установке ОС по сети с помощью загрузочной дискеты. Вы можете использовать его и при установке с CD-ROM. Но полностью избавиться от ручного труда в этом случае сложнее. Во-первых, автоматически вставить компакт-диск в дисковод уж никак не получится. А ведь впоследствии его придется вставлять каждый раз при добавлении новых компонентов. Во-вторых, при использовании загрузочного компакт-диска инсталлятор может запускаться сам, и тогда вы не сможете задать ему необходимые параметры командной строки. В-третьих, в отдельную проблему превращается установка обновлений.

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

Итак, копируем дистрибутив на сервер. Например, сюда: \\server\install\win2k\i386. Затем распаковываем сервис-пак во временную папку (w2ksp.exe -x) и "патчим" дистрибутив (update.exe -s:\\server\install\win2k). Драйверы сетевых плат распаковываем так, чтобы inf-файл был "на поверхности", и кладем в i386\$oem$\$1\drivers\netcards. Если этой папки в дистрибутиве нет, создаем ее. Да-да, именно так, как написано, со знаками доллара. Обратите особое внимание - драйверы в этой папке надо "свалить в общую кучу", а не укладывать каждый в отдельный подкаталог! Рядом с папкой netcards можно создать аналогичные папки audio, modem и т.п., и сложить в них драйверы соответствующего оборудования - также "в кучу". По окончании процесса даем доступ к сетевому ресурсу \\server\install всем пользователям, но только на чтение.

Дистрибутив готов. Его можно использовать обычным способом и даже переписать на компакт-диск. Но у нас более высокая цель - избежать ручной работы. Поэтому займемся работой интеллектуальной - составлением файла ответов.

Файл ответов избавляет нас от необходимости вручную отвечать на вопросы инсталлятора. По умолчанию он имеет имя unattend.txt. Структура файла видна из примера, приведенного на врезке. Рассмотрим наиболее важные моменты.

Параметры OemPreinstall, OemPnPDriversPath и DriverSigningPolicy обеспечивают автоматическую установку наших дополнительных драйверов. Значение DriverSigningPolicy=Ignore подавляет вывод предупреждений при установке драйверов, не подписанных цифровой подписью. Разумеется, вы должны использовать только проверенные драйверы.

В приведенном примере административный пароль компьютера будет пустым (AdminPassword=*), но вы можете указать произвольный пароль. Значением параметра ProductID должен быть серийный номер, который вы наверняка знаете...

В нашем случае сетевое имя компьютера задано явно. Если же вам не хочется его придумывать, напишите ComputerName=*, и оно будет сгенерировано автоматически. Чтобы получить приемлемое имя, а не просто бессмысленный набор символов, позаботьтесь о том, чтобы название организации (OrgName) было написано латиницей. Дальше мы рассмотрим еще один способ задания имен.

Если компьютер должен быть присоединен к домену, необходимо правильно указать параметры в секции [Identification]. В том числе (о, ужас!) - пароль администратора домена открытым текстом. Microsoft утверждает, что эта информация на устанавливаемой машине сохранена не будет. Но в ответственных случаях следует использовать специальную учетную запись, которая из всех административных прав будет иметь лишь право на присоединение компьютеров к домену. Тогда именно ее следует указать в качестве DomainAdmin. Ну а если присоединение к домену не требуется, то секция [Identification] должна состоять только из одного параметра: JoinWorkgroup=MYWORKGROUP.

Файл ответов позволяет задавать произвольные конфигурации сетевых компонентов, но описывать их - не самая простая задача. Будет хорошо, если вы сможете удовлетвориться конфигурацией по умолчанию. Параметр InstallDefaultComponents=Yes означает, что будут установлены протокол TCP/IP с автоматическим получением параметров от DHCP-сервера, а также клиент и сервер для сетей Microsoft.

Подготовив файл ответов, скопируем его на нашу системную дискету. В конец файла autoexec.bat добавим следующие строчки:

net use I: \\server\install

I:\win2k\i386\winnt.exe /s:I:\win2k\i386 /u:A:\unattend.txt

Если все было сделано правильно, то при перезагрузке компьютера с дискеты установка Windows 2000 произойдет полностью автоматически. Дискету следует вынуть из дисковода после того, как инсталлятор загрузит файл unattend.txt. Вы заметите это по жужжанию дисковода и по сообщению в левом нижнем углу экрана. Теперь можно повесить на компьютер табличку "Руками не трогать!" (сделанную из заголовка этой статьи) и быть свободным полчаса-час, в зависимости от быстродействия компьютера.

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

Стандартное имя файла уникальных значений - $unique$.udb. Рекомендуется это странное имя не изменять - это позволит инсталлятору в некоторых ситуациях находить его автоматически. Структура файла видна из примера. В нашем случае переопределяются значения имен компьютера и пользователя, но можно переопределить и любые другие. Например, можно задать для всех машин уникальные административные пароли.

Остается вопрос - как при установке выбирать конкретный набор параметров. Отредактируем командную строку запуска инсталлятора и запишем ее так:

I:\win2k\i386\winnt.exe /s:I:\win2k\i386 /u:A:\unattend.txt /udf:WRKST01,A:\$unique$.udb

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

В заключение следует отметить, что другие версии Windows также поддерживают автоматизацию установки, но несколько другими способами. Например, в Windows 95 файл параметров инсталляции по умолчанию имеет имя msbatch.inf, и названия параметров также не совпадают с описанными. В таких случаях следует изучать документацию по конкретной версии.

Дмитрий ГОНЧАРОВ,
сертифицированный администратор MS Windows 2000,
dgoncharov@tut.by


Пример файла unattend.txt

[Unattended]
UnattendMode=FullUnattended
OemSkipEula=Yes
OemPreinstall=Yes
TargetPath=\WINNT
FileSystem=ConvertNTFS
OemPnPDriversPath="drivers\netcards; drivers\audio"
DriverSigningPolicy=Ignore
[GuiUnattended]
AdminPassword=*
OemSkipRegional=1
TimeZone=130
OemSkipWelcome=1
[UserData]
ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
OrgName="Организация"
FullName="Сотрудник"
ComputerName=MYCOMPUTER
[Identification]
JoinDomain=mydomain.by
DomainAdmin=Администратор
DomainAdminPassword=password
[Networking]
InstallDefaultComponents=Yes


Пример файла $unique$.udb

[UniqueIds]
WRKST01=UserData
WRKST02=UserData
[WRKST01:UserData]
ComputerName=WRKST01
FullName="Иван Иванов"
[WRKST02:UserData]
ComputerName=WRKST02
FullName="Петр Петров"
Версия для печатиВерсия для печати

Номер: 

41 за 2002 год

Рубрика: 

На заметку
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!