|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista » 7 / 2008 R2 - WDS discover image + автоматическая установка |
|
7 / 2008 R2 - WDS discover image + автоматическая установка
|
Новый участник Сообщения: 11 |
Здравствуйте!
пролог: по этой статье сделал эталонный образ системы. По циклам этих статей сделал файл ответов и интеграцию драйверов. Вроде всё хорошо но возникла потребность включать комьютеры в домен. Для этого развернул WDSServer и сразу натолкнулся на проблему: - клиентский компьютер и WDSServer в разных DHCP подсетях. Нашел решение использовать discover image WDSServer'a. То есть создал boot.wim, который находит WDSServer, запихал его в стандартный образ windows в папку sources вместо стандартного boot.wim. Проблема: не знаю как использовать По идее их должно быть два: один для boot.wim, второй для install.wim. Не знаю как его правильней разделить, и после деления куда их засовывать? Есть варианты: в корне диска в диске -> папка sources Правильно ли я ввожу в домен? |
|
Отправлено: 06:34, 05-07-2013 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать На самом деле для ввода в домен не обязательно иметь WDS сервер.
Нужно просто в файл ответов добавить вот такой код: <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Identification> <Credentials> <Domain>имя домена</Domain> <Password>пароль пользователя</Password> <Username>имя пользователя</Username> </Credentials> <JoinDomain>имя домена.com</JoinDomain> <UnsecureJoin>false</UnsecureJoin> <DebugJoin>true</DebugJoin> </Identification> </component> Но вот появился другой вопрос, как сделать так чтобы программа установки запрашивала имя компьютера. Пытался сделать по этой статье. То есть я загрузил файлы Winpeshi.ini и domainOU.vbs добавил в нужные папки в boot.wim. Но при установке ничего не спрашивает. Как сделать чтобы спрашивало? Можете дать какой-нибудь альтернативный вариант или более подробную статью. И если спросит, то на каком этапе установке будет српашивать? |
Отправлено: 06:59, 13-08-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 116
|
Профиль | Отправить PM | Цитировать Цитата:
вот правильный синтаксис domainOU.vbs Option Explicit Dim computerName, OU, unattendFile, WshShell, result, fso, unattendFileObject, strContents '---------------------------------------------------------------------- unattendFile = "C:\Windows\Panther\unattend.xml" ' параметры, заданные пользователем '---------------------------------------------------------------------- Set WshShell = WScript.CreateObject("WScript.Shell") dim answer do while answer <> vbYes computerName = InputBox("Введите имя компьютера", "Имя компьютера") OU = InputBox("Введите различающееся имя нужного подразделения", "Подразделение") answer = MsgBox("Все ли правильно?" & vbCrLf & vbCrLF & "Name: " & computerName & vbCrLF & "OU: " & OU, vbYesNo, "Сведения об учетной записи компьютера") loop WshShell.Run "%SYSTEMDRIVE%\sources\setup.exe /wds /noreboot", 0, true Set fso = CreateObject("Scripting.FileSystemObject") if fso.FileExists(unattendFile) = false then wscript.echo "Не удается найти файл автоматической установки" else 'Чтение файла автоматической установки и замена соответствующих переменных Set unattendFileObject = fso.OpenTextFile(unattendFile, 1) strContents = unattendFileObject.ReadAll strContents = Replace(strContents, "%OU%", OU) strContents = Replace(strContents, "%COMPUTERNAME%", computerName) unattendFileObject.Close 'Запись обновленного содержимого в файл автоматической установки Set unattendFileObject = fso.OpenTextFile(unattendFile, 2) unattendFileObject.Write(strContents) unattendFileObject.Close End If |
|
Отправлено: 22:49, 24-08-2013 | #3 |
Пользователь Сообщения: 116
|
Профиль | Отправить PM | Цитировать Мой вариант:
Option Explicit Dim answer, answer2, answer3, answer4, answer5, answer6, computerName, domainAdminPass, domainName, domainAdminUsername, RegisteredOrganization, OU, unattendFile, WshShell, fso, unattendFileObject, strContents unattendFile = "C:\Windows\Panther\unattend.xml" Set WshShell = WScript.CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") Do While answer <> vbYes computerName = InputBox("Введите имя компьютера :", "Computer Name") answer = MsgBox("correct?" & vbCrLf & "Computer Name: " & computerName, vbYesNo, "Name") Loop Do While answer6 <> vbYes OU = InputBox("Введите различающееся имя нужного подразделения(OU=MyOU,DC=Domain,DC=com) :", "Подразделение") answer6 = MsgBox("correct?" & vbCrLf & "различающееся имя нужного подразделения(OU=MyOU,DC=Domain,DC=com): " & OU, vbYesNo, "OU") Loop Do While answer4 <> vbYes domainName = InputBox("Введите имя домена :", "Domain") answer4 = MsgBox("correct?" & vbCrLf & "Domaine : " & domainName, vbYesNo, "Domain") Loop Do While answer3 <> vbYes domainAdminUsername = InputBox("Пользоваель to join domain :", "User Name") answer3 = MsgBox("correct?" & vbCrLf & "user : " & domainAdminUsername, vbYesNo, "username") Loop Do While answer2 <> vbYes domainAdminPass = InputBox("Пароль to join domain :", "Domain Admin Password") answer2 = MsgBox("correct?" & vbCrLf & "Domain Admin Password: " & domainAdminPass, vbYesNo, "Password") Loop Do While answer5 <> vbYes RegisteredOrganization = InputBox("Организация :", "Название организации") answer5 = MsgBox("correct?" & vbCrLf & "Название организации: " & RegisteredOrganization, vbYesNo, "RegisteredOrganization") Loop WshShell.Run "%SYSTEMDRIVE%\sources\setup.exe /noreboot", 0, true If fso.FileExists(unattendFile) = False Then wscript.echo "Не удается найти файл автоматической установки" Else 'Чтение файла автоматической установки и замена соответствующих переменных Set unattendFileObject = fso.OpenTextFile(unattendFile, 1) strContents = unattendFileObject.ReadAll strContents = Replace(strContents, "ReplaceMe1", computerName) strContents = Replace(strContents, "ReplaceMe6", OU) strContents = Replace(strContents, "ReplaceMe2", domainAdminPass) strContents = Replace(strContents, "ReplaceMe3", domainAdminUsername & "@" & domainName) strContents = Replace(strContents, "ReplaceMe4", domainName) strContents = Replace(strContents, "ReplaceMe5", RegisteredOrganization) unattendFileObject.Close 'Запись обновленного содержимого в файл автоматической установки Set unattendFileObject = fso.OpenTextFile(unattendFile, 2) unattendFileObject.Write(strContents) unattendFileObject.Close End If ' Launch setup (will use the modified unattend.xml) 'WScript.Sleep 5000 'WshShell.Run "%WINDIR%\System32\oobe\windeploy.exe", 0, True <?xml version='1.0' encoding='utf-8'?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="windowsPE"> <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SetupUILanguage> <UILanguage>ru-RU</UILanguage> </SetupUILanguage> <InputLocale>en-US; ru-RU</InputLocale> <SystemLocale>ru-RU</SystemLocale> <UILanguage>ru-RU</UILanguage> <UserLocale>uk-UA</UserLocale> <UILanguageFallback>ru-RU</UILanguageFallback> </component> <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ImageInstall> <OSImage> <InstallFrom> <MetaData wcm:action="add"> <Key>/IMAGE/INDEX</Key> <Value>1</Value> </MetaData> </InstallFrom> <WillShowUI>OnError</WillShowUI> </OSImage> </ImageInstall> <UserData> <AcceptEula>true</AcceptEula> <FullName>User</FullName> <Organization>ReplaceMe5</Organization> </UserData> </component> </settings> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ComputerName>ReplaceMe1</ComputerName> <RegisteredOrganization>ReplaceMe5</RegisteredOrganization> <TimeZone>FLE Standard Time</TimeZone> </component> <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Identification> <Credentials> <Domain>ReplaceMe4</Domain> <Password>ReplaceMe2</Password> <Username>ReplaceMe3</Username> </Credentials> <JoinDomain>ReplaceMe4</JoinDomain> <DebugJoin>true</DebugJoin> <MachineObjectOU>ReplaceMe6</MachineObjectOU> </Identification> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <InputLocale>en-US; ru-RU</InputLocale> <SystemLocale>ru-RU</SystemLocale> <UILanguage>ru-RU</UILanguage> <UserLocale>ru-RU</UserLocale> </component> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <TimeZone>FLE Standard Time</TimeZone> <OEMInformation> <SupportPhone></SupportPhone> <Manufacturer>Sattva</Manufacturer> <Model>Unattended Windows 8 </Model> <SupportURL></SupportURL> </OEMInformation> <OOBE> <NetworkLocation>Work</NetworkLocation> <HideEULAPage>true</HideEULAPage> <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> <HideLocalAccountScreen>true</HideLocalAccountScreen> <ProtectYourPC>1</ProtectYourPC> <SkipMachineOOBE>true</SkipMachineOOBE> </OOBE> <WindowsFeatures> <ShowInternetExplorer>true</ShowInternetExplorer> <ShowWindowsMediaPlayer>true</ShowWindowsMediaPlayer> </WindowsFeatures> <UserAccounts> <LocalAccounts> <LocalAccount wcm:action="add"> <Password> <Value>YQBkAG0AaQBuADEANAAwADMAMQA5ADgANgBQAGEAcwBzAHcAbwByAGQA</Value> <PlainText>false</PlainText> </Password> <Name>Администратор</Name> <Group>Administrators</Group> </LocalAccount> </LocalAccounts> </UserAccounts> <AutoLogon> <Password> <Value>YQBkAG0AaQBuADEANAAwADMAMQA5ADgANgBQAGEAcwBzAHcAbwByAGQA</Value> <PlainText>false</PlainText> </Password> <Enabled>true</Enabled> <LogonCount>2</LogonCount> <Domain></Domain> <Username>Администратор</Username> </AutoLogon> <RegisteredOrganization></RegisteredOrganization> </component> </settings> <cpi:offlineImage cpi:source="wim:f:/unattended/windows_8/multiboot_usb_8gb-16gb_flash_v7.0/sources/install.wim#Windows 8 Enterprise (64-bit)" xmlns:cpi="urn:schemas-microsoft-com:cpi"></cpi:offlineImage> </unattend> |
Последний раз редактировалось sattva, 25-08-2013 в 15:52. Отправлено: 01:44, 25-08-2013 | #4 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Sattva, спасибо за отклик.
Только у меня все равно ничего не вылазит(( Правильно ли я делаю? Монтирую второй образ boot.wim с помощью dism, Далее копирую winpeshi.ini в c:\7work\mount\windows\wystem32 и domainOU.vbs в c:\7work\mount\sources Сохраняю образ Может надо файлы в install.wim интегрировать? И еще у меня пару вопросов возникло, я тут пытался сделать по одной статье, а точнее по указу одного чела. Он написал вот такой гайд: 1. Create C:\Sysprep.xml with strings to replace: EXAMPLE: <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ComputerName>_COMPUTERNAME_REPLACE_</ComputerName> <RegisteredOwner>SomePerson</RegisteredOwner> <RegisteredOrganization>SomeOrg</RegisteredOrganization> <TimeZone>Pacific Standard Time</TimeZone> </component> </settings> a. prompt the user for the values you want to specify (such as ComputerName) b. perform a string replace with those values in the C:\Windows\Panther\unattend.xml file (NOTE: not in C:\Sysprep.xml) c. launch windeploy.exe to start the setup process ' ----- Begin sample: C:\Scripts\EditUnattend.vbs ----- Option Explicit Dim answer, computerName, unattendFile, WshShell, fso, unattendFileObject, strContents unattendFile = "C:\Windows\Panther\unattend.xml" Set WshShell = WScript.CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") Do While answer <> vbYes computerName = InputBox("Enter the desired Computer Name:", "Computer Name") answer = MsgBox("Is this correct?" & vbCrLf & "Computer Name: " & computerName, vbYesNo, "Verify Name") Loop If fso.FileExists(unattendFile) = False Then wscript.echo "ERROR: Could not find the unattend file" Else 'Read the unattend file in and replace apprpriate variables Set unattendFileObject = fso.OpenTextFile(unattendFile, 1) strContents = unattendFileObject.ReadAll strContents = Replace(strContents, "_COMPUTERNAME_REPLACE_", computerName) unattendFileObject.Close 'Write the updated contents back to the unattend file Set unattendFileObject = fso.OpenTextFile(unattendFile, 2) unattendFileObject.Write(strContents) unattendFileObject.Close End If ' Launch setup (will use the modified unattend.xml) WScript.Sleep 5000 WshShell.Run "%WINDIR%\System32\oobe\windeploy.exe", 0, True ' ----- End sample: C:\Scripts\EditUnattend.vbs ----- sysprep.exe /oobe /generalize /unattend:C:\Sysprep.xml /quit 4. Modify the HKLM\System\Setup 'CmdLine' registry value to launch C:\Scripts\EditUnattend.vbs reg add HKLM\System\Setup /v CmdLine /t REG_SZ /d "cmd /c cscript //nologo C:\Scripts\EditUnattend.vbs" /f 5. Shutdown the system and capture the image using whatever imaging software you use Когда я прочел это я вообще запутлся, так как я до этого знал только autounattend.xml который лежит в корне диска. А тут появился еще и Sysprep.xml (который сиспрепят) и c:\windows\panther\unattend.xml. В чем отличия этих файлов? Как и когда какой файл вызывается? |
|
Последний раз редактировалось aldar, 27-08-2013 в 07:34. Отправлено: 07:19, 27-08-2013 | #5 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать После нескольких попыток всё-таки добился того, что теперь вылазит окошко с текстбоксом, правда не понял каким образом.
Но вот возникла следующая проблема. VBS скрипт не применяется к файлу ответов. Мне кажется, что система не находит файла unattend.xml. При этом не выдает ошибки, что файла не удаётся найти. Я пробовал и так и этак. Иногда вылазило уведомление о том, что файла unattend нет, а иногда не вылазило. Пробовал и скриптами sattva, и микрософтовсими - не получается. Виндовс не входит в домен и replaceme1 присваивается к имени компьютера. Один раз во время установки, а точнее после копирования диструбутива install.wim я успел нажать shift+f10. Включил дискпарт и обнаружил что диску куда был скопирован дистрибутив, присваивается букв E: , в то время как CD-rom берет букву D: , а system reserved взял C:. А в VBS скрипте явно указывается "C:\Windows\Panther\unattend.xml". Пробовал в скрипте менять букву диска на E: и на D: - всё так же ReplaceMe1 вместо имени компьютера. Если путь не проблема, то какие могут быть еще причины не присваивания файла значиний с vbs скрипта к файлу ответов? |
Отправлено: 07:33, 04-09-2013 | #6 |
Пользователь Сообщения: 116
|
Профиль | Отправить PM | Цитировать Цитата aldar:
у меня стояла зада полностью автоматизировать процесс разворачивания подготовленного образа, но все уперлось в имя компьютера... Поэтому делаю пока так: создаю в админке WDS - подготовленный ПК - присваиваю ему имя, а в файле ответов использую переменную %MACHINENAME% |
|
Отправлено: 23:34, 28-10-2013 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 R2 - Установка WDS | Baggurd | Windows Server 2008/2008 R2 | 5 | 12-02-2014 04:00 | |
WDS - Драйвера устройств после снятия Capture Image | MaleyDarc | Другие серверные продукты | 6 | 14-09-2012 17:05 | |
2008 R2 - Автоматическая установка приложений при помощи WDS + WSIM | BuTb | Windows Server 2008/2008 R2 | 3 | 19-05-2012 11:47 | |
[решено] "НЕ ВИДЕН" установочный образ (install image) на WDS сервере | tirex555 | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 3 | 19-03-2009 09:23 | |
установка модуля Image::Magick в perl | zic_t | Вебмастеру | 3 | 18-08-2005 20:27 |
|