В настоящее время я помогаю своей компании создать прототип автоматической установки Windows по сети. Я использую Server 2008r2 и службы развертывания Windows с Windows 7 в качестве ОС, устанавливаемой на клиентском компьютере. Все работает нормально, ЗА ИСКЛЮЧЕНИЕМ присоединения клиентского ПК к домену. DNS настроен правильно, клиентский компьютер уже предварительно настроен в Active Directory Computers как пользователь «Client1» с паролем «password». Я опубликовал свой xml-файл автоматической установки и соответствующий раздел файлов Panther / UnattendGC setupact.log и setuperr.log.
Setupact.log:
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: начало
2017-06-29 09:25:04, Info [DJOIN.EXE] Unattended Join: загрузка входных параметров ...
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: AccountData = [NULL]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: UnsecureJoin = [NULL]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: MachinePassword = [секрет не зарегистрирован]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: JoinDomain = [master.local]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: JoinWorkgroup = [NULL]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: Домен = [master.local]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: Имя пользователя = [Client1]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: Пароль = [секрет не зарегистрирован]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: MachineObjectOU = [NULL]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: DebugJoin = [false]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Автоматическое присоединение: DebugJoinOnlyOnThisError = [NULL]
2017-06-29 09:25:04, Информация [DJOIN.EXE] Unattended Join: проверка запуска служб автоматического запуска.
2017-06-29 09:25:04, Информация [DJOIN.EXE] Unattended Join: Присоединение к домену [master.local] ...
2017-06-29 09:25:04, Info [DJOIN.EXE] Unattended Join: вызов DsGetDcName для master.local ...
2017-06-29 09:25:04, Предупреждение [DJOIN.EXE] Автоматическое присоединение: Ошибка DsGetDcName: 0x2746, последняя ошибка - 0x0, повторите попытку через 5 секунд ... [[[Мое личное примечание: на этом этапе повторная попытка и отображает указанную выше ошибку еще много раз, прежде чем окончательно выйти]]]
2017-06-29 09:32:04, Ошибка [DJOIN.EXE] Автоматическое присоединение: сбой NetJoinDomain, код ошибки: [10054]
2017-06-29 09:32:04, Ошибка [DJOIN.EXE] Автоматическое присоединение: невозможно присоединиться; gdwError = 0x2746
2017-06-29 09:32:04, информация [DJOIN.EXE] Unattended Join: Exit, возвращая 0x0
Setuperr.log:
2017-06-29 09:32:04, Ошибка [DJOIN.EXE] Автоматическое присоединение: сбой NetJoinDomain, код ошибки: [10054]
2017-06-29 09:32:04, Ошибка [DJOIN.EXE] Автоматическое присоединение: невозможно присоединиться; gdwError = 0x2746
Unattend.xml:
<?xml version='1.0' encoding='utf-8'?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize" wasPassProcessed="true">
<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">
<AutoLogon>
<Password>*SENSITIVE*DATA*DELETED*</Password>
<Domain>master.local</Domain>
<Enabled>true</Enabled>
<LogonCount>5</LogonCount>
<Username>Client1</Username>
</AutoLogon>
<RegisteredOrganization>MyCompany</RegisteredOrganization>
<RegisteredOwner>MyCompany</RegisteredOwner>
<TimeZone>eastern standard time</TimeZone>
<ComputerName></ComputerName>
<ProductKey>*SENSITIVE*DATA*DELETED*</ProductKey>
</component>
<component name="Microsoft-Windows-DNS-Client" 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">
<Interfaces>
<Interface wcm:action="add">
<DNSServerSearchOrder>
<IpAddress wcm:action="add" wcm:keyValue="1">122.45.36.1</IpAddress>
</DNSServerSearchOrder>
<DisableDynamicUpdate>false</DisableDynamicUpdate>
<DNSDomain>master.local</DNSDomain>
<EnableAdapterDomainNameRegistration>true</EnableAdapterDomainNameRegistration>
<Identifier>Local Area Connection</Identifier>
</Interface>
</Interfaces>
<DNSDomain>master.local</DNSDomain>
<UseDomainNameDevolution>false</UseDomainNameDevolution>
<DNSSuffixSearchOrder>
<DomainName wcm:action="add" wcm:keyValue="1">master.local</DomainName>
</DNSSuffixSearchOrder>
</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>master.local</Domain>
<Password>*SENSITIVE*DATA*DELETED*</Password>
<Username>Client1</Username>
</Credentials>
<JoinDomain>master.local</JoinDomain>
<DebugJoin>false</DebugJoin>
</Identification>
</component>
</settings>
<settings pass="oobeSystem" wasPassProcessed="true">
<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">
<Display>
<ColorDepth>32</ColorDepth>
<DPI>96</DPI>
<HorizontalResolution>1280</HorizontalResolution>
<RefreshRate>60</RefreshRate>
<VerticalResolution>1024</VerticalResolution>
</Display>
<UserAccounts>
<AdministratorPassword>*SENSITIVE*DATA*DELETED*</AdministratorPassword>
<DomainAccounts>
<DomainAccountList wcm:action="add">
<Domain>master.local</Domain>
<DomainAccount wcm:action="add">
<Group>Domain Users</Group>
<Name>Client1</Name>
</DomainAccount>
</DomainAccountList>
</DomainAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>*SENSITIVE*DATA*DELETED*</Password>
<Description>MyCompany</Description>
<DisplayName>MyCompany</DisplayName>
<Name>MyCompany</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<TimeZone>eastern standard time</TimeZone>
<RegisteredOwner>MyCompany</RegisteredOwner>
<RegisteredOrganization>MyCompany</RegisteredOrganization>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
</component>
<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</InputLocale>
<SystemLocale>en-us</SystemLocale>
<UILanguage>en-us</UILanguage>
<UILanguageFallback>en-us</UILanguageFallback>
<UserLocale>en-us</UserLocale>
</component>
</settings>
<cpi:offlineImage cpi:source="catalog://51esm549353-6/reminst/wdsclientunattend/windows 7 professional_windows 7 professional.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi"></cpi:offlineImage>
</unattend>
Я уже пробовал это сделать, но ничего не вышло. Примечательно, что я не включил учетные данные, когда установил для UnsecureJoin значение true, потому что вы НЕ должны включать учетные данные при выполнении UnsecureJoin. Кроме того, я пробовал варианты UnsecureJoin = true с MachinePassword, установленным на пароль локальной учетной записи администратора этой машины, а также с пустым полем MachinePassword, и это ВСЕ ЕЩЕ не работало.
Может ли кто-нибудь помочь мне понять, почему клиентский компьютер вообще не присоединяется к домену? Кроме того, код ошибки DsGetDCName 0x2746 и код ошибки NetJoinDomain 10054, по-видимому, недокументированы, поэтому мы будем очень благодарны за любое понимание этих кодов ошибок?
Вот как я это делаю: в WDS есть две отдельные части файлов ответов, я обычно сохраняю их в отдельных файлах - бит winPE (который подключается к серверу, разделяет диск, копирует файлы на рабочую станцию, устанавливает небезопасное соединение) и Бит OOBE (устанавливает локальные пароли, локали, завершает присоединение к домену). Вы связываете PE-файл с машиной или устанавливаете его глобально, и вы связываете файл OOBE с образом в бите «Разрешить автоматическую установку».
Вот ссылка на мои разрозненные заметки на WDS
Вот мои файлы: PE.xml (для UEFI - вам нужно изменить разбиение диска для загрузки без UEFI):
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="amd64">
<WindowsDeploymentServices>
<Login>
<WillShowUI>OnError</WillShowUI>
<Credentials>
<Username>wdsinst</Username>
<Domain>beastquest.com</Domain>
<Password>AbCd1234</Password>
</Credentials>
</Login>
<ImageSelection>
<WillShowUI>OnError</WillShowUI>
<InstallImage>
<ImageGroup>Win10</ImageGroup>
<ImageName>Win10x64take5</ImageName>
<Filename>win10x64take5.wim</Filename>
</InstallImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>3</PartitionID>
</InstallTo>
</ImageSelection>
</WindowsDeploymentServices>
<DiskConfiguration>
<WillShowUI>OnError</WillShowUI>
<Disk wcm:action="add">
<CreatePartitions>
<CreatePartition wcm:action="add">
<Type>EFI</Type>
<Size>200</Size>
<Order>1</Order>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Size>128</Size>
<Type>MSR</Type>
</CreatePartition>
<CreatePartition wcm:action="add">
<Extend>true</Extend>
<Order>3</Order>
<Type>Primary</Type>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>FAT32</Format>
<Label>EFI</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
</ModifyPartition>
<ModifyPartition wcm:action="add">
<Order>2</Order>
<PartitionID>3</PartitionID>
<Format>NTFS</Format>
<Label>Windows</Label>
</ModifyPartition>
</ModifyPartitions>
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
</Disk>
</DiskConfiguration>
<ImageInstall>
<OSImage>
<InstallTo>
<PartitionID>3</PartitionID>
<DiskID>0</DiskID>
</InstallTo>
</OSImage>
</ImageInstall>
</component>
<component name="Microsoft-Windows-International-Core-WinPE" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="amd64">
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
</component>
</settings>
</unattend>
Измените детали изображения в соответствии с вашими изображениями.
и OOBE.xml: свяжите его с установочным образом, который вы указали выше (как разрешающий файл автоматической установки) :)
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<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>
<UnsecureJoin>true</UnsecureJoin>
</Identification>
</component>
</settings>
<settings pass="oobeSystem">
<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">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
</component>
</settings>
<cpi:offlineImage cpi:source="catalog:c:/win7-64bit/sources/install_windows 7 professional.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
Вам также необходимо предоставить некоторые разрешения для учетной записи WDSInst, чтобы она могла управлять учетными записями компьютеров в AD. Задайте подразделение, для которого вы хотите создать новые учетные записи компьютеров, в свойствах сервера WDS, а затем предоставьте делегированные разрешения wdsinst этому подразделению. В аккаунте потребуется:
Вы не можете использовать учетную запись администратора домена. вам нужно предоставить wdsinst как можно меньше разрешений, так как эти файлы ответов не являются супербезопасными (я думаю, что PE-файл использует TFTP).
Это работает для Win7 -> win10