Defina o script de inicialização no WinPE para mostrar em qual modo o PC foi inicializado

1

Olá pessoal,

Estou tentando fazer uma iso do WinPE e testar se ela foi inicializada no modo BIOS ou UEFI. Atualmente, posso testar isso com o seguinte comando:

reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType

Este comando retorna 0x1 se o PC for inicializado no modo BIOS ou 0x2 se o PC for inicializado no modo UEFI.

O Technet mostra um script para mostrar isso automaticamente depois que o WinPE foi inicializado adicionando isso ao startnet .cmd:

wpeutil UpdateBootInfo
for /f "tokens=2* delims=  " %%A in ('reg query HKLM\System \CurrentControlSet\Control /v PEFirmwareType') DO SET Firmware=%%B
:: Note: delims is a TAB followed by a space.
if %Firmware%==0x1 echo The PC is booted in BIOS mode.
if %Firmware%==0x2 echo The PC is booted in UEFI mode.

Mas quando inicializo o WinPE, o cmd mostra esse erro:

X:windows\system32>wpeinit UpdateBootInfo

X:\windows\system32>for /F "tokens=2* delims= " %A in ('reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') DO SET Firmware=%B 
echo was unexpected at this time.
X:\windows\system32>if ==0x1 echo The PC is booted in BIOS mode.
X:\windows\system32>_

Alguém pode me ajudar?

Muito obrigado!

    
por elgato 21.10.2015 / 15:14

2 respostas

0

Consegui consertar o script substituindo o espaço em branco na variável delims e colocando uma guia e um espaço reais em seu lugar.

wpeutil UpdateBootInfo
for /f "tokens=2* delims=    " %%A in ('reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') DO SET Firmware=%%B

if %Firmware%==0x1 echo The PC is booted in BIOS mode.
if %Firmware%==0x2 echo The PC is booted in UEFI mode.

** NOTA: ** Eu editei o script no notepad.exe para garantir a codificação correta. Uma cópia / colagem do código acima pode não funcionar.

    
por 24.03.2016 / 19:03
-1

Tive o mesmo problema porque eu estava literalmente copiando / colando o texto. Infelizmente, há (2) espaços após "delims" no exemplo do Technet. Altere o primeiro espaço para ser uma guia e isso deve corrigi-lo. Há até a nota mencionando isso; tem sido um longo dia. Não inclua os sinais maior / menor que abaixo "<" e ">".

para / f "tokens = 2 * delims=" %% A ....

    
por 11.01.2016 / 23:05