|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум 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 | |
|