This type of information is available in the WMI[^] classes. Most of what you want would be in the Win32_xxx classes. Using WMI from managed code is not well documented (IMHO) but it is possible.
----------------------------- In just two days, tomorrow will be yesterday.