2015-10-23 6 views
0

мне нужно подать команду:Inno Setup - Bcdedit не работает

bcdedit /set {default} recoveryenabled No 

, но он не работает с программой установки Inno.

Я попытался, как показано ниже:

[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» не распознается как внутренней или внешней командой, исполняемой программой или пакетным файлом.

В моей системе (и я считаю, что это было бы то же самое на вас), это потому, что я бегу Windows 64-бит и bcdedit.exe в C:\Windows\System32. Как Inno Setup в 32-битном приложении, он по умолчанию gets redirected to 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-bit install mode.