WMI for all BIOS info

I’m still struggling with finding what computer attributes can be found with certain WMI classes.
I would like to find out a few things on my computers in the field.
1- does the chip have EPT (I know, I know EPT has been around for ages, however I’ve been had a few times because it wasn’t there)
2- is a chips VTx enabled

win32_bios and win32_computer system doesn’t contain this info.

WMI can only surface information that the underlying hardware provides, and that Windows passes along. The ComputerSystem and BIOS classes in particular are pretty old, dating back to Windows NT 4, and haven’t been significantly updated. That’s why they don’t contain that kind of detailed information. I’m not aware of anything else built into WMI natively that would get you that information, though. Doesn’t mean there isn’t something… just haven’t seen it myself.

It’s entirely possible that the manufacturer provides MOFs that extend WMI to provide additional classes or extend the existing classes to provide that additional information. But Microsoft usually leaves it up to the vendors to do that.

I’ve been told in the past that VTx is deliberately not exposed through WMI for security reasons, but I’m not sure what those reasons would be. That was an HP engineer who told me.

WMI doesn’t always keep up with advances. This is one of those cases. As far as I am aware you can’t pick up that information from WMI.

Win32_Bios has a characteristics property that lists a collection of numbers. Each integer corresponds to a characteristic. I gave meanings in PowerShell and WMI (listing 5.5) for the ones I could discover but some of them are implemented by the BIOS vendor and some by the machine vendor. You would have to check with your vendor if the attributes in which you were interested were included

thanks guys!

Is finding bios settings outside the scope of powershell then?

I know there are applications that check bios configurations, I presume they are using API calls then.

If there’s an API for it, then you can probably get to it from PowerShell (through some C# code and Platform Invoke, if nothing else.) The trick is figuring out what API works for your hardware; much of it is vendor-specific.