Following an inspiring blog post from Duncan Epping located here it made me think about how I could find the CPU vs HAL information, a 5 minute mess around in the VI Toolkit produced the following script:

Connect-viserver MYVISERVER

$myCol = @()

ForEach ($VM in (Get-VM)){
$MyDetails = “” | select-Object Name, HAL, NumvCPU
$MYDetails.Name = $VM.Name
$Hal = Get-WmiObject -ComputerName
$VM.Name -Query “SELECT * FROM Win32_PnPEntity where ClassGuid = ‘{4D36E966-E325-11CE-BFC1-08002BE10318}’” | Select Name
$MYDetails.HAL = $Hal.Name
$MYDetails.NumvCPU = $VM.NumCPU
$myCol += $MYDetails}

$myCol

This will give you a list of your VM’s the HAL installed and the number of vCPU’s