- Compress SMB data in Windows 11 and Server 2022 - Mon, Oct 4 2021
- Install Windows 11 in a virtual machine - Tue, Sep 28 2021
- IE to Edge migration: Redirect legacy web apps to Internet Explorer - Tue, Sep 21 2021
WMI is a management technology that can be used for much more than reading system information. WMI enables you to run processes remotely, schedule tasks that have to start at particular times, reboot computers remotely, read event logs, and find out which applications are installed on local and remote computers.
Activate WMI ^
Before you can use WMI, you have to find out whether its service is running. This can be done with the following command:
sc query winmgmt
If the service is not running, you can launch it with this command:
sc start winmgmt
Whenever you want to access remote PCs, the Windows firewall can get in your way. To check if the firewall accepts inbound WMI queries, you can run this command:
netsh advfirewall firewall show rule name="windows management instrumentation (WMI-in)"
Checking whether Windows firewall allows inbound WMI
If the firewall blocks WMI access, you can enable the corresponding rule in the following way:
netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes
Enabling inbound WMI in Windows firewall
System query with msinfo32 ^
The msinfo32.exe utility has been part of the operating system for many Windows versions. The tool is commonly used for reading the configuration of the local computer. However, on its View menu, you’ll find the Remote Computer item. Because the tool doesn’t allow you to enter username and password, you have to launch it with sufficient credentials for the remote computer.
The output of msinfo32 can’t be configured; however, the tool offers extensive information about integrated system components or essential Windows settings. In many cases, msinfo32 should be sufficient to get the information you are looking for.
Getting detailed information with wmic ^
The number of parameters that wmic displays when you run it with the option /? are overwhelming. However, if you don’t want to exhaust the limits of the tool’s possibilities and just want to retrieve system information, you will quickly feel at home.
If you start wmic without parameters, it will switch to interactive mode, which you can recognize by its prompt “wmic:root\cli>.” With /node:[computername], you can now connect to a remote computer.
Remote connection with wmic
One useful aspect about this command is that it allows you to connect to multiple computers by entering a list of comma-separated computer names. If you want to access the remote computer with alternate credentials, you can submit username and password, as in the following command:
/node:[computername] /user:[username] /password:[password]
Once you are connected, you can read system information with the help of the wmic aliases. They encapsulate WMI classes and give them a name that is easier to remember. To display the long list of wmic aliases, you just have to enter /?. If you have found the component that interests you, you can navigate to the object’s properties with the help parameter.
For instance, since the get method is used to read information, you can display a list of available properties about the operating system with OS get /?.
Operating system properties
So, if you want to know when the system last booted, you would enter OS get LastBootUpTime.
Remote connection with wmic
Extensive outputs of the program are hard to read on the console. For this purpose, you can export the information to an HTML table (/format:htable) or to the CSV format (/format:csv) to read the data in a web browser or in Excel, respectively. For example:
dmachannel get /all /format:htable
It is important to note that practically all non-alphanumeric characters in the parameters of the wmic commands are interpreted as delimiters, so you have to enclose a computer name such as “server-core” within double quotes.
The list below gives you an overview of all global switches and aliases.
wmic:root\cli>/? [global switches] <command> The following global switches are available: /NAMESPACE Path for the namespace the alias operate against. /ROLE Path for the role containing the alias definitions. /NODE Servers the alias will operate against. /IMPLEVEL Client impersonation level. /AUTHLEVEL Client authentication level. /LOCALE Language id the client should use. /PRIVILEGES Enable or disable all privileges. /TRACE Outputs debugging information to stderr. /RECORD Logs all input commands and output. /INTERACTIVE Sets or resets the interactive mode. /FAILFAST Sets or resets the FailFast mode. /USER User to be used during the session. /PASSWORD Password to be used for session login. /OUTPUT Specifies the mode for output redirection. /APPEND Specifies the mode for output redirection. /AGGREGATE Sets or resets aggregate mode. /AUTHORITY Specifies the <authority type> for the connection. /?[:<BRIEF|FULL>] Usage information. For more information on a specific global switch, type: switch-name /? The following alias/es are available in the current role: ALIAS - Access to the aliases available on the local system BASEBOARD - Base board (also known as a motherboard or system board) management. BIOS - Basic input/output services (BIOS) management. BOOTCONFIG - Boot configuration management. CDROM - CD-ROM management. COMPUTERSYSTEM - Computer system management. CPU - CPU management. CSPRODUCT - Computer system product information from SMBIOS. DATAFILE - DataFile Management. DCOMAPP - DCOM Application management. DESKTOP - User's Desktop management. DESKTOPMONITOR - Desktop Monitor management. DEVICEMEMORYADDRESS - Device memory addresses management. DISKDRIVE - Physical disk drive management. DISKQUOTA - Disk space usage for NTFS volumes. DMACHANNEL - Direct memory access (DMA) channel management. ENVIRONMENT - System environment settings management. FSDIR - Filesystem directory entry management. GROUP - Group account management. IDECONTROLLER - IDE Controller management. IRQ - Interrupt request line (IRQ) management. JOB - Provides access to the jobs scheduled using the schedule service. LOADORDER - Management of system services that define execution dependencies. LOGICALDISK - Local storage device management. LOGON - LOGON Sessions. MEMCACHE - Cache memory management. MEMORYCHIP - Memory chip information. MEMPHYSICAL - Computer system's physical memory management. NETCLIENT - Network Client management. NETLOGIN - Network login information (of a particular user) management. NETPROTOCOL - Protocols (and their network characteristics) management. NETUSE - Active network connection management. NIC - Network Interface Controller (NIC) management. NICCONFIG - Network adapter management. NTDOMAIN - NT Domain management. NTEVENT - Entries in the NT Event Log. NTEVENTLOG - NT eventlog file management. ONBOARDDEVICE - Management of common adapter devices built into the motherboard (system board). OS - Installed Operating System/s management. PAGEFILE - Virtual memory file swapping management. PAGEFILESET - Page file settings management. PARTITION - Management of partitioned areas of a physical disk. PORT - I/O port management. PORTCONNECTOR - Physical connection ports management. PRINTER - Printer device management. PRINTERCONFIG - Printer device configuration management. PRINTJOB - Print job management. PROCESS - Process management. PRODUCT - Installation package task management. QFE - Quick Fix Engineering. QUOTASETTING - Setting information for disk quotas on a volume. RDACCOUNT - Remote Desktop connection permission management. RDNIC - Remote Desktop connection management on a specific network adapter. RDPERMISSIONS - Permissions to a specific Remote Desktop connection. RDTOGGLE - Turning Remote Desktop listener on or off remotely. RECOVEROS - Information that will be gathered from memory when the operating system fails. REGISTRY - Computer system registry management. SCSICONTROLLER - SCSI Controller management. SERVER - Server information management. SERVICE - Service application management. SHADOWCOPY - Shadow copy management. SHADOWSTORAGE - Shadow copy storage area management. SHARE - Shared resource management. SOFTWAREELEMENT - Management of the elements of a software product installed on a system. SOFTWAREFEATURE - Management of software product subsets of SoftwareElement. SOUNDDEV - Sound Device management. STARTUP - Management of commands that run automatically when users log onto the computer system. SYSACCOUNT - System account management. SYSDRIVER - Management of the system driver for a base service. SYSTEMENCLOSURE - Physical system enclosure management. SYSTEMSLOT - Management of physical connection points including ports, slots and peripherals, and proprietary connections points. TAPEDRIVE - Tape drive management. TEMPERATURE - Data management of a temperature sensor (electronic thermometer). TIMEZONE - Time zone data management. UPS - Uninterruptible power supply (UPS) management. USERACCOUNT - User account management. VOLTAGE - Voltage sensor (electronic voltmeter) data management. VOLUME - Local storage volume management. VOLUMEQUOTASETTING - Associates the disk quota setting with a specific disk volume. VOLUMEUSERQUOTA - Per user storage volume quota management. WMISET - WMI service operational parameters management. For more information on a specific alias, type: alias /? CLASS - Escapes to full WMI schema. PATH - Escapes to full WMI object paths. CONTEXT - Displays the state of all the global switches. QUIT/EXIT - Exits the program. For more information on CLASS/PATH/CONTEXT, type: (CLASS | PATH | CONTEXT) /?