Problem:
It is necessary to query Windows servers from Linux using Windows Management Instrumentation (WMI).
Solution:
Install the wmi client in Linux, follow these steps
1. Download wmi from www.atomicorp.com
wget http://www6.atomicorp.com/channels/atomic/centos/7/x86_64/RPMS/wmi-1.3.14-4.el7.art.x86_64.rpm --2019-02-06 18:36:16-- http://www6.atomicorp.com/channels/atomic/centos/7/x86_64/RPMS/wmi-1.3.14-4.el7.art.x86_64.rpm Connecting to 10.64.114.5:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 8075232 (7.7M) [application/x-rpm] Saving to: ‘wmi-1.3.14-4.el7.art.x86_64.rpm’ 100%[======================================================================================================================================================================>] 8,075,232 6.72MB/s in 1.1s 2019-02-06 18:36:17 (6.72 MB/s) - ‘wmi-1.3.14-4.el7.art.x86_64.rpm’ saved [8075232/8075232]
2. Install wmi using yum:
yum install wmi-1.3.14-4.el7.art.x86_64.rpm Loaded plugins: fastestmirror Examining wmi-1.3.14-4.el7.art.x86_64.rpm: wmi-1.3.14-4.el7.art.x86_64 Marking wmi-1.3.14-4.el7.art.x86_64.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package wmi.x86_64 0:1.3.14-4.el7.art will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================================================================================ Package Arch Version Repository Size ================================================================================================================================================================================================================ Installing: wmi x86_64 1.3.14-4.el7.art /wmi-1.3.14-4.el7.art.x86_64 36 M Transaction Summary ================================================================================================================================================================================================================ Install 1 Package Total size: 36 M Installed size: 36 M Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : wmi-1.3.14-4.el7.art.x86_64 1/1 Verifying : wmi-1.3.14-4.el7.art.x86_64 1/1 Installed: wmi.x86_64 0:1.3.14-4.el7.art Complete!
3. Test it
[root@aurlenserver ~]# wmic ? Usage: [-?|--help] [--usage] [-d|--debuglevel DEBUGLEVEL] [--debug-stderr] [-s|--configfile CONFIGFILE] [--option=name=value] [-l|--log-basename LOGFILEBASE] [--leak-report] [--leak-report-full] [-R|--name-resolve NAME-RESOLVE-ORDER] [-O|--socket-options SOCKETOPTIONS] [-n|--netbiosname NETBIOSNAME] [-W|--workgroup WORKGROUP] [--realm=REALM] [-i|--scope SCOPE] [-m|--maxprotocol MAXPROTOCOL] [-U|--user [DOMAIN\]USERNAME[%PASSWORD]] [-N|--no-pass] [--password=STRING] [-A|--authentication-file FILE] [-S|--signing on|off|required] [-P|--machine-pass] [--simple-bind-dn=STRING] [-k|--kerberos STRING] [--use-security-mechanisms=STRING] [-V|--version] [--namespace=STRING] [--delimiter=STRING] //host query Example: wmic -U [domain/]adminuser%password //host "select * from Win32_ComputerSystem"
Usage:
wmic -U user%password //host “query”
Example:
Remotely obtain the RAM of the Windows server:
Windows srver IP: 192.168.123.58
Windows Username: zabbixmonitor
Windows password: SuperPassword
wmic -U zabbixmonitor%SuperPassword //192.168.123.58 "select TotalPhysicalMemory from Win32_ComputerSystem" CLASS: Win32_ComputerSystem Name|TotalPhysicalMemory Windows2008R2srv|17179336704