I'm trying to use the Windows Management Instrumentation (WMI) Win32_Processor class to inventory the total number of physical processors installed in a server farm. However, WMI is reporting hyper-threaded processors as multiple processors. How can I tell WMI to report physical processors only?

Unfortunately, you can't because WMI isn't hyper-thread—aware. The only workaround I know of is to disable hyper-threading in the BIOS. My understanding is that Microsoft is aware of the problem.