Автор: Дон Бейкер (Don Baker)
Эта статья опубликована в ноябрьском выпуске журнала Windows & .NET Magazine за 2001 год.
На этой странице
Программа для создания образа диска, утилита Sysprep и сценарий WSH
Знаете ли Вы способ быстрого развертывания 50 настольных систем Windows 2000 Professional со всем необходимым программным обеспечением? Будучи консультантом в крупной коммуникационной компании, я столкнулся с подобной проблемой и решил автоматизировать процесс. Раньше я много читал о технологии сервера сценариев Windows (Windows Script Host, WSH), и, наконец, пришло время применить эти знания на практике.
Чтобы значительно упростить установку и конфигурирование настольных систем, я использовал следующие инструменты: программу для создания образа диска, утилиту Sysprep компании Майкрософт, а также базовые сведения о языке сценариев WSH. Разработанный мной процесс состоит из четырех основных этапов: создание стандартного образа жесткого диска, написание сценария, выполняющего некоторые задачи установки, подготовка образа диска для клонирования и клонирование образа на рабочие станции. Вы можете использовать на практике приведенные в этой статье процедуры и сценарии для оптимизации процесса развертывания рабочих станций (предварительно изменив код, исходя из Ваших условий).
Наверх страницы
Среда развертывания
В моем случае, сеть компании представляет собой комбинацию из серверов Novell NetWare 4.x, работающих в режиме эмуляции базы данных описания связей (bindery emulation), и Novell Directory Services (NDS), обеспечивающих службы файлов и печати. Домен Windows NT 4.0 предоставляет доступ к серверам приложений. Базовой настольной операционной системой является Windows 95, но штатные разработчики приложений и администраторы используют Windows NT. Продукты компании Майкрософт Systems Management Server (SMS) 2.0 и SMS 1.2 выполняют инвентаризацию оборудования и программного обеспечения (далее ПО), автоматизируют распространение ПО, а также предоставляют инструмент удаленного управления – службу поддержки (Help desk).
Впоследствии, нашим веб-программистам для работы потребовалась операционная система (далее ОС) Windows 2000 Professional, и мы начали думать над способом ее развертывания. Решение состояло в использовании стандартного метода организации рабочих станций – клонирования образа диска на каждую из них.
Наверх страницы
Создание образа жесткого диска
Для того чтобы клонировать рабочую станцию, требуется сконфигурировать компьютер с определенной ОС и прикладным ПО, затем создать образ диска для копирования на жесткий диск другого компьютера. Клонирование диска это быстрый и эффективный способ установки рабочих станций, который позволяет менее чем за 30 минут инсталлировать и настроить операционную систему со всем прикладным программным обеспечением.
ПО для клонирования диска производят несколько компаний. Чаще всего я использовал продукты Symantec Ghost и PowerQuest Drive Image Pro, хотя все подобные программы работают практически одинаково. Для начала, загрузите компьютер в режиме DOS и затем запустите программу для создания образа. Вы можете создать образ всего диска или одного раздела и сохранить его на другой раздел, диск или общий ресурс в сети. Впоследствии, можно развернуть сохраненный образ на другой диск. Одной из причин необходимости применения ПО клонирования диска, является наличие функции «объединение носителей» (media spanning), которая позволяет разбить образ диска на несколько частей. Это функция очень полезна, если размер образа превышает 640Мб и планируется хранить его на дисках CD-ROM.
Клонирование диска лучше осуществлять в окружении с унифицированным аппаратным обеспечением. Видео карты, сетевые адаптеры, звуковые карты и т.д. должны быть одинаковыми на всех компьютерах и занимать одни и те же слоты. Размер жестких дисков может различаться, при условии, что размер образа не превышает размера жесткого диска. Возможно, вам придется работать одновременно с разными образами, что может быть обусловлено различиями в аппаратной конфигурации, но меньшее их количество повысит удобство работы.
Подготовку к созданию образа диска начните с загрузки ОС Windows 2000 Professional на типичной рабочей станции. Оставьте пустым поле ввода пароля локального администратора и пока не подключайте компьютер к домену. Установите прикладное ПО, которое должно быть на каждой рабочей станции, произведите необходимые настройки ОС и каждого приложения.
Хорошо подумайте над настройками ОС и используемых приложений, которые Вам обычно приходится выполнять. Помните, что основная цель – это минимизация ручного конфигурирования на конечных компьютерах. Например, если Ваш текстовый редактор использует шаблоны из общих директорий, укажите расположение директорий в параметрах. К сожалению, я не мог оценить преимущества групповой политики Windows 2000, поскольку в моей компании в качестве сервера использовался домен Windows NT 4.0. Между тем, у меня была возможность настраивать локальную политику для запуска сценария выхода из системы с целью обновления антивирусных баз.
Перед созданием эталонного образа выполните очистку диска. Удалите содержимое Корзины (Recycle Bin). Удалите все временные файлы, созданные Вами и процессом установки. Очистите список Документы (Documents) в меню Пуск (Start) и журнал обозревателя. Удалите все постоянные подключения сетевого диска, созданные Вами во время загрузки приложений. Запустите утилиту Chkdsk, чтобы убедиться в отсутствии ошибок файловой системы, и очистите журналы событий Приложение (Application), Безопасность (Security) и Система (System).
Создайте сетевой загрузочный диск 3.5". Если Вы не уверены в том, как это сделать, следуйте инструкциям Стива Райлса (Steve Ryles) 18 шагов для создания загрузочного диска TCP/IP 18 Steps to a TCP/IP Boot Disk (EN). Скопируйте программу для создания образа на другой диск 3.5". Перезагрузите компьютер, используя сетевой загрузочный диск, затем подключите диск компьютера к общему сетевому ресурсу, у которого достаточно места для хранения образа. По окончании загрузки компьютера вставьте второй диск 3.5" и запустите программу для создания образа; сохраните образ жесткого диска на сетевой диск, подключенный ранее.
Теперь, когда Вы создали образ диска, можно использовать сетевой загрузочный диск для клонирования рабочих станций напрямую из образа на общем сетевом ресурсе. Если Вас не устраивает этот вариант, запишите образ на CD-ROM и используйте этот носитель для клонирования рабочих станций. Кроме того, потребуется либо загрузочный диск с драйверами устройства CD-ROM, либо сделать загрузочным носитель CD-ROM с образом. Хранение образа на загрузочном носителе CD-ROM способствует быстрому и легкому процессу клонирования. Информацию о создании загрузочных дисков CD-ROM Вы можете найти в документации к устройству записи CD-ROM или на веб-узле производителя.
Наверх страницы
Сценарий FinalSetup.vbs
Если Вы предпочитаете работать с командными файлами, то останетесь довольны и технологией сервера сценариев Windows (WSH). WSH – это обработчик сценариев (интерпретатор), являющийся составной частью операционных систем Windows 2000 и Windows 98. При необходимости, можно установить его на ОС Windows NT 4.0 и Windows 95. Интерпретатор WSH поддерживает команды WSH, а также языки сценариев VBScript и JScript (версию языка JavaScript компании Майкрософт).
Сценарии WSH используются для работы с файловой системой, автоматизации настольных приложений, управления системой Microsoft SQL Server и для многих других целей. Изучение этой технологии не составит большого труда, ведь всё, что Вам потребуется, это текстовый редактор и установленный интерпретатор WSH. Кроме этого, посетите веб-узел компании Майкрософт, посвященный технологиям сценариев в среде Windows http://msdn.microsoft.com/scripting (EN), где Вы найдете массу полезной информации, доступной для загрузки. Также ознакомьтесь со статьями, предложенными в разделе «Связанные ресурсы» этой статьи.
Листинг 1 демонстрирует сценарий FinalSetup.vbs, для написания которого я использовал технологии WSH и VBScript. Вы наверняка заметите, что мне нравится «украшать» код многочисленными пробелами и добавлять достаточно комментариев. К слову сказать, комментарии упрощают чтение сценария и помогут вспомнить назначение той или иной строки, если открыть сценарий спустя месяцы после его написания. Во многих случаях я оставляю закомментированным даже отладочный код, который добавляю в процессе написания и проверки сценария.
Листинг 1 – Сценарий FinalSetup.vbs
'**********************************************************************
' НАЗВАНИЕ: FinalSetup.VBS Ver 2.0
' НАЗНАЧЕНИЕ: для добавления глобальных групп домена к локальным группам
' после подключения компьютера к домену (образ WIN 2000).
'**********************************************************************
OPTION EXPLICIT 'Убедимся, что все переменные объявлены.
ON ERROR RESUME NEXT 'Сценарий продолжит работу в случае внутренней ошибки.
'***************************************************
'Объявляем переменные.
'***************************************************
Dim oGroup 'Объект ADSI созданный с помощью функции GetObject()
Dim oWshShell 'Объект Shell для запуска исполняемого файла (smsman.exe)
Dim sInDomain 'Используется для проверки членства в домене
Dim sCompName 'Имя локального компьютера
Dim oWshNet 'Объект WshNetwork
Dim sUser 'Имя пользователя для проверки на ошибки
Dim sMember 'Для проверки членства в группе (0 или 1)
'********************************************************
'Объявляем константы.
'********************************************************
Const GLOBAL_GROUP = "WEBDEV" 'Глобальная группа, добавляемая к локальной группе
Const LOCAL_GROUP = "Administrators" 'Имя локальной группы
Const DOMAIN = "GONDOR" 'Имя домена
'********************************************************
'Создаем объекты.
'********************************************************
'Создаем объект network.
Set oWshNet = Wscript.CreateObject("Wscript.Network")
'Создаем объект shell.
Set oWshShell = Wscript.CreateObject("Wscript.Shell")
'***************************************************
'Получаем локальную информацию.
'***************************************************
sUser = oWshNet.Username 'Получаем имя входа текущего пользователя.
SCompName = oWshNet.Computername 'Получаем имя компьютера.
'***************************************************
'Убедимся, что вошедший пользователь является Администратором, если это не так, завершаем работу сценария.
'***************************************************
IF UCASE(sUser) <> "ADMINISTRATOR" THEN
Wscript.Echo "You must be logged in as ""ADMINISTRATOR"" to run this " & _
"script! " & vbCRLF & vbCRLF & "Log off and login as " & _
"""ADMINISTRATOR"" to the local machine " & "(" & sCompName & ")." & _
vbCRLF & vbCRLF & "After logging in as ADMINISTRATOR, run the " & _
"C:\WINNT\SYSTEM32\FinalSetup.vbs script again" & _
" to finish the installation."
Wscript.Quit
END IF
'***************************************************
'Убедимся, что машина была добавлена к домену;
'в противном случае завершаем работу и выводим сообщение.
'***************************************************
'Получаем значение ключа из реестра.
sInDomain = oWshShell.RegRead("HKLM\SOFTWARE\" & _
"Microsoft\Windows NT\CurrentVersion\Winlogon\DomainCache\GONDOR")
IF sInDomain = "" THEN
Wscript.Echo "The Computer does not belong to " & DOMAIN & " domain!"
Wscript.quit
END IF
IF ERR.NUMBER = -2147024894 THEN
Wscript.Echo "The Computer does not belong to " & DOMAIN & " domain!"
Wscript.quit
END IF
'********************************************************
'Обновляем членство в группе.
'********************************************************
Set oGroup = GetObject("WinNT://" & sCompName & "/" & LOCAL_GROUP & ",group")
sMember = oGroup.IsMember("WinNT://" & DOMAIN & "/" & GLOBAL_GROUP)
'если является членом, то sMember будет -1, иначе 0.
IF sMember = 0 THEN
oGroup.add("WinNT://" & DOMAIN & "/" & GLOBAL_GROUP)
sMember = oGroup.IsMember("WinNT://" & DOMAIN & "/" & GLOBAL_GROUP)
'Если является членом, то sMember будет -1, иначе 0.
IF sMember = -1 THEN
oWshShell.Popup "The " & GLOBAL_GROUP & " global group has been " & _
"successfully added to the " & LOCAL_GROUP & " local group.", _
5, "Local Group Modified", 064
End IF
ELSE
oWshShell.Popup "The " & GLOBAL_GROUP & " global group is already" & _
" a member of the " & LOCAL_GROUP & " local group.", 5, _
"Global Group Exists" ,064
End IF
'********************************************************
'Запускаем smsman.exe для установки SMS 2.0.
'********************************************************
oWshShell.Popup "SMS 2.0 will now be installed. Please wait while" & _
" program is loading..." & vbCRLF & vbCRLF & "The SMS Client" & _
" Installation will take approximately 5 minutes to complete" _
, 10, "SMS 2.0 Installation", 064
oWshNet.MapNetworkDrive "N:", "\\SMSCPS1\SMSLOGON", , "guest", ""
oWshShell.Run "N:\x86.bin\00000409\SMSMAN.EXE", ,TRUE
oWshNet.RemoveNetworkDrive "N:"
'********************************************************
'Выводим сообщение об окончании сценария и завершаем работу.
'********************************************************
MsgBox "This portion of the setup has been completed. " & _
"Logoff and login as the user and setup the printers."
Сценарий FinalSetup.vbs выполняет заключительные шаги процесса установки до того, как системный администратор позволит конечному пользователю работать с компьютером. Код сценария проверяет, что его запустил пользователь с правами администратора (Administrator), и что компьютер подключен к домену. Затем сценарий добавляет глобальную группу WEBDEV в локальную группу Администраторы (Administrators) компьютера, чтобы позволить веб-разработчикам устанавливать программное обеспечение и конфигурировать свои компьютеры.
Первые два оператора сценария крайне важны и должны содержаться в каждом Вашем сценарии. Оператор OPTION EXPLICIT проверяет, все ли переменные объявлены, прежде чем позволить их использование, предупреждая этим возможные ошибки в коде. Хотя VBScript позволяет не объявлять переменные, но если не использовать OPTION EXPLICIT, то любая опечатка в написании переменной создаст новую переменную. Такую ошибку можно легко найти в простом сценарии, но проблематично, если код состоит из сотен строк. Оператор ON ERROR RESUME NEXT запрещает остановку выполнения сценария в случае обнаружения ошибки. Цель данного оператора не в игнорировании ошибки, а в том, чтобы ошибка не стала фатальной для сценария и позволила ему доработать до конца.
Следующий раздел сценария FinalSetup.vbs включает объявление переменных. Вы можете перечислить все переменные через запятую в одной строке, или поместить каждую переменную на отдельной строке, как сделано мной. Имя переменной должно начинаться с буквы латинского алфавита и его длина не может быть больше 255 символов, среди которых допустимы латинские буквы, цифры и символ подчеркивания (_). Использование однобуквенного префикса в нижнем регистре необязательно, но поможет при чтении определить тип данных (например, объект (object), строка (string), целое число (integer)), содержащихся в переменной.
Следующий раздел – это объявление констант. Константы похожи на переменные, за исключением того, что Вы не сможете изменить значение констант после их объявления. В сценарии используются три константы: GLOBAL_GROUP, LOCAL_GROUP, и DOMAIN.
Чтобы осуществить решение задачи, в сценарии необходимо использовать объекты. Объекты содержат в себе методы (функции, выполняемые объектом) и свойства (характеристики). Вы должны создать объект перед его использованием в сценарии. Создание объекта подразумевает его размещение в памяти и регистрацию. В сценариях WSH для создания объекта используется функция Wscript.CreateObject(). В сценарии FinalSetup.vbs задействованы несколько объектов, встроенных в интерпретатор WSH.
В следующем разделе FinalSetup.vbs создается два объекта: объект Network (Wscript.Network) и объект Shell (Wscript.Shell). Объект Network позволяет подключаться к сетевым ресурсам. Объект Shell служит для запуска исполняемых файлов, работы с реестром, чтения переменных среды, создания ярлыков, а также выполнения некоторых других функций. В каждом случае сценарий сохраняет созданные объекты в переменных (соответственно в oWshNet и oWshShell) и использует эти переменные для доступа к методам и свойствам объекта.
Чтобы сценарий успешно завершил свою работу, он должен выполняться под учетной записью локального администратора (Administrator). Для проверки этого факта, сценарий получает значение свойства Username объекта Network, созданного ранее, и сохраняет это значение в переменной sUser. В переменной sCompName сохраняется имя компьютера, полученное из свойства Computername. Функция UCASE() задействована для преобразования значения переменной sUser к верхнему регистру для последующего сравнения со строкой «ADMINISTRATOR». Если результат этого сравнения будет отрицательным, сценарий выведет сообщение об ошибке и завершит работу.
В противном случае, сценарий продолжит работу, и следующим шагом будет проверка факта подключения компьютера к домену. Сначала, метод oWshShell.RegRead производит чтение ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\DomainCache\GONDOR и его значение сохраняет в переменной sInDomain. После этого сценарий делает две проверки. Первая: если значением переменной sInDomain является null (ключ реестра пуст), сценарий выводит сообщение об ошибке и завершает работу. Вторая: если произошла фатальная ошибка с кодом 2147024894 (ключа реестра не существует), сценарий также завершается сообщением об ошибке. Если ключа реестра не окажется, и сценарий не будет содержать оператор ON ERROR RESUME NEXT, упомянутый мной ранее, пользователь увидит сообщение об ошибке, показанное на Рисунке 1.
Рисунок 1 – Сообщение об ошибке интерпретатора WSH
Следующим шагом сценария будет добавление глобальной группы домена Windows NT 4.0 в локальную группу Администраторы (Administrators) компьютера. Для этого сценарий осуществляет подключение к базе данных SAM локального компьютера, используя Интерфейсы службы каталогов Active Directory (Active Directory Service Interfaces, ADSI). С помощью функции ADSI GetObject() создается объект oGroup для связи с поставщиком интерфейсов службы каталогов Active Directory WinNT. После установки соединения, сценарий использует метод IsMember объекта oGroup, чтобы проверить, является ли глобальная группа домена (GLOBAL_GROUP) членом локальной группы Администраторы (Administrators). Если результат проверки окажется отрицательным, то значением переменной sMember будет FALSE (0) и сценарий задействует метод oGroup.Add для добавления глобальной группы в локальную группу. Затем снова проверяется значение переменной sMember, которое должно быть TRUE (-1). После этого метод oWshShell.Popup выведет сообщение о статусе выполнения, и после паузы в 5 секунд продолжится выполнение сценария.
Поскольку мы используем SMS, последним этапом работы сценария будет установка клиента SMS на компьютер. После вывода информационного сообщения, метод oWshNet.MapNetworkDrive производит подключение диска N компьютера к серверу SMS, и метод oWshShell.Run запускает файл smsman.exe. По окончании работы установочного файла smsman.exe, сценарий отключает сетевой диск и выводит сообщение о завершении работы.
Наверх страницы
Подготовка образа диска
Используйте программу подготовки системы (System Preparation Tool, Sysprep) для клонирования созданного Вами эталонного образа диска. Эта утилита включает три файла: sysprep.exe, setupcl.exe, и sysprep.inf. Sysprep.exe готовит диск для клонирования и запускает файл setupcl.exe, который генерирует на клонированном образе уникальный идентификатор безопасности (SID). Файл ответов sysprep.inf используется для автоматизации процесса мастера мини-установки (Mini-Setup Wizard) утилиты Sysprep. В течение первой загрузки после развертывания ОС из образа, мастер мини-установки запросит информацию, отсутствующую в файле ответов sysprep.inf (имя компьютера, часовой пояс, членство в домене и т.д.).
Средство Sysprep позволяет развертывать образ диска на компьютер с оборудованием, отличающимся от исходной платформы образа, при условии совместимости уровней аппаратных абстракций (HAL). В этом случае, образ должен содержать все драйвера, которые не включены в файл C:\winnt\driver cache\i386\driver.cab, а в разделе [UNATTENDED] файла sysprep.inf должен быть определен параметр OemPnPDriversPath, указывающий путь к расположению дополнительных драйверов. Утилита Sysprep находится на установочном CD-ROM диске Windows 2000 Professional по адресу \support\tools\deploy.cab. Последняя версия этой утилиты доступна на веб-узле компании Майкрософт. Примечание переводчика. Список файлов для загрузки см. здесь http://www.microsoft.com/technet/downloads/win2k.mspx (EN), а скачать утилиту Sysprep 1.1 Вы можете отсюда http://www.microsoft.com/downloads/details.aspx?FamilyID=0C4BFB06-2824-4D2B-ABC1-0E2223133AFB&displaylang=en (EN). Перед началом работы загрузите техническое руководство Автоматизация процесса развертывания Windows 2000 с помощью средства Sysprep «Automating Windows 2000 Deployments with Sysprep» и внимательно прочтите его. Приложение B (Appendix B) этого руководства демонстрирует команды для создания файла ответов sysprep.inf. Описание синтаксиса команд можно прочесть в документе Руководство по автоматической установке ОС Windows 2000 «Microsoft Windows 2000 Guide to Unattended Setup» (unattended.doc), расположенном в папке с файлом deploy.cab на установочном компакт-диске Windows 2000 Professional.
Примечание переводчика. См. также статью базы знаний Microsoft на русском языке Автоматизация процесса развертывания Windows XP с помощью средства Sysprep.
Листинг 2 – Содержание файла ответов Sysprep.inf
[Unattended]
OemPreInstall = no
OemSkipEula = yes
KeepPageFile = 0
ExtendOemPartition = 1
[GuiUnattended]
OemSkipWelcome = 1
AdminPassword = elyod[
TimeZone = 035
OemSkipRegional = 1
[GuiRunOnce]
command01 = c:\winnt\system32\finalsetup.vbs
[UserData]
OrgName = "XYZ Communications"
FullName = "XYZ User"
[Identification]
JoinDomain = GONDOR
DomainAdmin = desktop
DomainAdminPassword = eportsew
[Networking]
InstalldefaultComponents = no
Листинг 2 демонстрирует содержание созданного мной файла ответов sysprep.inf. Теперь давайте разберемся, что означают каждый раздел и команды для процесса мастера мини-установки (Mini-Setup Wizard).
[Unattended]
OemPreInstall = no означает, что будет использоваться клонирование диска, а не автоматическая установка.
OemSkipEula = yes запрещает появление окна лицензионного соглашения конечного пользователя (End User License Agreement, EULA).
KeepPageFile = 0 дает команду системе Windows 2000 на создание заново файла подкачки для устранения различий в ОЗУ (RAM) между главным и целевым компьютерами.
ExtendOemPartition = 1 расширяет системный раздел диска для заполнения оставшегося дискового пространства. Другое значение этого параметра (например, ExtendOemPartition = 75) определяет размер в мегабайтах, на который нужно расширить раздел, оставляя неиспользуемое дисковое пространство для дополнительных разделов. Параметр ExtendOemPartition можно задействовать только на разделах с файловой системой NTFS.
OemPnPDriversPath это параметр, который я не использовал в файле sysprep.inf, но считаю необходимым рассказать о нем. Его значение – это путь к расположению дополнительных драйверов, которых нет в файле C:\winnt\driver cache\i386\driver.cab. Если в процессе инсталляции мастер мини-установки (Mini-Setup Wizard) обнаружит новое устройство на целевом компьютере, то поиск подходящих драйверов произойдет сначала в файле driver.cab, и потом уже в расположении, указанном в параметре OemPnPDriversPath.
[GuiUnattended]
OemSkipWelcome = 1 запрещает появление экрана Приветствие (Welcome).
AdminPassword = elyod[ устанавливает пароль локального администратора (Administrator) компьютера, соответствующий стандартному корпоративному паролю (elyod[), который используется для всех систем Windows NT.
TimeZone = 035 определяет часовой пояс для компьютера (035 означает Восточное время, US & Canada). Коды часовых поясов можно узнать из таблицы файла unattended.doc.
OemSkipRegional = 1 запрещает отображение диалоговых окон, связанных с вводом региональной информации.
[GuiRunOnce]
Этот раздел содержит команды для запуска системой после окончания мастера мини-установки (Mini-Setup Wizard). Эти команды добавляются в ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce.
command01 = c:\winnt\system32\finalsetup.vbs запускает написанный мной сценарий для завершения процесса установки.
[UserData]
OrgName ="XYZ Communications" устанавливает название компании.
FullName = "XYZ User" устанавливает имя пользователя.
ComputerName устанавливает имя компьютера (в файле ответов sysprep.inf не указан). Если этому параметру присвоить значение *, то мастер мини-установки сгенерирует случайное имя компьютера.
Значения вышеописанных параметров этого раздела должны заключаться в кавычки, если в них есть пробелы. Рекомендуется использовать одинаковые значения для всех компьютеров. Если Вы оставите эти параметры без значений, то мастер мини-установки (Mini-Setup Wizard) запросит эту информацию у пользователя.
[Identification]
JoinDomain = GONDOR автоматически добавляет компьютер к домену GONDOR Windows NT.
DomainAdmin = desktop устанавливает имя пользователя с необходимыми правами для добавления компьютеров к домену.
DomainAdminPassword = eportsew устанавливает пароль.
Я создал учетную запись desktop пользователя домена и наделил ее правом добавления рабочих станций к домену (Add Workstations to Domain).
Сетевые имена и пароли в файле sysprep.inf вводятся открытым текстом, что потенциально небезопасно. Для решения этой проблемы, мастер мини-установки автоматически удаляет папку с файлом sysprep.inf на целевом компьютере.
[Networking]
InstalldefaultComponents = no указывает мастеру мини-установки оставить стандартный стек (набор) сетевых протоколов. В эталонном образе содержатся все сетевые настройки, но если вдруг обнаружится, что есть компьютеры с другими сетевыми адаптерами (NIC), то можно настроить параметры в этом разделе.
Теперь необходимо добавить сценарий FinalSetup.vbs и утилиту Sysprep в эталонный образ диска для подготовки его к клонированию. Для начала, скопируйте эти файлы на компьютер, который использовался для создания исходного образа, после этого создайте второй образ диска. Я написал командный файл prepsys.bat (см. Листинг 3), который копирует сценарий FinalSetup.vbs в папку C:\winnt\system32, затем копирует утилиту Sysprep с файлами поддержки в папку Sysprep в корне системного диска и запускает утилиту Sysprep с ключом /forceshutdown. Ключ /forceshutdown означает, что компьютер должен автоматически завершить работу. Если этого не произойдет, то вручную отключите питание, когда индикатор активности жесткого диска перестанет светиться, и пока не включайте компьютер.
Листинг 3 – Командный файл Prepsys.bat
REM prepsys.bat
@ECHO OFF CLS ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO Подготовка диска для запуска SYSPREP...
ECHO.
ECHO.
ECHO.
ECHO.
copy a:\FINALSETUP.VBS c:\WINNT\SYSTEM32
MD c:\SYSPREP
copy a:\sysprep.exe c:\sysprep
copy a:\setupcl.exe c:\sysprep
copy a:\sysprep.inf c:\sysprep
c:\sysprep\sysprep.exe /forceshutdown
Для того чтобы создать второй образ диска компьютера, вставьте сетевой загрузочный диск, о котором было упомянуто ранее, загрузите ОС и подключитесь к общему сетевому ресурсу. Запустите программу для создания образа, создайте второй образ диска и назовите его иначе, чем первый. Новый эталонный образ Вы будете использовать для клонирования рабочих станций. После того, как Вы загрузите компьютер и развернете на него образ, будут выполнены все этапы установки, описанные мной выше. Первый образ нужно сохранить для последующего внесения изменений в конфигурацию.
Если потребуется модифицировать эталонный образ, запустите первый образ на компьютере, произведите необходимые изменения в конфигурации или приложениях и выполните очистку диска по описанной мной ранее методике. При необходимости, отредактируйте сценарий FinalSetup.vbs или файл ответов sysprep.inf, затем запустите командный файл prepsys.bat для копирования сценария и файлов утилиты Sysprep на компьютер. Prepsys.bat в процессе выполнения также запустит утилиту Sysprep, которая создаст новый образ диска для клонирования.
Подготовленный утилитой Sysprep диск можно изменить, но делать это я не рекомендую по следующей причине: при первой загрузке компьютера мастер мини-установки выполнит задачи установки, и чтобы произвести изменения диска, потребуется отменить результаты работы мастера. Вероятность ошибок в этом случае многократно повышается.
Наверх страницы
Клонирование эталонного образа на рабочую станцию
Вы можете клонировать второй эталонный образ на целевую рабочую станцию тремя способами: 1) использованием сетевого загрузочного диска для загрузки компьютера, с последующим закачиванием образа из общего сетевого ресурса; 2) применением загрузочного компакт-диска, содержащего образ; 3) применением дупликатора диска для копирования эталонного образа сразу на несколько жестких дисков. Варьируйте использование этих методов в зависимости от удобства работы в каждом случае.
По-моему, самым эффективным решением является использование загрузочного диска CD-ROM, содержащего образ. Этот метод клонирования не требует сетевого подключения (в отличие от клонирования из общего сетевого ресурса), и также нет необходимости в снятии жесткого диска компьютера (которого требует дупликатор диска). Можно добавить, что данный способ (так же, как и дублирование диска) не потребляет сетевой трафик.
После записи образа на жесткий диск, перезагрузите компьютер. При первой загрузке компьютера утилита Sysprep запустит мастер мини-установки, который запросит у пользователя информацию, отсутствующую в файле ответов sysprep.inf. В моей компании, например, надо было ввести только имя компьютера, соответствующее политике присвоения имен компьютеров на основе имен конечных пользователей, названии отдела и местоположения. Мастер мини-установки также добавит ключ в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce. В конечном итоге, при первом входе в систему Windows 2000 будет запущен сценарий FinalSetup.vbs.
Предварительное планирование работ по обновлению конфигурации и переустановке клиентских компьютеров позволит сетевым администраторам и службам поддержки уменьшить трудозатраты и сократить время обслуживания рабочих станций. Каждый, кто будет выполнять работы по развертыванию настольных систем, должен изучить на практике описанные мной инструменты, среди которых: ПО для создания образов, сценарии WSH и утилита Sysprep компании Майкрософт. За время, которое потребуется для установки и настройки настольных систем устаревшим способом, можно запросто освоить новые инструменты и этим многократно повысить свою продуктивность.
Связанные ресурсы
Веб-узлы компании Майкрософт
Продукты
Статьи
Нижеследующие статьи можно прочесть на веб-узле Windows IT Pro Magazine (EN)
Эд Рот (Ed Roth)
- Решения по использованию образов
"Disk-Imaging Solutions" 15 июня, 2001 г., InstantDoc ID 20876 (EN)
Боб Уэллс (Bob Wells)
- Решения по использованию сценариев, «Сервер сценариев Windows 2.0»
Scripting Solutions, "Windows Script Host 2.0" Декабрь 1999 г., InstantDoc ID 7530 (EN) - Решения по использованию сценариев, «Написание сценария 101, Часть 4»
Scripting Solutions, "Scripting 101, Part 4" Сентябрь 1999 г., InstantDoc ID 7112 (EN) - Решения по использованию сценариев, «Написание сценария 101, Часть 3»
Scripting Solutions, "Scripting 101, Part 3" Август 1999 г., InstantDoc ID 5683 (EN) - Решения по использованию сценариев, «Написание сценария 101, Часть 2»
Scripting Solutions, "Scripting 101, Part 2" Июль 1999 г., InstantDoc ID 5505 (EN) - Решения по использованию сценариев, «Написание сценария 101,»
Scripting Solutions, "Scripting 101" Июнь 1999 г., InstantDoc ID 5410 (EN)
© 2002 Windows & .NET Magazine. Все права защищены.
Практические примеры материала можно найти в журнале Windows IT Pro Magazine по адресу http://www.windowsitpro.com (EN). Также к Вашему вниманию предлагается рассылка UPDATE (EN) этого журнала, которая содержит последние новости, советы и другие ресурсы для ИТ профессионалов, посвященные ОС Windows. Подписаться на эту рассылку можно здесь: http://email.winnetmag.com/winnetmag/winnetmag_prefctr.asp (EN).
Мы надеемся, что материал этой статьи будет Вам полезен. Тем не менее, Вы используете предоставленную в этой статье информацию на свой страх и риск. Все сведения в этой статье представлены «как есть», без каких-либо гарантий, явных или подразумеваемых, относительно их точности, полноты, пригодности для выполнения каких-либо задач, передающих или нарушающих право собственности; корпорация Майкрософт не оказывает поддержку и не является автором, представителем или гарантом упомянутых в статье сведений и продуктов сторонних компаний. Корпорация Майкрософт не несет ответственности за какие-либо убытки, вызванные использованием этих сведений, включая прямые, непрямые, умышленные, побочные и косвенные убытки, даже если она заранее была извещена об их возможности. Все цены на продукты, упомянутые в этой статье, могут быть изменены без уведомления.
Наверх страницы
Обсуждение статьи на форуме