RIS – это процедура удаленной установки Windows, а также офисных приложений с использованием технологии сетевой загрузки. Может оказаться серьезным подспорьем для сетевых администраторов. Используя технологию RIS, клиенты во время загрузки по сети или с помощью RBFG-дискеты через механизм PXE получают IP-адрес и другую информацию, чтобы найти сервер RIS и установить сессию. Затем RIS-сервер и клиент используют протокол TFTP для передачи на станцию клиента программы установки Custom Installation Wizard. С ее помощью пользователь клиентской станции проходит аутентификацию в AD и выбирает образ ОС с сервера RIS. Затем начинается процесс передачи данных, завершающийся установкой на станции клиента полнофункциональной версии Windows, со всеми необходимыми приложениями и специальными настройками.
Я не буду в данной статье рассматривать способы установки и развертывания RIS, поскольку эта тема достаточно обширна и не имеет прямого отношения к автоматической установке Windows. К тому же материалов по RIS достаточно в Интернете, хотя бы тут, а также в многочисленных руководствах по Windows Server 2000 и 2003. Я лишь постараюсь привести по возможности доступное описание процесса превращения обычной RIS-установки в unattended.
Файл ответов
Файл ответов называется ristndrd.sif и располагается по адресу
\\Remoteinstall\setup\Language\images\winxppro\i386\templates
где language - язык дистрибутива Windows, winxppro - название дистрибутива Windows. Понятно, что язык и названия версии могут быть различными. У меня, например, цепочка такая:
\\RemInst\setup\Russian\images\windows_xp_sp2\i386\templates
Параметры типичного файла ответов имеют жесткую привязку к конкретным условиям установки, поэтому наилучшим выбором будет редактирование существующего, а не создание нового. Синтаксис файла ответов такой же, как и у winnt.sif, так что более подробную информацию по каждому параметру всегда можно найти в ref.chm.
Пример типичного файла ответов:
[data]
floppyless = "1"
msdosinitiated = "1"
OriSrc = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%"
OriTyp = "4"
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = Yes
[SetupData]
OsLoadOptions = "/noguiboot /fastdetect"
SetupSourceDevice = "\Device\LanmanRedirector\%SERVERNAME%\RemInst\%INSTALLPATH%"
[Unattended]
OemPreinstall = no
FileSystem = LeaveAlone
ExtendOEMPartition = 0
TargetPath = \WINDOWS
OemSkipEula = yes
InstallFilesPath = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%"
LegacyNIC = 1
[UserData]
FullName = "%USERFIRSTNAME% %USERLASTNAME%"
OrgName = "%ORGNAME%"
ComputerName = %MACHINENAME%
[GuiUnattended]
OemSkipWelcome = 1
OemSkipRegional = 1
TimeZone = %TIMEZONE%
AdminPassword = "*"
[Display]
BitsPerPel = 16
XResolution = 800
YResolution = 600
VRefresh = 60
[Networking]
[NetServices]
MS_Server=params.MS_PSched
[Identification]
JoinDomain = %MACHINEDOMAIN%
DoOldStyleDomainJoin = Yes
[RemoteInstall]
Repartition = Yes
UseWholeDisk = Yes
[OSChooser]
Description="Windows Professional"
Help="Будет выполнена установка Windows Professional в стандартной конфигурации."
LaunchFile="%INSTALLPATH%\%MACHINETYPE%\templates\startrom.com"
ImageType="Плоский"
Рассмотрим секции и параметры типичного файла ответов подробнее. Поскольку лишь некоторые из них специфичны для RIS, с таковых и начнем.
Секция [data]
Параметры по умолчанию являются обязательными, поскольку они задают начальные условия установки. floppyless - поддержка загрузки с дискеты, msdosinitiated - для запуска dos-сессии установки, параметр DisableAdminAccountOnDomainJoin=1 нужен, если установка идет через RIS. Нам сюда требуется лишь добавить строку UnattendedInstall = "Yes". Желающие могут также добавить AutoPartition = 0.
Секция [SetupData]
Оставляем ее неприкосновенной - это способ загрузки Windows и определитель устройства загрузки. Эта секция применяется только при RIS-установке.
Секция [Unattended]
Практически аналогична одноименной секции в winnt.sif. Единственное, что характерно именно для RIS - это строки:
InstallFilesPath = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%"
LegacyNIC = 1
поэтому их оставляем в неизменном виде.
Чтобы папка $OEM$ скопировалась на жесткий диск, необходимо добавить строку:
OemFilesPath = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%\$OEM$\"
и положить папку $OEM$ параллельно i386 в \\RemoteInstall. Остальное - на ваше усмотрение.
Секция [UserData]
Здесь можно поставить свои параметры в соответствующих строках, это не критично. Ну и добавить параметр ProductKey.
Секции [Identification] и [OSChooser]
Обе секции относятся именно к RIS, поэтому не трогаем, и оставляем неизменными.
Остальные секции
Все остальные секции и их параметры идентичны файлу winnt.sif.
Установка приложений через RunOnceEx
Удобство RIS-установки состоит еще и в том, что можно не носить с собой диски с софтом, а хранить нужные приложения на сервере RIS и запускать инсталляцию оттуда. Для метода RunOnceEx не составляет труда прописать в файле сетевые пути к приложениям. Работоспособность метода - 100%, проверено :-)
Папку с софтом лучше разместить в папке RemInst из тех соображений, чтобы не создавать слишком длинные пути к приложениям. У меня, например, на длинный путь жутко обругался Office2003. Те программы, которые размещены в соответствующих каталогах папки $OEM$, копируются в обычном порядке точно так же, как они ставились бы с CD.
Пример моего файла ответов
[data]
AutoPartition = 0
floppyless = "1"
msdosinitiated = "1"
UnattendedInstall = "Yes"
OriSrc = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%"
OriTyp = "4"
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = Yes
[SetupData]
OsLoadOptions = "/noguiboot /fastdetect"
SetupSourceDevice = "\Device\LanmanRedirector\%SERVERNAME%\RemInst\%INSTALLPATH%"
[Unattended]
UnattendMode = FullUnattended
OemPreinstall = Yes
TargetPath = \WINDOWS
OemSkipEula = yes
InstallFilesPath = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%"
LegacyNIC = 1
Repartition = No
UnattendSwitch = "Yes"
WaitForReboot = "No"
OemFilesPath = "\\%SERVERNAME%\RemInst\%INSTALLPATH%\%MACHINETYPE%\$\"
OemPnPDriversPath = "Drivers\000_Chipset\;Drivers\001_Network\;Drivers\002_Video\;Drivers\003_Sound\"
DriverSingingPolicy = Ignore
ProgramFilesDir = "C:\Program Files"
[UserData]
ProductKey = *****-*****-*****-*****
FullName = "****"
OrgName = "%ORGNAME%"
ComputerName = unattend
[GuiUnattended]
OemSkipWelcome = 1
OemSkipRegional = 1
TimeZone = 180
AdminPassword = "*"
[TapiLocation]
CountryCode = 7
AreaCode = ****
[RegionalSettings]
LanguageGroup = 1,5
SystemLocale = 00000419
UserLocale = 00000419
InputLocale = 0409:00000409,0419:00000419
[Branding]
BrandIEUsingUnattended = Yes
[URL]
Home_Page = http://www.yandex.ru
Help_Page = http://www.yandex.ru
Search_Page = http://www.yandex.ru
[Proxy]
Proxy_Enable = 0
Use_Same_Proxy = 1
[Networking]
InstallDefaultComponents = No
[NetAdapters]
Adapter1 = params.Adapter1
[params.Adapter1]
INFID = *
[NetClients]
MS_MSClient = params.MS_MSClient
[NetServices]
MS_Server=params.MS_PSched
[Identification]
JoinDomain = %MACHINEDOMAIN%
DoOldStyleDomainJoin = Yes
[NetProtocols]
MS_TCPIP = params.MS_TCPIP
[params.MS_TCPIP]
AdapterSections = params.MS_TCPIP.Adapter1
[params.MS_TCPIP.Adapter1]
SpecificTo = Adapter1
DHCP = No
IPAddress = ***.***.***.***
SubnetMask = ***.***.***.***
DNSServerSearchOrder = ***.***.***.***
WINS = No
NetBIOSOptions = 0
[WindowsFirewall]
Profiles = WindowsFirewall.TurnOffFirewall
[WindowsFirewall.TurnOffFirewall]
Mode = 0
[Components]
msmsgs = off
msnexplr = off
zonegames = off
[Shell]
DefaultStartPanelOff = Yes
[RemoteInstall]
Repartition = No
UseWholeDisk = Yes
[OSChooser]
Description="Microsoft Windows XP Professional RU"
Help="Automatically installs Microsoft Windows XP Professional RU without prompting the user for input."
LaunchFile="%INSTALLPATH%\%MACHINETYPE%\templates\startrom.com"
ImageType=Flat
Version="5.1 (0)"
Примечания
- В процессе работы с RIS-установкой возможно возникновение проблем с определением драйверов сетевой карты на текстовом этапе установки, а именно: при корректном подключении к RIS-серверу посредством PXE на текстовом этапе выдается сообщение о не найденных драйверах сетевой карты. Соответственно установка прекращается. Проблема решается достаточно просто и изящно - необходимо *.inf и *.sys файлы проблемных карт скопировать в корень папки i386, после чего перезапустить службу уровня согласования информации загрузки (Boot Information Negotiation Layer, BINL).
net stop binlsvc
net start binlsvc
За дополнительной информацией обратитесь к KB254078. - Корпорация Мicrosoft выпустила исправление, позволяющее программе Riprep.exe поддерживать создание и развертывание образов Windows XP на сервере Windows 2000 RIS. Загрузить обновление можно с этой страницы.