Сценарии PowerShell в Windows, файл ответов для автоматической установки XML

1262
ztmcoder

Итак, у меня есть файл ответов для автоматической установки Windows 10. У меня есть части, где он пропускает экраны OOBE, включает учетную запись администратора и копирует профиль. Я пытаюсь настроить файл ответов для запуска сценария PowerShell для импорта меню «Пуск» из XML-файла, созданного мной при экспорте меню «Пуск». Файл находится на диске C образа, и путь проверен.

Однако, когда я добавляю эту команду Powershell в файл ответов и запускаю sysprep и перезагружаюсь, я при установке Windows получаю следующую ошибку: «Windows не удалось проанализировать или обработать файл ответов автоматической установки C: \ Windows \ Panther \ unattend.xml для передачи [ специализироваться]. Компонент или настройка, указанные в файле ответов, не существуют. '

Вот проблемный файл unattend.xml:

<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <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"> <AutoLogon> <Password> <Value>P@ssword</Value> <PlainText>true</PlainText> </Password> <Username>Administrator</Username> <Enabled>true</Enabled> <LogonCount>5</LogonCount> </AutoLogon> <StartTiles> <PromoteOEMTiles>false</PromoteOEMTiles> </StartTiles> <WindowsFeatures> <ShowInternetExplorer>true</ShowInternetExplorer> <ShowMediaCenter>false</ShowMediaCenter> <ShowWindowsMail>false</ShowWindowsMail> <ShowWindowsMediaPlayer>true</ShowWindowsMediaPlayer> </WindowsFeatures> <CopyProfile>true</CopyProfile> <DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet> </component> <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"> <FirstLogonCommands>  <RunSynchronousCommand wcm:action="add"> <Description>Set Powershell Execution Policy to Unrestricted</Description> <Path>powershell.exe Set-ExecutionPolicy Unrestricted -force</Path> <Order>3</Order> </RunSynchronousCommand>  <SynchronousCommand wcm:action="add"> <Order>4</Order> <CommandLine>powershell.exe Import-StartLayout –LayoutPath C:\Installs\StartMenu.xml –MountPath $env:SystemDrive\</CommandLine> <Description>Start Menu</Description> </SynchronousCommand>  </FirstLogonCommands> </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> <HideLocalAccountScreen>true</HideLocalAccountScreen> <HideEULAPage>true</HideEULAPage> <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> <HideOnlineAccountScreens>true</HideOnlineAccountScreens> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <SkipUserOOBE>true</SkipUserOOBE> <SkipMachineOOBE>true</SkipMachineOOBE> </OOBE> <UserAccounts> <AdministratorPassword> <Value>P@ssword</Value> <PlainText>true</PlainText> </AdministratorPassword> </UserAccounts> </component> </settings> <cpi:offlineImage cpi:source="wim:c:/users/tester/desktop/win10/sources/install.wim#Windows 10 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> </unattend> 

Вот мой последний хороший, работающий unattend.xml:

<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <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"> <WindowsFeatures> <ShowWindowsMail>false</ShowWindowsMail> <ShowInternetExplorer>true</ShowInternetExplorer> </WindowsFeatures> <CopyProfile>true</CopyProfile> <DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet> <AutoLogon> <Password> <Value>Password123!</Value> <PlainText>true</PlainText> </Password> <Username>Administrator</Username> <Enabled>true</Enabled> <LogonCount>5</LogonCount> </AutoLogon> <UserAccounts> <AdministratorPassword> <Value>Password123!</Value> <PlainText>true</PlainText> </AdministratorPassword> </UserAccounts> </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> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <HideOnlineAccountScreens>true</HideOnlineAccountScreens> <SkipMachineOOBE>true</SkipMachineOOBE> <SkipUserOOBE>true</SkipUserOOBE> <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> </OOBE> <WindowsFeatures> <ShowInternetExplorer>true</ShowInternetExplorer> <ShowWindowsMail>false</ShowWindowsMail> <ShowWindowsMediaPlayer>true</ShowWindowsMediaPlayer> </WindowsFeatures> <BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled> <UserAccounts> <AdministratorPassword> <Value>Password123</Value> <PlainText>Password123</PlainText> </AdministratorPassword> </UserAccounts> </component> </settings> <cpi:offlineImage cpi:source="wim:c:/users/tester/desktop/win10/sources/install.wim#Windows 10 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> </unattend> 

У меня есть команды PowerShell, установленные в файле ответов с тегом.

Также вот журналы, которые я извлек из C: \ Windows \ Panther после Sysprep ...

2018-07-23 10:38:29, Error [setup.exe] SMI data results dump: Source = Name: Microsoft-Windows-Deployment, Language: neutral, ProcessorArchitecture: amd64, PublicKeyToken: 31bf3856ad364e35, VersionScope: nonSxS, /settings/FirstLogonCommands  2018-07-23 10:38:29, Error [setup.exe] SMI data results dump: Description = Setting is not defined in this component.   2018-07-23 10:38:29, Error [0x060432] IBS The provided unattend file is not valid; hrResult = 0x80220001  2018-07-23 10:38:29, Error [0x060565] IBS Callback_Unattend_InitEngine:The provided unattend file [C:\Windows\Panther\unattend.xml] is not a valid unattended Setup answer file; hr = 0x1, hrSearched = 0x1, hrDeserialized = 0x0, hrImplicitCtx = 0x0, hrValidated = 0x1, hrResult = 0x80220001   2018-07-23 10:38:29, Error [0x0600c2] IBS Callback_Unattend_InitEngine:An error occurred while finding/loading the unattend file; hr = 0x1, hrResult = 0x80220001[gle=0x00000490] 
0
Эта ошибка не указывает на проблему с вашим сценарием powershell. Это указывает на проблему с вашим файлом автоматической установки. Пожалуйста, отправьте очищенный файл автоматической установки. Кроме того, соответствующие журналы расположены в каталоге c: \ windows \ panther, если я правильно помню. Appleoddity 6 лет назад 0
Кроме того, не публикуйте свой код и не отправляйте файл по ссылке. Скопируйте и вставьте его прямо в ваш пост, используя блоки кода. Appleoddity 6 лет назад 0
Какова бы ни была ошибка, она не позволит мне загрузиться в Windows, поэтому я не могу получить эти журналы. ztmcoder 6 лет назад 0
Что вы можете. Когда ошибка появляется на экране (или чаще всего во время настройки Windows), вы можете нажать shift-f10 или f8 и открыть окно команд. Там вы можете запустить блокнот или скопировать файлы на флэш-накопитель и т. Д. Вы также можете загрузить программу установки Windows и запустить командную строку (с помощью восстановления) или другой живой диск какого-либо типа. Appleoddity 6 лет назад 0
Хорошо, я сделаю это. Я попытался поставить свой код в нормальном режиме на вопрос, но не смог правильно отформатировать его, поэтому я просто поместил ссылку на него, а не на то, чтобы его было трудно прочитать из-за форматирования ... Вот ссылка на рабочий файл ответов, который работает. https://github.com/ztmurphy21/Windows-Unattend/blob/master/knowngood.xml ztmcoder 6 лет назад 0
Извините, я неправильно понял ваш пост. Я думал, что вы запускаете сценарий PowerShell и связаны с этим. Вы на самом деле связаны с файлом автоматической установки. Хорошо, я отредактировал ваше сообщение и добавил в него оба файла автоматической установки. Appleoddity 6 лет назад 0
Хорошо, я тоже внес некоторые изменения, я добавил ошибки из C: \ Windows \ Panther в исходное сообщение. ztmcoder 6 лет назад 0

1 ответ на вопрос

1
Appleoddity
2018-07-23 10:38:29, Error [setup.exe] SMI data results dump: Source = Name: Microsoft-Windows-Deployment, Language: neutral, ProcessorArchitecture: amd64, PublicKeyToken: 31bf3856ad364e35, VersionScope: nonSxS, /settings/FirstLogonCommands  2018-07-23 10:38:29, Error [setup.exe] SMI data results dump: Description = Setting is not defined in this component. 

Установка Windows указывает, что вы поместили FirstLogonCommandsблок " " в неправильный проход в файле unnattend.

Вы используете две разные структуры для запуска команды. Вы используете «RunSynchronousCommand» и «SynchronousCommand».

Во-первых, вы должны использовать Windows System Image Manager для создания файлов автоматической установки. Это обеспечит правильное форматирование.

Проблема здесь в том, что вы используете блок « RunSynchronousCommand », который работает во время прохода specialize или audUser. Предполагается, что он содержится в блоке «RunSynchronous».

Вы вставили блок « SynchronousCommand », который запускается во время прохода oobeSystem после первого входа пользователя в систему. Но вы положили его в специализацию.

Блок RunSynchronousCommand должен содержаться в блоке «RunSynchronous» и находиться на этапе «Specialize» или «audUser». Блок SynchronousCommand может находиться только в проходе oobeSystem. Объяснение проходов настройки установки Windows и их запуска см. Здесь: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-configuration-passes

Вам нужно принять решение, когда вы хотите, чтобы эти команды выполнялись, а затем правильно отформатировать файл автоматической установки, разместив команды в соответствующих местах. Опять же, диспетчер системных образов Windows не смог бы проверить этот файл.

Скорее всего, вы хотите использовать только «SynchronousCommand» во время прохода oobeSystem. Однако следует помнить, что Windows 10 не выполняет эти команды синхронно. Windows НЕ будет ждать завершения этих команд, прежде чем войти в систему пользователя, в отличие от того, что Microsoft указала в документации. Это новое для Windows 10.

Поэтому всякий раз, когда я щелкаю правой кнопкой мыши по «Нейтральному развертыванию Windows», он позволяет мне добавить его либо для специалиста, либо для пользователя-аудитора, а не для oobeSystem, которую я хочу добавить в систему OOBE, поскольку именно там должна быть синхронная команда. ztmcoder 6 лет назад 0
Вы немного запутались между этими двумя, одинаково названными компонентами. Существует «RunSynchronousCommand», который является частью блока «RunSynchronous» и компонента развертывания Windows, который вы пытаетесь добавить в oobeSystem, что невозможно. Затем есть «SynchronousCommand» в блоке «FirstLogonCommands», который является частью компонента Windows-Shell-Setup, о чем я говорю Appleoddity 6 лет назад 0
Хорошо, я вижу это сейчас. Собираюсь попробовать. ztmcoder 6 лет назад 0
Кажется, сейчас не ошибается. Но расположение меню «Пуск» не применяется. Будет ли это из-за того, что Windows не дожидается завершения команды? Также имеет ли значение, если команда требует прав администратора? ztmcoder 6 лет назад 0
Это работает сейчас. Пришлось изменить «Требуется ввод пользователя» на ложь. ztmcoder 6 лет назад 0