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-битный режим установки.

Другие вопросы по тегам