19 April 2009

Detect HALs under WinPE (Vista) by Running Batch Script

It’s a lot of posts that explained how to detect HAL. Almost all of those solutions done in VB script. As well I’ve seen a lot of post about “problems’ running VB script under WinPE. So, one day I tried to create a batch file, that allows to detect a HAL under WinPE. I did all my tests under VistaPE 12 (I’ve used the VistaPE v.12 RC1).

Here is content of HAL_Detector.bat script:

@echo off
REM .
REM . - Advanced Configuration and Power Interface (ACPI) PC: ACPIPIC_UP
REM . - ACPI Uniprocessor PC: ACPIAPIC_UP
REM . - ACPI Multiprocessor PC: ACPIAPIC_MP
REM .
REM . Advanced Configuration and Power Interface (ACPI) PC
REM . - halacpi.dll (renamed to hal.dll)
REM . - ntkrnlpa.exe
REM . - ntoskrnl.exe
REM .
REM . ACPI Uniprocessor PC
REM . - halaacpi.dll (renamed to hal.dll)
REM . - ntkrnlpa.exe
REM . - ntoskrnl.exe
REM .
REM . ACPI Multiprocessor PC
REM . - halmacpi.dll (renamed to hal.dll)
REM . - ntkrpamp.exe (renamed to ntkrnlpa.exe)
REM . - ntkrnlmp.exe (renamed to ntoskrnl.exe)
REM .
REM ……………….. Explanation About Diferent HAL Versions ………………… ……..
REM .

SETLOCAL
SET PC-HAL=
SET NumberOfLogicalProcessors=
SET New-HAL=

For /F “Tokens=3 Delims= ” %%a in (’REG QUERY HKLM\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL000 /v HardwareID’) DO Set PC-HAL=%%a

IF %PC-HAL% == acpipic Set New-HAL=ACPI_Uniprocessor_PC
IF %PC-HAL% == acpiapic (
For /F %%a in (’@WMIC COMPUTERSYSTEM GET NumberOfLogicalProcessors /value^|find “NumberOfLogicalProcessors”‘) do Set %%a
)

IF %NumberOfLogicalProcessors% == Set New-HAL=HAL_NOT_DETECTED
IF %NumberOfLogicalProcessors% == 1 Set New-HAL=ACPI_Uniprocessor_PC
IF %NumberOfLogicalProcessors% == 2 Set New-HAL=ACPI_Multiprocessor_PC
IF %NumberOfLogicalProcessors% == 4 Set New-HAL=ACPI_Multiprocessor_PC

@echo Detected HAL: %New-HAL%
@echo Number of Logical Processors: %NumberOfLogicalProcessors%

endlocal


Bookmark and Share ITStuff.ca

No comments:

Post a Comment