Для определения оборудования в NSIS , используют обычно HwInfo plug-in (а других просто нет...) (
http://nsis.sourceforge.net/HwInfo_plug-in )
Но возможности его весьма убоги. Есть ещё CPUFeatures, определяет массу параметров CPU (почему то кроме названия проца... )
И похоже, что другого, тем более универсального, инструментария - нет...
Кое что конечно можно получить с помощью API и выудить из реестра... Только это довольно-таки громоздко в коде.
Например, определяем сетевой адаптер и некоторые его параметры :
Код:

OutFile "LanDetect.exe"
SetPluginUnload alwaysoff
!define maxsize 4096
Section
System::Alloc ${maxsize}
pop $3
System::Call 'iphlpapi::GetAdaptersInfo(i r3r4, *l ${maxsize} r2)i.r1'
;MessageBox MB_OK "GetAdaptersInfo return is $1"
System::Call '*$4(i.r4,i,&t260.r5, &t132.r6, i.r7, l.r8)'
Math::Script "hex={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};"
Math::Script "s=''; a=r8; b=r7; #{b-->0,s=s+hex[a/16%16]+hex[a%16]+#[b>0,'-','']; a=a/256;}; r9=s;"
MessageBox MB_OK "Adapter name is $5$\ndesc $6$\naddr len $7$\naddr $8$\nMacAddr: $9"
System::Free 0
Math::Script ""
SectionEnd
Или вот хороший способ получить информацию о памяти :
Код:

OutFile "MemInfo.exe"
Section
System::Alloc 64
Pop $1
System::Call "*$1(i64)"
; Функция GlobalMemoryStatus позволяет получить информацию про текущее использование системой как физической, так и ;виртуальной памяти.
;Информация, возвращаемая функцией GetMemoryStatusEx, постоянно изменяется. Нет никакой гарантии, что два последовательных ;вызова этой функции вернут одинаковые значения.
System::Call "Kernel32::GlobalMemoryStatusEx(i r1)"
System::Call "*$1(i.r2, i.r3, l.r4, l.r5, l.r6, l.r7, l.r8, l.r9, l.r10)"
System::Free $1
; convert the Total Physical Memory which is in bytes to Mbytes
System::Int64Op $4 / 1048576
Pop $4
System::Int64Op $5 / 1048576
Pop $5
System::Int64Op $6 / 1048576
Pop $6
System::Int64Op $7 / 1048576
Pop $7
System::Int64Op $8 / 1048576
Pop $8
System::Int64Op $9 / 1048576
Pop $9
MessageBox MB_OK "Structure size: $2 bytes"
MessageBox MB_OK "Memory load: $3%"
MessageBox MB_OK "Total physical memory: $4 Mb"
MessageBox MB_OK "Free physical memory: $5 Mb"
MessageBox MB_OK "Total page file: $6 Mb"
MessageBox MB_OK "Free page file: $7 Mb"
MessageBox MB_OK "Total virtual: $8 Mb"
MessageBox MB_OK "Free virtual: $9 Mb"
SectionEnd
В то же время, для целей получения разнообразной информации, существует занятный Header
http://nsis.sourceforge.net/WMI_header
Возможности его широки и не объятны, только не понимает он к сожалению по русски.
К примеру, при определении сетевых адаптеров, видим сплошные кракозябры в описании...
Код:

OutFile WMI.exe
RequestExecutionLevel Admin
!include MUI2.nsh
!include WMI.nsh
!include LogicLib.nsh
!insertmacro MUI_LANGUAGE "English"
Section "test"
#List network adapters:
${WMIGetInfo} root\CIMV2 Win32_NetworkAdapter name callback_Function
SectionEnd
Function callback_Function
#$R0 = result number, $R1 = total results, $R2 = result name
detailprint "$R0/$R1=$R2"
FunctionEnd
Можно ли это как то исправить ?