Inno Setup - bcdedit не работает
Мне нужно отправить команду:
bcdedit /set {default} recoveryenabled No
но это не работает с Inno Setup.
Я попытался, как показано ниже:
[Setup]
PrivilegesRequired=admin
[Run]
Filename: "{cmd}"; Parameters: "/c ""bcdedit.exe /set recoveryenabled No""";
Но я все еще вижу No
не применяется Как вы можете видеть ниже, это все еще остается Yes
, Но когда я вручную делаю ту же команду из командной строки, она работает. Есть идеи, почему он не работает в Inno Setup? Я также управляю setup.exe
как администратор
C:\windows\system32>bcdedit /v
Windows Boot Manager
--------------------
identifier {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device partition=\Device\HarddiskVolume2
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale en-GB
integrityservices Enable
timeout 30
Windows Boot Loader
-------------------
device partition=C:
path \windows\system32\winload.efi
description Windows 8.1
locale en-GB
integrityservices Enable
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \windows
nx OptIn
bootmenupolicy Standard
quietboot Yes
1 ответ
Там может быть много причин. Сложно сказать, так как вы не предоставили много информации для отладки.
С помощью /K
вместо /C
это первый шаг, так как он будет держать cmd.exe
окно открыто, чтобы вы могли видеть, есть ли какие-либо сообщения об ошибках.
Когда я использую ваш [Run]
Запись раздела в тривиальном установщике я получаю:
"bcdedit.exe" не распознается как внутренняя или внешняя команда, работающая программа или командный файл.
В моей системе (и я полагаю, что это будет то же самое в вашей), это потому, что я использую 64-битную Windows и bcdedit.exe
в C:\Windows\System32
, Как Inno Setup в 32-битном приложении, он по умолчанию перенаправляется наC:\Windows\SysWOW64
(32-битная версия C:\Windows\System32
). И нет 32-битной версии bcdedit.exe
,
добавлять Flags: 64bit
заставить Inno Setup найти 64-битную версию bcdedit.exe
,
Кроме того, нет смысла бежать .exe
приложение через командный интерпретатор (cmd.exe
).
[Run]
Filename: "bcdedit.exe"; Parameters: "/set recoveryenabled No"; Flags: 64bit
Или используйте 64-битный режим установки.