Использование autounattend.xml для автоматизации установки Windows с помощью загрузчика Ventoy
В компании, в которой я работаю, нам иногда приходится создавать серверы, которые мы продаем клиентам. Часть этого процесса включает установку ОС, и раньше мы использовали Windows 10 Ent. Интернет вещей и Windows Server 2019. Теперь, с выпуском Windows 11 Ent. IoT в последнее время надеемся перейти на эту ОС.
В настоящее время у меня есть флэш-накопитель, который я использовал в качестве загрузчика Ventoy для хранения нескольких ISO (поскольку иногда нам все еще необходимо загружать эти другие операционные системы). Однако раньше нам приходилось вставлять только ключ продукта в ISO, а остальную часть процесса установки приходилось выполнять вручную. Помимо автоматизации разделения диска и места установки (которые я намеренно опустил в файле ответов), я хочу использовать autounattend и/или sysprep для достижения полностью автоматизированного процесса установки.
Проблема в том, что при загрузке этого ISO из Ventoy с файлом autounattend.xml на несколько секунд загружается только черный экран со сплошным курсором консоли, а затем возвращается в меню Ventoy. Это говорит мне о том, что он не распознает ISO как загрузочный. Я не вносил изменений в ISO, кроме добавления файла autounattend.xml в корень. Я не уверен, связано ли это с Windows 11 или, возможно, проблема где-то в другом месте. Я видел в Интернете, что предположительно вы можете использовать autounattend только с ISO (например, не используя такое программное обеспечение, как Rufus, для монтирования ISO на USB и размещения файла в корне USB). В WSIM ошибок проверки, по крайней мере, нет... В любом случае, вот мой файл автоотключения. Я изменил информацию о пользователе и ключ продукта по очевидным причинам. Любая помощь очень ценится.
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<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>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UILanguageFallback>en-US</UILanguageFallback>
<UserLocale>en-US</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>Central Standard Time</TimeZone>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideLocalAccountScreen>true</HideLocalAccountScreen>
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<NetworkLocation>Home</NetworkLocation>
<ProtectYourPC>3</ProtectYourPC>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
<UserAccounts>
<AdministratorPassword>
<PlainText>true</PlainText>
<Value></Value>
</AdministratorPassword>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Group>Administrators</Group>
<Name>User</Name>
<Password>
<PlainText>true</PlainText>
<Value>Password</Value>
</Password>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Deployment" 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">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>net accounts /maxpwage:unlimited</Path>
<WillReboot>Never</WillReboot>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Order>2</Order>
<Path>net user User /active:Yes</Path>
<WillReboot>Never</WillReboot>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" 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">
<SkipAutoActivation>true</SkipAutoActivation>
</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>
<JoinWorkgroup>WORKGROUP</JoinWorkgroup>
</Identification>
</component>
</settings>
<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">
<InputLocale>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UILanguageFallback>en-US</UILanguageFallback>
<UserLocale>en-US</UserLocale>
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
</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">
<Diagnostics>
<OptIn>false</OptIn>
</Diagnostics>
<DynamicUpdate>
<Enable>false</Enable>
<WillShowUI>OnError</WillShowUI>
</DynamicUpdate>
<UserData>
<AcceptEula>true</AcceptEula>
<ProductKey>
<Key>omitted</Key>
</ProductKey>
</UserData>
</component>
</settings>
</unattend>
1 ответ
Что ж, я нашел решение, которое работает, и, по сути, ответил на свой вопрос.
Я более подробно изучил документацию Ventoy и обнаружил, что у них есть поддержка автоматической установки (https://www.ventoy.net/en/plugin_autoinstall.html ).
В отличие от воссоздания нового ISO с файлом автоматической установки внутри, это включало только импорт файла .xml в каталог на USB-накопителе, указанный в конфигурации ventoy.json, и сопряжение его с желаемым образом .iso. Очень просто и, честно говоря, намного проще, чем стандартный метод, который, очевидно, не работает в сочетании с Ventoy.