Windows Management Instrumentation, or WMI, allows you to ask the computer about itself. The hardware, operating system, and other modules that make up a “computer” can be queried for more information. To access the different information, you do so through classes of the WMI system. For example, to find out how much memory a computer has you could run this from the command line:
[bash]WMIC computersystem get TotalPhysicalMemory[/bash]
To see the manufacturer and model of the computer registered in the BIOS, you could run:
[bash]WMIC computersystem get manufacturer
WMIC computersystem get model[/bash]
The information comes from the computersystem class of WMI.
Windows 10 Build 9879 removes 3 classes and introduces several more for MDM and more Windows information.
To list the WMI Classes in PowerShell, you can simply run:
[powershell]Get-WmiObject -list -recurse[/powershell]
WMI Classes removed
Win32_FloppyDrive
Win32_FloppyController
Win32_USBDevice
WMI Classes Added
MDM_AppInstallJob
MDM_Application
MDM_ApplicationFramework
MDM_ApplicationMinVersion
MDM_ApplicationSetting
MDM_BrowserSecurityZones
MDM_BrowserSettings
MDM_Certificate
MDM_CertificateEnrollment
MDM_Client
MDM_ConfigSetting
MDM_DeviceRegistrationInfo
MDM_EASPolicy
MDM_MgmtAuthority
MDM_RemoteApplication
MDM_RemoteAppUserCookie
MDM_Restrictions
MDM_RestrictionsUser
MDM_SecurityStatus
MDM_SideLoader
MDM_VpnApplicationTrigger
MDM_WebApplication
MDM_WirelessProfile
MDM_WirelessProfileXml
MDM_WNSChannel
MDM_WNSConfiguration
Win32_DeviceContainer
Win32_FolderRedirection
Win32_FolderRedirectionHealth
Win32_FolderRedirectionHealthConfiguration
Win32_FolderRedirectionUserConfiguration
Win32_HardwareCapabilityCompatStatus
Win32_InstalledDevice
Win32_InstalledDeviceHardwareId
Win32_InstalledProgram
Win32_InstalledProgramFile
Win32_InstalledProgramFramework
Win32_InstalledProgramUsage
Win32_InventoryMetadata
Win32_OfflineFilesBackgroundSync
Win32_OfflineFilesDiskSpaceLimit
Win32_OfflineFilesHealth
Win32_OfflineFilesMachineConfiguration
Win32_OfflineFilesPinInfo
Win32_PnPDeviceProperty
Win32_PnPDevicePropertyBinary
Win32_PnPDevicePropertyBoolean
Win32_PnPDevicePropertyBooleanArray
Win32_PnPDevicePropertyDateTime
Win32_PnPDevicePropertyDateTimeArray
Win32_PnPDevicePropertyReal32
Win32_PnPDevicePropertyReal32Array
Win32_PnPDevicePropertyReal64
Win32_PnPDevicePropertyReal64Array
Win32_PnPDevicePropertySecurityDescriptor
Win32_PnPDevicePropertySecurityDescriptorArray
Win32_PnPDevicePropertySint16
Win32_PnPDevicePropertySint16Array
Win32_PnPDevicePropertySint32
Win32_PnPDevicePropertySint32Array
Win32_PnPDevicePropertySint64
Win32_PnPDevicePropertySint64Array
Win32_PnPDevicePropertySint8
Win32_PnPDevicePropertySint8Array
Win32_PnPDevicePropertyString
Win32_PnPDevicePropertyStringArray
Win32_PnPDevicePropertyUint16
Win32_PnPDevicePropertyUint16Array
Win32_PnPDevicePropertyUint32
Win32_PnPDevicePropertyUint32Array
Win32_PnPDevicePropertyUint64
Win32_PnPDevicePropertyUint64Array
Win32_PnPDevicePropertyUint8
Win32_RDAllowListFileAssociation
Win32_RoamingProfileBackgroundUploadParams
Win32_RoamingProfileSlowLinkParams
Win32_RoamingProfileUserConfiguration
Win32_RoamingUserHealthConfiguration
Win32_TSGetIcon
Win32_UserStateConfigurationControls
(Hat tip to DeploymentResearch.com)