Опубликован: 15.10.2008 | Уровень: специалист | Доступ: платный
Лекция 2:

Установка

Запуск программ после завершения работы SYSPREP

SYSPREP не только предоставляет настроенную системную информацию, но также может устанавливать и запускать программы на целевых компьютерах после установки Windows Server 2003. Это требуется достаточно часто. Например, если работа определенных программ основывается на службах Clustering Services или Certificate Services или они интегрированы с Active Directory, то вы не можете устанавливать их на компьютере с эталонным образом, но, тем не менее, вам может потребоваться их автоматическая установка сразу после завершения установки с помощью SYSPREP. Вы можете использовать файл Sysprep.inf для запуска большинства команд, включая запуск утилит установки программ, пакетных файлов, скриптов Windows Scripting Host (WSH) и команд, необходимых для создания контроллера домена.

Чтобы запустить определенную программу после завершения установки Windows Server 2003 на целевом компьютере, создайте в файле Sysprep.inf новую секцию с именем [GuiRunOnce]. В этой секции создайте по одной записи для каждой команды, которую вы хотите запустить. Каждая команда должна быть задана в отдельной строке и должна быть заключена в кавычки. В следующем примере задается установка Active Directory на целевом компьютере и последующий запуск программы установки, основывающейся на использовании службы Microsoft Installer. В этом примере файлы Setup.msi и dcpromo_answer_file должны находиться в папке C:\Installers на целевом компьютере.

[GuiRunOnce]
"c:\windows\system32\dcpromo /answer:c:\installers\dcpromo_answer_file "
"c:\windows\system32\msiexec c:\installers\setup.msi"

Секция [GuiRunOnce] действует путем модифицирования раздела реестра HKEY_CURRENT_USER\\Software\Microsoft\Windows\CurrentVersion\RunOnce и добавления каждой команды к этому параметру. Каждая команда запускается синхронно, то есть команды обрабатываются по порядку, и очередная команда не запускается, пока не будет выполнена предыдущая команда.

Важным ограничением секции [GuiRunOnce] является то, что программы запускаются в контексте выполнившего вход пользователя. Если пользователь, выполнивший вход на данный сервер, не имеет необходимых привилегий для запуска определенной команды из секции [GuiRunOnce], то эта команда не будет выполнена (хотя будут выполняться попытки запуска последующих команд). Поскольку секция [GuiRunOnce] обрабатывается в контексте выполнившего локальный вход пользователя, это также означает, что любая программа, которая записывает относящуюся к профилю информацию только для текущего пользователя, будет недоступна другим пользователям, выполнившим вход на данный компьютер.

Если вы хотите запустить привилегированные команды на целевом компьютере после установки Windows Server 2003, и вы знаете, что первый пользователь, который выполнит вход на этот компьютер, не имеет привилегий, необходимых для выполнения этих команд, то можете использовать альтернативу секции [GuiRunOnce]. Создайте папку \i386\$OEM$ в папке программы SYSPREP и добавьте следующую запись в файл SYSPREP.INF (предполагается, что системным диском является диск C:):

[Unattended]
InstallFilesPath = C:\Sysprep\i386

Далее создайте текстовый файл с именем Cmdlines.txt, аналогичный секции [GuiRunOnce] файла Sysprep.inf. Этот файл содержит одну секцию с именем [Commands], и каждая запись этой секции содержит заключенную в кавычки команду. Например, с помощью следующего файла Cmdlines.txt происходит запуск файла VBS (Visual Basic Script), после чего происходит запуск программы установки, которая должна выполняться в режиме без сообщений (quiet mode).

[Commands]
"wscript c:\scripts\cleanup.vbs"
"c:\installers\setup.exe -quiet"

Имеются два преимущества в использовании файла Cmdlines.txt для запуска программ после завершения работы SYSPREP. Во-первых, команды из этого файла запускаются до окончательной перезагрузки SYSPREP (в отличие от секции [GuiRunOnce], которая запускается после окончательной перезагрузки SYSPREP). Это означает, что команды выполняются в привилегированном контексте локальной системы. Второе преимущество состоит в том, что любая связанная с профилем информация записывается в профиль HKEY_USERS\.Default, в результате чего любой пользователь, выполнивший первый вход на данный компьютер, получит эту информацию в виде копии в своем локальном профиле.

Имеются также некоторые недостатки в использовании Cmdlines.txt.

Не могут устанавливаться пакеты MSI (с помощью Msiexec.exe), поскольку файл Cmdlines.txt запускается до окончательной перезагрузки SYSPREP. На этот момент служба Microsoft Installer не работает в полном виде. Используйте в этом случае [GuiRunOnce] или перепакуйте MSI-файл в формат, который не основывается на службе Microsoft Installer (например, в пакет SMS [Microsoft Systems Management Server]).

При выполнении Cmdlines.txt не действуют сетевые соединения. Это вызывает сбой любой программы, использующей сетевое соединение или ресурс.

Внимание. SYSPREP не может использоваться для автоматизации любого ввода или взаимодействия с пользователем, которое требуется для команд из секции [GuiRunOnce] или из файла Cmdlines.txt. Если для программы, запускаемой из этих источников, требуется ввод (например, ввод серийного номера или щелчок на диалоговой кнопке OK), то у пользователя будет запрошен ввод этой информации. К счастью, многие программы и скрипты можно модифицировать для установки без взаимодействия с пользователем. Альтернативный вариант – это упаковка приложения в формат, который не требует взаимодействия, например, в виде пакета Microsoft Installer (MSI) или исполняемого пакета SMS.
Выполнение Sysprep.exe

После установки Windows Server 2003 на компьютере с эталонным образом и заполнения файла Sysprep.inf запустите Sysprep.exe, чтобы стереть информацию, относящуюся к конкретной машине на данном компьютере.

Чтобы можно было использовать файлы Sysprep.inf и Setupcl.exe, они должны находиться в папке %SystemDrive%\SYSPREP. Если вы используете файл Sysprep.inf для передачи информации по установке и конфигурированию на целевой компьютер, то этот файл тоже должен находиться в данной папке.

Программа Sysprep.exe имеет ряд параметров для настройки ее работы на целевом компьютере. Она имеет следующий синтаксис:

SYSPREP -команда

где команда – это действие, которое должно быть выполнено этой программой. (Некоторые команды предназначены для использования исключительно в специальном режиме SYSPREP Factory Mode.) Ниже описываются команды, которые вы можете использовать.

-activated. Если вы запускаете SYSPREP в режиме Factory Mode и уже активировали Windows Server 2003, то этот ключ позволяет вам не восстанавливать допустимый период для активации продукта. Эта опция используется до того, как вы примените команду -reseal в режиме Factory Mode.

-audit. Если вы запускаете SYSPREP в режиме Factory Mode, эта команда выполнит перезагрузку компьютера без генерации новых идентификаторов безопасности (SID) и без обработки любых команд из секции [OEMRunOnce] файла Winbom.ini.

-bmsd. Для этой команды требуется, чтобы в секции [Sysprep] файла Sysprep.inf имелась запись BuildMassStorageSection = Yes и чтобы в этом файле имелась также секция [SysprepMassStorage]. При выполнении этих условий запуск SYSPREP с данной командой вызывает заполнение секции [SysprepMassStorage] идентификаторами PnP (Plug and Play) всех запоминающих устройств большой емкости, которые поддерживаются собственными средствами Windows Server 2003. Вы можете затем удалить вручную те записи, которые не хотите использовать для клиентов.

Вы можете также использовать эту команду, когда хотите использовать SYSPREP для заполнения секции [SysprepMassStorage] файла Sysprep.inf на эталонном компьютере, например, если знаете, что на одном или нескольких целевых компьютерах используется контроллер ЗУ большой емкости, отличный от контроллера эталонного компьютера. Эта команда только заполняет секцию [SysprepMassStorage] файла Sysprep.inf; она не удаляет настроенную информацию эталонного компьютера, не генерирует новых идентификаторов безопасности (SID) и не завершает работу компьютера. Эта команда должна использоваться отдельно. Вы не можете использовать ее в сочетании с другими командами SYSPREP.

-clean. Эта команда удаляет неиспользуемые драйверы ЗУ большой емкости, добавленные в секцию [SysprepMassStorage] файла Sysprep.inf. Она также удаляет любые неиспользуемые устройства, внесенные с помощью Plug and Play.

-factory. Инициирует специальный режим Factory Mode для SYSPREP. Эта команда перезапускает компьютер и помещает его в состоянии связи с сетью; однако часть Mini-Setup процесса SYSPREP не будет запущена. После активизации Factory Mode на эталонном компьютере этот компьютер можно клонировать для получения образа. Этот образ затем восстанавливается на целевом компьютере, и в это время можно модифицировать файл Sysprep.inf для выполнения дополнительных шагов или добавить к образу драйверы таких устройств, как контроллеры ЗУ большой емкости. После выполнения задач режима Factory Mode происходит запуск SYSPREP с командой -reseal для завершения процесса и подготовки компьютера к этапу Mini-Setup.

-forceshutdown. Эта команда указывает SYSPREP, что после окончания установки нужно завершить работу компьютера. Эту команду можно использовать, если ACPI BIOS компьютера не прекращает самостоятельно работу компьютера после того, как SYSPREP завершает свой процесс.

-noreboot. Эта команда указывает SYSPREP, что после окончания процесса SYSPREP не нужно прекращать работу компьютера или перезагружать его. Обычно эту команду следует использовать только в целях тестирования, так как изменения на эталонном компьютере после выполнения SYSPREP могут вызвать неверную установку эталонного образа.

-nosidgen. По умолчанию SYSPREP генерирует новую информацию идентификаторов безопасности (SID) для каждого целевого компьютера. Но если вы создаете только одну копию эталонного компьютера, и эталонный компьютер будет выведен из эксплуатации или на нем будет создан новый образ, то вы можете использовать эту команду, чтобы процесс SYSPREP не генерировал новый SID на целевом компьютере.

-pnp. Эта команда вызывает полный пересмотр всех устройств Plug and Play (PnP) на этапе Mini-Setup. Вам следует использовать эту команду, только если целевой компьютер имеет унаследованные ISA-устройства PnP. Процесс полной перенумерации устройств существенно увеличивает время выполнения процесса SYSPREP на целевом компьютере.

-quiet. Эта команда указывает SYSPREP, что нужно отменить вывод на экран требующих подтверждения сообщений.

-reseal. Если целевой компьютер находится в режиме Factory Mode и в образ внесены все дополнительные изменения, то эта команда подготавливает данный компьютер к окончательной установке образа. Reseal – это последний этап процесса Factory Mode.

Хотя вы можете запускать SYSPREP с любыми параметрами из командной строки, программа SYSPREP имеет также графический интерфейс, который дает вам доступ к большинству возможностей SYSPREP, включая настройки Factory Mode. Для входа в графический режим SYSPREP запустите Sysprep.exe без параметров.

После запуска SYSPREP работает в соответствии с параметрами, переданными в командной строке (или, в графическом режиме, выполняет действия, выбранные в этом интерфейсе). В зависимости от команд, переданных в SYSPREP, время выполнения может занять от нескольких секунд до нескольких минут. По окончании работы SYSPREP автоматически завершает работу компьютера, если он совместим с ACPI. В противном случае вы получаете сообщение, когда можно выполнить безопасное выключение компьютера.

Клонирование эталонного образа в файл

Поскольку Microsoft не предоставляет и не продает (пока) какое-либо программное обеспечение для выполнения этого шага, для клонирования эталонного образа требуется ПО от сторонних фирм. На рынке имеется несколько превосходных продуктов для клонирования, включая Ghost компании Symantec Software, Drive Image компании PowerQuest и NovaDISK компании NovaSTOR. Большинство пакетов клонирования позволяют вам клонировать эталонный образ на различные носители, включая другой раздел диска, сетевые разделяемые ресурсы, CD-R/CD-RW или на DVD в одном из допускающих запись стандартов.

Восстановление эталонного образа на целевой компьютер

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

Запуск этапа Mini-Setup

Когда компьютер, на котором восстановлен образ SYSPREP, загружается в первый раз, выполняются следующие шаги, если соответствующие ответы не заданы в файле Sysprep.inf.

  1. Plug and Play обнаруживает все совместимые устройства компьютера. Обычно для выполнения этого процесса требуется от трех до пяти минут. Но если у вас полностью собрана секция [SysprepMassStorage] файла Sysprep.inf, то этот процесс может занять значительно больше времени (до 45 минут).
  2. Вы должны подтвердить условия лицензионного соглашения конечного пользователя Windows Server 2003 End-User License Agreement (EULA).
  3. Вы должны ввести свое имя и название организации.
  4. Вы должны присоединиться к рабочей группе или домену.
  5. Вы должны задать региональные параметры для сервера, такие как язык, тип валюты и часовой пояс.
  6. Вы должны задать для интерфейса телефонии Telephony API, например, телефонный код соответствующего региона.
  7. Вы должны задать сетевые протоколы, службы и адресацию.
  8. Автоматически удаляется папка SYSPREP.
  9. Происходит перезагрузка компьютера, и появляется диалоговое окно входа (logon).

К этому моменту Windows Server 2003 успешно установлена на целевом компьютере. Вы можете выполнить вход на этот компьютер, как на любом другом компьютере под уровнем Windows Server 2003, и вносить дальнейшие изменения, например, устанавливать другое ПО или обновленные драйверы.

Выполнение SYSPREP в режиме Factory Mode

Factory Mode – это особое средство SYSPREP, позволяющее администраторам поддерживать один базовый образ для всех компьютеров Windows Server 2003 независимо от различий в оборудовании (конечно, при условии, что они используют один совместимый уровень HAL). Если вы создали образ эталонного компьютера в режиме Factory Mode и восстанавливаете его на целевом компьютере, то этот компьютер не загружается автоматически в режим Mini-Setup. Вместо этого в режиме Factory Mode происходит обработка другого файла, Winbom.ini, который аналогичен файлу Sysprep.inf. В файле Winbom.ini вы можете задавать информацию, относящуюся к данной конкретной машине, например, дополнительные приложения и обновленные драйверы контроллеров ЗУ большой емкости. После обработки файла Winbom.ini на целевом компьютере вы можете подготовить этот компьютер снова к выполнению этапа Mini-Setup программы SYSPREP, используя команду -reseal.

Araz Heyderov
Araz Heyderov
Россия
iketommoe ike
iketommoe ike
Тайвань (Китай)