In this day of multicore, multiprocessor systemboards, licensing becomes a little more complicated. Some packages are licensed per core, others per processor. Still others are licensed per n cores per processor. At any rate, Win32_Processor doesn’t return the number of processors, only the number of cores. Each processor does return its $_.SocketDesignation, so the count of unique SocketDesignation property values should correspond to the number of physical processor.
$processorCount = ((Get-WmiObject -ComputerName $myComputer -Query “select * from Win32_Processor”) | Group-Object -Property SocketDesignation).Count;
Mind you, on W2K3R2 at least, the actual value of each core’s SocketDesignation is next to useless. A known bug (addressed by a KB) causes WMI to report all the Sockets on the first processor except one, so your quad-core dual-proc board will have 7 cores on one processor and 1 on the other.