
Как запустить скрипт cmd во время установки Windows где-то между началом фазы 3 и началом фазы 5? Мне нужно скопировать файлы, зависящие от оборудования, с USB-накопителя на диск C: до того, как сработает обнаружение оборудования. Я использую wmic, который работает в WinPE, для определения оборудования.
EDIT: Если кому интересно...
В Boot.Wim\Index2:
- Переименуйте setup.exe в usetup.exe
- Изменить Boot.Wim-Index:2-Root\Windows\system32\startnet.cmd
wpeinit start /w usetup.exe /unattend:yourfile.xml /noreboot do what you want here wpeutil reboot
Используйте это для управления файлами. Если вам нужно работать в Windows, добавьте свои скрипты в файл \windows\setup\scripts\SetupComplete.cmd.
Обратите внимание, что SetupComplete.cmd работает скрытно, поэтому убедитесь, что он работает без вашего вмешательства.
решение1
Согласно этомуСтатья Microsoft TechnetВы можете запустить пользовательский сценарий в конце Фазы 3, выполнив следующие действия:
Вы можете выполнить дальнейшие настройки после завершения установки Windows, добавив команды в файл %WINDIR%\Setup\Scripts\SetupComplete.cmd. Этот файл позволяет устанавливать дополнительные приложения, запускать пользовательские скрипты Windows (cscript/wscript) или вносить другие изменения в систему до входа пользователя в систему.
Команды в файле Setupcomplete.cmd выполняются с привилегиями локальной системы.
После установки Windows, но до появления экрана входа в систему, программа установки Windows ищет файл SetupComplete.cmd в каталоге %WINDIR%\Setup\Scripts\.
Если файл SetupComplete.cmd найден, он выполняется. В противном случае установка продолжается в обычном режиме. Программа установки Windows регистрирует действие в файле Setupact.log.
Вы не можете перезагрузить систему и возобновить выполнение SetupComplete.cmd.
Программа установки не проверяет коды выхода или уровни ошибок в скрипте после выполнения SetupComplete.cmd.
Функциональность Setupcomplete.cmd отличается от команд RunSynchronous и RunAsynchronous тем, что Setupcomplete.cmd запускается после завершения установки Windows, тогда как команды RunSynchronous и RunAsynchronous запускаются во время установки Windows.
Итак, любой скрипт, который вы хотите запустить, просто нужно добавить в файл "SetupComplete.cmd" и поместить в %WINDIR%\Setup\Scripts внутри вашего образа Windows. Процесс установки автоматически запустит его, если найдет там скрипт.
(Извините за копирование/вставку, но на самом деле там больше ничего нет.)
Редактировать
В качестве примечания: если файлы, которые вы копируете, являются файлами драйверов оборудования, вы можете просто добавить их либо в образ Windows PE, либо в сам образ Windows и не беспокоиться о скрипте. ВотСтатья Microsoft Technetкоторый расскажет вам, как это сделать. (Я не буду копировать/вставлять это, так как это слишком много.)
Если это просто другие общие файлы (изображения, документы и т. д.), вы также можете добавить их в любую папку в образе Windows. Вот как это сделать с помощью DSIM:Статья Microsoft TechnetСтатья относится к библиотеке Windows 8/8.1, но действия для Windows 7 те же самые.
Я бы избегал скрипта только для копирования файлов (если это все, что делает ваш скрипт). Я бы добавил файлы или драйверы в образ, и тогда вам не придется беспокоиться о том, что произойдет, если ваш скрипт по какой-то причине даст сбой.
Редактировать 2
Согласно вашему комментарию ниже и тому, что вы заявили, что используете WMIC во время WinPE для определения оборудования, вы можете добавить скрипт в WinPE, как подробно описано в этомСтатья Microsoft Technet. Я думаю, что пока еще слишком рано копировать файлы, но мне нужно будет проверить, чтобы знать наверняка. Я знаю, что добавил драйвер для сетевого интерфейса в образ WinPE, но это немного отличается от того, что делаете вы.
Однако, я думаю, что лучшим вариантом будет использовать Microsoft Deployment Toolkit (MDT) и настроить драйверы на основе профилей оборудования и/или марки/модели компьютера. Он разработан именно для такого типа сценариев и должен позволить вам настраивать, какие драйверы устанавливать, когда и где. Это может быть немного сложнее, чем просто использовать Windows AIK, но если ваши потребности в драйверах настолько специфичны, я думаю, вы получите лучшие результаты.
Учебные пособия, которым я следовал, когда впервые начал использовать MDT, можно найти здесь:
- WindowsNetworking.com — Развертывание Vista с использованием AIK- Хотя это ориентировано на Vista, большинство шагов для 7 такие же. В зависимости от того, насколько вы знакомы с AIK, вы можете перейти к части 24, в которой начинается обсуждение MDT.
- WindowsNetworking.com — Развертывание 7 с использованием AIK- Это почти продолжение предыдущей ссылки, поскольку он не рассматривает все детали первой, а только изменения между Vista AIK и 7 AIK. Раздел об управлении драйверами с помощью MDT начинается в части 23. Я думаю, что части 25 и 26 будут для вас самыми важными.
Я думаю, это даст вам лучший вариант для развертывания, чем использование скрипта, потому что я не думаю, что вы можете запустить пользовательский скрипт в тот момент, когда вы хотите его запустить. Надеюсь, это вам поможет.