Hello Henriques,
if kix macro @CPU gives you wrong informations, you can get values with WMI.
 Code:
$strComputer = "."
$sQuery	= "select * From Win32_processor"

$objWMIService=GetObject('winmgmts:{impersonationlevel=impersonate}\\'+$strcomputer+'\root\cimv2')
$arrProcessors = $objWMiService.ExecQuery( $sQuery, , 16 )


for each $processor in $arrProcessors
	"name           : " $processor.name ?
	"Architecture   : " $processor.AddressWidth " bits" ?
	"current freq   : " $processor.CurrentClockSpeed " MHz" ?
	"maximum freq   : " $processor.MaxClockSpeed " MHz" ?
	"nb of cores    : " $processor.NumberOfCores ?
	"actives cores  : " $processor.NumberOfEnabledCore ?
	"logical cores  : " $processor.NumberOfLogicalProcessors
	if ($processor.NumberOfEnabledCore <>  $processor.NumberOfLogicalProcessors)
		" (hyper-threading activated)" ?
	else
		?
	endif
next

On my workstation, the result is :
 Quote:
name : Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
Architecture : 64 bits
current freq : 1600 MHz
maximum freq : 1800 MHz
nb of cores : 4
actives cores : 4
logical cores : 8 (hyper-threading activated)

If you want to reuse the code,you can create a very simple function (supposing all processors are identicals).
 Code:
function getCPU()
	$strComputer = "."
	$sQuery	= "select * From Win32_processor"

	$objWMIService=GetObject('winmgmts:{impersonationlevel=impersonate}\\'+$strcomputer+'\root\cimv2')
	$arrProcessors = $objWMiService.ExecQuery( $sQuery, , 16 )

	for each $processor in $arrProcessors
		$getCPU = $processor.name
	next
endfunction
_________________________
Christophe