Sunday 28 January 2024

A useful Windows System Information Utility for system repair, etc. (also runs under WinPE)

If you have booted to Windows PE (perhaps to automatically install Windows or you are running Strelec or HBCDPE) you may want to know certain things about the hardware in the system.

For instance, you may want to install Windows onto the SSD in the system, but Windows does not tell you which drive that is! 

You may need to install a special Mass Storage Disk driver so that you can access the hard disks within that system, but you don't know which Controller is in that system and hence which driver to install.

The developer of grubfm, A1ive, has made available on github a utility which you may find useful - called nwinfo.

There are both 32-bit and 64-bit versions available as well as a GUI version (gnwinfo) which can be run under Windows or WinPE. The CLI version (nwinfo) will run under WinPE and can display useful information.

K:\NWINFO>nwinfo_x64.exe /?
NWinfo CLI v0.9.5.0
Hardware information utility for Windows
Copyright (c) 2023 A1ive
Usage: nwinfo OPTIONS
  --format=FMT     Specify output format.
                   FMT can be 'YAML' (default), 'JSON' and 'LUA'.
  --output=FILE    Write to FILE instead of printing to screen.
  --cp=CODEPAGE    Set the code page of output text.
                   CODEPAGE can be 'ANSI' and 'UTF8'.
  --human          Display numbers in human readable format.
  --debug          Print debug info to stdout.
  --hide-sensitive Hide sensitive data (MAC & S/N).
  --sys            Print system info.
  --cpu            Print CPUID info.
  --net[=FLAG]     Print network info
                   FLAG can be 'ACTIVE' (print only the active network).
  --acpi[=SGN]     Print ACPI info.
                   SGN specifies the signature of the ACPI table,
                   e.g. 'FACP' (Fixed ACPI Description Table).
  --smbios[=TYPE]  Print SMBIOS info.
                   TYPE specifies the type of the SMBIOS table,
                   e.g. '2' (Base Board Information).
  --disk[=PATH]    Print disk info.
                   PATH specifies the path of the disk,
                   e.g. '\\.\PhysicalDrive0', '\\.\CdRom0'.
  --no-smart       Don't print disk S.M.A.R.T. info.
  --display        Print EDID info.
  --pci[=CLASS]    Print PCI info.
                   CLASS specifies the class code of pci devices,
                   e.g. '0C05' (SMBus).
  --usb            Print USB info.
  --spd            Print SPD info.
  --battery        Print battery info.
  --uefi           Print UEFI info.
  --shares         Print network mapped drives.
  --audio          Print audio devices.

A batch file can be made, which if run under WinPE, can provide useful information:

@echo off
nwinfo_x64.exe --smbios=3 | find "Desktop" > nul && Echo System is a Desktop PC
nwinfo_x64.exe --smbios=3 | find "Laptop" > nul && Echo System is a Laptop
nwinfo_x64.exe --smbios=3 | find "Notebook" > nul && Echo System is a Notebook
nwinfo_x64.exe --smbios=3 | find "Tablet" > nul && Echo System is a Tablet
nwinfo_x64.exe --sys | find "Computer Name"
nwinfo_x64.exe --sys | find "Firmware"
nwinfo_x64.exe --cpu | find "Brand"
echo Drive 0
nwinfo_x64.exe --no-smart --disk=\\.\PhysicalDrive0 | find "HW Name"
echo PCI ID of Mass Storage Controllers
nwinfo_x64.exe --pci=0106 | find "HWID"
echo Displays
nwinfo_x64.exe --display | find "Display Name:"
nwinfo_x64.exe --uefi | find "Secure Boot:"
nwinfo_x64.exe --uefi | find "Firmware Type:"
echo Audio
nwinfo_x64.exe --audio | find "Name:"
echo Battery
nwinfo_x64.exe --battery | find "AC Power:"
nwinfo_x64.exe --battery | find "Battery Status:"

WinPE under VirtualBox

Batch file run under Windows 10

For instance, to determine the drive type of disk0 (SSD or HDD) you could use:

nwinfo_x64.exe --no-smart --disk=\\.\PhysicalDrive0 | find "SSD:" > nul && echo Drive 0 is an SSD

You could also determine if the target system was a desktop or laptop, etc. or find it's model name and install the appropriate drivers.

Here are the nwinfo runtime files:

      1,235 LICENSE
     14,124 gnwinfo.ini
    147,968 libcdi.Win32.dll
    175,616 libcdi.x64.dll
     47,299 jep106.ids
     24,520 HwRwDrv.sys
     23,496 HwRwDrvx64.sys
  1,431,735 pci.ids
    725,878 usb.ids
     62,918 pnp.ids
     53,248 ryzenadjx64.dll
    183,296 nwinfo_x64.exe
    315,392 gnwinfo_x64.exe
     50,688 ryzenadj.dll
    158,208 nwinfo_x86.exe
    266,752 gnwinfo_x86.exe

Use gnwinfo for the graphical version which can also be run under WinPE - e.g. Strelec or HBCDPE.

gnwinfo from WinPE under VirtualBox

No comments:

Post a Comment