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
За дополнительной информацией обратитесь к KB254078.
net start binlsvc - Корпорация Мicrosoft выпустила исправление, позволяющее программе Riprep.exe поддерживать создание и развертывание образов Windows XP на сервере Windows 2000 RIS. Загрузить обновление можно с этой страницы.