Computer System Information using WMI
Computer system info for the local computer can be returned using WMI. Here we will iterate through the Win32_ComputerSystem WMI class to check the available properties.
Some of the properties have been commented out below; those are either not supported by Windows XP (my test machine) or are collections that require iteration in their own right. Check the MSDN article for the Win32_ComputerSystem class (see above for link) to find out more information.
From MSDN:
The Win32_ComputerSystem WMI class represents a computer system running Windows.
Sample usage
Dim objWMI As Object
Dim computerSystems As Object
Dim computerSystem As Object
Set objWMI = GetWMIService
Set computerSystems = objWMI.ExecQuery("Select * from Win32_ComputerSystem")
For Each computerSystem In computerSystems
Debug.Print computerSystem.AdminPasswordStatus
'Debug.Print computerSystem.AutomaticManagedPagefile
Debug.Print computerSystem.AutomaticResetBootOption
Debug.Print computerSystem.AutomaticResetCapability
Debug.Print computerSystem.BootOptionOnLimit
Debug.Print computerSystem.BootOptionOnWatchDog
Debug.Print computerSystem.BootROMSupported
Debug.Print computerSystem.BootupState
Debug.Print computerSystem.Caption
Debug.Print computerSystem.ChassisBootupState
Debug.Print computerSystem.CreationClassName
Debug.Print computerSystem.CurrentTimeZone
Debug.Print computerSystem.DaylightInEffect
Debug.Print computerSystem.Description
'Debug.Print computerSystem.DNSHostName
Debug.Print computerSystem.Domain
Debug.Print computerSystem.DomainRole
Debug.Print computerSystem.EnableDaylightSavingsTime
Debug.Print computerSystem.FrontPanelResetStatus
Debug.Print computerSystem.InfraredSupported
Debug.Print computerSystem.InitialLoadInfo
Debug.Print computerSystem.InstallDate
Debug.Print computerSystem.KeyboardPasswordStatus
Debug.Print computerSystem.LastLoadInfo
Debug.Print computerSystem.Manufacturer
Debug.Print computerSystem.Model
Debug.Print computerSystem.Name
Debug.Print computerSystem.NameFormat
Debug.Print computerSystem.NetworkServerModeEnabled
'Debug.Print computerSystem.NumberOfLogicalProcessors
Debug.Print computerSystem.NumberOfProcessors
Debug.Print computerSystem.OEMLogoBitmap
'Debug.Print computerSystem.OEMStringArray
Debug.Print computerSystem.PartOfDomain
Debug.Print computerSystem.PauseAfterReset
'Debug.Print computerSystem.PCSystemType
Debug.Print computerSystem.PowerManagementCapabilities
Debug.Print computerSystem.PowerManagementSupported
Debug.Print computerSystem.PowerOnPasswordStatus
Debug.Print computerSystem.PowerState
Debug.Print computerSystem.PowerSupplyState
Debug.Print computerSystem.PrimaryOwnerContact
Debug.Print computerSystem.PrimaryOwnerName
Debug.Print computerSystem.ResetCapability
Debug.Print computerSystem.ResetCount
Debug.Print computerSystem.ResetLimit
'Debug.Print computerSystem.Roles
Debug.Print computerSystem.Status
Debug.Print computerSystem.SupportContactDescription
Debug.Print computerSystem.SystemStartupDelay
'Debug.Print computerSystem.SystemStartupOptions
Debug.Print computerSystem.SystemStartupSetting
Debug.Print computerSystem.SystemType
Debug.Print computerSystem.ThermalState
Debug.Print computerSystem.TotalPhysicalMemory
Debug.Print computerSystem.UserName
Debug.Print computerSystem.WakeUpType
Debug.Print computerSystem.Workgroup
Next computerSystem
End Function
Function GetWMIService() As Object
' http://msdn.microsoft.com/en-us/library/aa394586(VS.85).aspx
Dim strComputer As String
strComputer = "."
Set GetWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
End Function