Если подготовка к развертыванию в организации Windows XP с помощью образов операционной системы идет полным ходом, то администраторы, вероятно, уже знакомы с инструментом Sysprep компании Microsoft (sysprep.exe). Зная характеристики своих настольных систем и учитывая сведения о том, как можно задействовать расширенные возможности команды Sysprep для подготовки системы, можно обойтись созданием меньшего числа образов, и прослужат они дольше. Время и силы, затраченные на тонкую настройку образов и отладку процесса работы с ними, с лихвой окупятся уже к тому моменту, когда все будет готово для того, чтобы начать развертывание операционной системы.

Создаем образы для длительного использования

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

На одном из этапов подготовки к созданию образа системы-источника Sysprep автоматически отключает компьютер от домена, поэтому я предпочитаю избегать процедур подключения к домену, если возможно. Вместо этого я регистрируюсь с локальной учетной записью Administrator для установки приложений, пакетов обновлений и выполнения пользовательских настроек. Чтобы образ существовал как можно дольше, нужно с максимальным вниманием отнестись к настройкам, выполняемым на этой стадии. Если настройки подлежат изменению, следует использовать сценарии cmdlines.txt, как описано ниже. Например, если имеется приложение, получающее из Internet изменяемые списки телефонных номеров, не стоит проверять, обновлен ли список; напротив, требуется создать сценарий, который обновляет список в конце процесса работы с образом. Можно по мере необходимости менять сценарий, и тогда вы не окажетесь в ситуации, когда из-за этого придется создавать новый образ.

Если нет желания использовать групповые политики для управления настройками пользовательской среды, можно сгенерировать пользовательский профиль по умолчанию, устанавливающий обычную среду для новых пользователей систем-образов. При выполнении настройки конфигурации образа на компьютере-источнике следует создать временную локальную учетную запись, зарегистрироваться под этой учетной записью и выполнить настройки, относящиеся к профилю пользователя, которые требуется стандартизировать. Закончив, необходимо завершить сеанс, затем зарегистрироваться под учетной записью Administrator. Чтобы иметь возможность следить за дальнейшими шагами, нужно настроить Windows Explorer так, чтобы отображались скрытые папки и файлы. Щелкнув правой кнопкой My Computer, следует выбрать Properties, затем щелкнуть вкладку Advanced. В пункте меню User Profiles требуется щелкнуть Settings, выбрать профиль созданного временного пользователя и щелкнуть Copy To. Открыв каталог %SystemDrive%Documents and Settings, нужно выбрать папку Default User и щелкнуть OK. В пункте Permitted to use следует щелкнуть Change, набрать

everyone

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

Следует дополнить образ драйверами всех устройств, необходимыми для поддержки компьютеров, на которых воспроизводится образ (если эти драйверы не входят в состав операционной системы). Для автоматизации установки этих драйверов нужно скопировать их на жесткий диск и обновить файл sysprep.inf так, чтобы он указывал на расположение драйверов. Тем, кто никогда раньше не создавал файл Sysprep.inf, рекомендую прочитать врезку «Использование Setup Manager для создания файла Sysprep.inf».

Начать следует с создания папки Sysprep в корневом каталоге системного диска. Эта папка будет содержать исполняемые файлы и файл Sysprep.inf, необходимые для работы утилиты Sysprep. Затем нужно создать папку Drivers в корневом каталоге системного диска или внутри папки Sysprep. Если желательно, чтобы на компьютере, где воспроизводится образ, файлы драйверов были доступны после завершения работы подпрограммы Mini-Setup, требуется создать папку Drivers в корневом каталоге. Mini-Setup — это сокращенная версия процедуры настройки Windows, в процессе которой у пользователя запрашиваются параметры конфигурации, не указанные в файле Sysprep.inf. Если драйверы хранятся в папках внутри каталога Sysprep, Mini-Setup удаляет их. В папке Drivers следует создать подходящие подкаталоги для хранения драйверов устройств различного типа. К названиям папок жестких требований нет, но группировка драйверов в папках в соответствии с их типами уменьшает вероятность конфликтов файлов с одинаковыми именами. Необходимо скопировать драйверы независимых разработчиков в подходящие подкаталоги, как показано на Экране 1, позаботившись о том, чтобы включить все необходимые файлы. Затем нужно сделать запись в файле Sysprep.inf, чтобы подпрограмма Mini-Setup могла найти драйверы. Пример этой записи можно увидеть в строке «OemPnPDriversPath=» секции Unattended файла Sysprep.inf, показанного в примере в Листинге 1. К сожалению, пути каталогов не пересекаются, поэтому каждый каталог следует указать отдельно. После того как создан «золотой стандарт» образа, содержащий предназначенные для развертывания приложения, настройки и драйверы, остается только надеяться на помощь Sysprep.

Магия Sysprep

Об использовании Sysprep в процессе работы с образами в Windows XP и Windows 2000 написано много статей, поэтому я не останавливаюсь на основах. Мне бы хотелось уделить внимание тем функциям Sysprep, которые позволяют сделать дисковые образы более полезным механизмом для широкомасштабного развертывания.

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

Преимущество последнего варианта в том, что можно поддерживать более широкий спектр аппаратного обеспечения с одним образом — даже такое аппаратное обеспечение, которого, возможно, еще не было в компании, когда образ создавался. К сожалению, добавление всех драйверов в процессе работы Sysprep занимает от 10 до 15 мин, и следует обеспечить возможность работы Sysprep с параметром -clean на целевых системах. Параметр -clean, который исполняется с помощью файла cmdlines.txt или с помощью описываемых ниже методов GUIRunOnce, предотвращает попытку Windows загрузить драйверы несуществующих контроллеров внешних устройств хранения. Чтобы настроить Sysprep на автоматическое добавление драйверов, следует включить в файл Sysprep.inf обе секции: Sysprep и SysprepMassStorage. В секции Sysprep нужно создать следующую запись:

BuildMassStorageSection=Yes

как показано в Листинге 1. Чтобы Sysprep сгенерировала эти записи, необходимо открыть командную строку, перейти к каталогу, в котором расположен файл sysprep.exe, и ввести:

sysprep -bmsd

Программа создаст секцию SysprepMassStorage и завершит работу без выдачи сообщения. Затем нужно ввести

Sysprep -mini

для выполнения последней стадии Sysprep. О других параметрах команды, используемых в процессе построения образов, можно узнать из подсказки. Можно также выбрать в стандартном графическом интерфейсе Sysprep пункт Reseal и сделать окончательные приготовления перед формированием образа.

Файл Sysprep.inf содержит еще несколько элементов, которые помогают рационализировать процесс работы с образом и сделать его более эффективным. Секция UserData позволяет заранее дать ответы на типичные вопросы, задаваемые в процессе установки. Представьте, сколько можно сэкономить времени на одном только серийном номере продукта, если не придется каждый раз вводить его вручную. Можно оставить пустыми значения тех параметров, которые желательно вводить вручную в процессе выполнения Mini-Setup. Если необходимо, чтобы образ совместно использовался многопроцессорными и однопроцессорными компьютерами, можно это сделать, указав в секции Unattended параметры UpdateHAL или UpdateUPHAL. Секция Identification позволяет автоматизировать процесс объединения доменов или рабочих групп. Если посмотреть на образец файла Sysprep.inf, можно заметить, что значения настроек DomainAdmin и DomainAdmin

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

plicatorString в секции GuiUnattended поможет управлять обновлением версий файла образа. Эта настройка вписывает задаваемое значение (строку) в реестры всех систем, построенных с помощью данного образа. Если нужно проверить образ-источник какой-нибудь системы на предмет устранения неполадок или для отладки, следует проверить в реестре значение параметра HKEY_LOCAL_MACHINESYSTEMSetup OemDuplicatorString, указывающего, какой образ использовался для построения этой системы.

Доведя файл Sysprep.inf до совершенства, следует оценить еще некоторые параметры Sysprep, расширяющие область применения созданных ранее образов. Если предстоит поддерживать традиционные устройства ISA, можно добавить в команду Sysprep параметр -pnp, который будет фиксировать устройства, не принадлежащие к типу Plug-and-Play (PnP) в процессе установки Mini-Setup. Параметр -factory позволяет загрузить машину в режиме, в котором можно выполнить дополнительные настройки, осуществлять управление драйверами, установку программ и тестирование. Параметр -factory используется преимущественно изготовителями оборудования для достижения более полного контроля над процессом конечной установки. После выполнения Sysprep с ключом -factory нужно запустить программу Sysprep с параметром reseal, чтобы подготовить систему к процессу создания образа.

Автоматизация действий на целевой системе

Можно достичь еще более высокого уровня гибкости в развертывании систем на базе образов за счет автоматического исполнения команд в процессе или после выполнения Mini-Setup. Для установки и запуска программ, исполнения пакетных файлов и сценариев после того, как завершается процесс установки Mini-Setup, создаются записи в специальном файле с именем cmdlines.txt. Если нужно установить программы или выполнить команды, сценарии, программы или пакетные файлы после перезагрузки целевой системы, записи создаются в секции GuiRunOnce файла sysprep.inf.

Cmdlines.txt. Файл cmdlines.txt должен находиться в каталоге %SystemDrive%Sysprepi386$oem$. В Листинге 2 показан пример файла cmdlines.txt, который запускает Sysprep с параметром -clean, а также две другие фиктивные команды.

Листинг 2. Пример файла cmdlines.txt.
Файл cmdlines.txt прост в применении, но при работе с ним требуется принять следующие меры предосторожности:

  • следует включить запись InstallFilesPath в секцию Unattended файла sysprep.inf, которая указывает на расположение папки $oem$;
  • все необходимые файлы должны храниться на жестком диске, поскольку нет никаких гарантий стабильной работы сети;
  • если команды меняют или создают параметры реестра, эти параметры будут изменены или созданы в секции реестра для пользователя по умолчанию и будут применяться ко всем новым пользователям;
  • нельзя задействовать файл cmdlines.txt для установки приложений через Windows Installer (с пакетами .msi).

GuiRunOnce. Чтобы выполнять команды, пакетные файлы или сценарии после перезагрузки целевой системы, можно создать записи в секции GuiRunOnce в файле Sysprep.inf. Эти записи будут работать при первой регистрации пользователя в системе. Как и в случае с файлом cmdlines.txt, следует соблюдать несколько правил использования GuiRunOnce.

  • Для того чтобы записи GuiRunOnce могли обрабатываться, необходимо включить авторегистрацию (Autologon). Для этого нужно ввести в секции GuiUnattended запись AutoLogon=Yes.
  • Каждую команду следует заключать в кавычки.
  • Команды секции GuiRunOnce выполняются в контексте безопасности зарегистрировавшегося пользователя, что может быть недостаточно для установки приложений.
  • Следует воздержаться от перезагрузок, чтобы все заданные команды обязательно выполнялись. Если программа, запускаемая через GuiRunOnce, имеет ключ для перезагрузки системы (как бывает во многих установках без вмешательства пользователя), следует отключить этот параметр. Если система перезагружается, последующие команды в списке GuiRunOnce выполняться не будут.
  • GuiRunOnce не поддерживает выполнение приложений, запускаемых из оболочки Windows Explorer (т. е. приложений конечного пользователя).
  • При установке нескольких приложений лучше задействовать команду Start с параметром /wait — это предотвратит взаимное наложение установок разных приложений.

Программное обеспечение для работы с образами

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

Метод последовательных приближений

Нужно быть готовым к тому, что придется несколько раз обращаться к содержимому образов, файла Sysprep.inf и других настроек, которые были сделаны для развертывания систем на базе образов. Часто мы бываем вынуждены действовать методом проб и ошибок, чтобы узнать, как поведет себя процесс в той или иной среде. Лучшее, что можно сделать, — это учиться на ошибках в процессе работы, устранять проблемы и предпринимать новые попытки. Каждое действие, которого можно избежать или которое можно автоматизировать, будет приносить дивиденды при каждом использовании образа для развертывания новой системы.


Использование Setup Manager для создания файла Sysprep.inf

Создать файл Sysprep.inf в конкретной среде проще всего с помощью программы Setup Manager компании Microsoft. В системе Windows XP можно открыть файл deploy.cab, расположенный в каталоге SupportTools на компакт-диске XP. Исполняемый файл Setup Manager, setupmgr.exe, нужно скопировать на свой жесткий диск. Когда программа будет запущена, мастер спросит, хотите вы создать новый файл ответов или модифицировать существующий. Следует выбрать создание нового файла ответов, указать, что он предназначен для установки с помощью Sysprep, и выбрать платформу, которую предполагается развертывать с вновь созданным файлом ответов. Можно также выбрать желаемый уровень автоматизации файла ответов до того, как будут введены конкретные значения, заполняющие настройки General, Network и Advanced, показанные на Экране 2. После ввода информации нужно щелкнуть Finish; Setup Manager создает файл Sysprep.inf и спрашивает, где его сохранить. Следует выйти из приложения и открыть новый файл Sysprep.inf в Notepad для проверки или редактирования его содержимого.

Эд Рот — обозреватель в тестовой лаборатории Windows 2000 Magazine. С ним можно связаться по адресу: eroth@winnetmag.com.

Листинг 1. Пример файла Sysprep.inf.