Первоначально я разместил это в Переполнении стека, но мне сказали, что это может быть лучшее место для размещения этого вопроса, так что здесь;
Я создал небольшой скрипт, который автоматически перезагрузит компьютер в последовательность восстановления (Windows Recovery Environment). Вот мой код:
$testpath = test-path "bcdedit.txt"
if ($testpath -eq $true){
Remove-item "bcdedit.txt"
}
bcdedit | Out-File "bcdedit.txt"
foreach($line in Get-Content .\bcdedit.txt) {
if($line -match $regex){
if($line -like 'recoverysequence*') {
$variable = "{" + $line.Split('{')[-1]
}
}
}
bcdedit /bootsequence $variable
Remove-item "bcdedit.txt"
shutdown /r /t 1
Этот скрипт Powershell запускается из моего приложения Electron (фреймворк на основе Node.js). Это приложение работает на сотнях различных моделей компьютеров в день, собирает информацию об их оборудовании и сравнивает их с базой данных для получения UPC устройства в производственной среде.
Однако у меня есть эта функция, потому что я не мог найти способ сделать то, что я действительно хотел сделать. Я хотел, чтобы этот скрипт действительно перезагрузил компьютер и загрузился с USB-накопителя.EFI файл Перезагрузка в Windows Recovery Environment была решением, которое я реализовал, потому что оно представляет собой кнопку для загрузки на USB-накопитель. Я пишу здесь, потому что я действительно хотел бы исключить этот шаг и просто загрузиться прямо на флешку. Флэш-накопитель USB, на котором запущена программа, также будет содержать загрузочный.EFI файл
Теперь вопрос: как я могу написать код (в PowerShell, Electron или Node.js), который перезагружает компьютер и заставляет его загружаться с флэш-накопителя USB?
Я пытался выяснить, как сделать это с помощью bcdedit
, и не могу ничего найти, и я действительно не знаю других поисковых запросов, чтобы попытаться найти то, что мне нужно, я в недоумении.