WMIC (Windows Management Instrumentation Command-line) est une extension WMI qui permet d’interroger ce dernier en ligne de commandes de Windows.
Ainsi, il est donc possible d’obtenir certaines informations de Windows en ligne de commandes ou intégrer ces commandes dans des scripts.
Voici quelques commandes utiles WMIC qui devrait intéresser les administrateurs, bidouilleurs et geek.
Table des matières
Introduction à wmic
wmic peut donc être appelé depuis une invite de commandes de Windows ou être intégré dans un script .cmd
wmic permet de lister des informations systèmes et/ou modifier les configurations de ces éléments.
La syntaxe est :
WMIC [global_switches] [/locale:ms_409] <alias> [options] [format]
La liste des éléments qui peuvent être manipulées est assez longue, on nomme ces éléments des alias.
Voici la liste des alias :
- ALIAS – Access local system aliases [CALL]
- BASEBOARD – information sur la carte mère
- BIOS – information sur le BIOS (Basic input/output services)
- BOOTCONFIG – La configuration de démarrage/boot
- CDROM – CD-ROM
- COMPUTERSYSTEM – Computer system [CALL/SET]
- CPU – CPU
- CSPRODUCT – Les informations de produits de l’ordinateur provenant de SMBIOS.
- DATAFILE – DataFiles [CALL]
- DCOMAPP – DCOM Applications.
- DESKTOP – User’s Desktop
- DESKTOPMONITOR – Desktop Monitor
- DEVICEMEMORYADDRESS – Device memory addresses
- DISKDRIVE – Physical disk drive
- DISKQUOTA – Les quotas et utilisation disques des volumes NTFS.[SET]
- DMACHANNEL – Direct memory access (DMA) channel
- FSDIR – Lister les dossiers du systèmes de fichiers [CALL]
- ENVIRONMENT – System environment settings [SET]
- GROUP – Les groupes utilisateurs [CALL]
- IDECONTROLLER – IDE Controlleur
- IRQ
- JOB – Les tâches planifiées.[CALL]
- LOADORDER – System services that define execution dependencies.
- LOGICALDISK – Les disques locaux [CALL/SET]
- LOGON – Les sessions ouvertures sur Windows.
- MEMCACHE – Le cache mémoire
- MEMLOGICAL – Gestion Mémoire système
- MEMPHYSICAL – Gestion Mémoire physique
- NETCLIENT – Gestion des clients réseaux
- NETLOGIN – Informations sur les utilisateurs identifiées sur le réseau.
- NETPROTOCOL – Protocoles Réseaux
- NETUSE – Les connexions réseaux actives.
- NIC – Interfaces de controlleur réseau (NIC – Network Interface Controller)
- NICCONFIG – Informations sur les interfaces réseaux. [CALL]
- NTDOMAIN – Information sur les domaines NT. [SET]
- NTEVENT – Informations sur les événements. (observateurs évènements)
- NTEVENTLOG – Les fichiers journaux de événements. (observateurs évènements) [CALL/SET]
- ONBOARDDEVICE
- OS – Informations sur le système d’exploitation [CALL/SET]
- PAGEFILE – Mémoire virtuelle (SWAP)
- PAGEFILESET – Gestion de pagination [SET]
- PARTITION – Les partitions de disque
- PORT – I/O ports
- PORTCONNECTOR – Les connecteurs physiques
- PRINTER – Périphériques d’impression [CALL/SET]
- PRINTERCONFIG – Configuration des périphériques d’impressions.
- PRINTJOB – La liste d’attente d’impression [CALL]
- PROCESS – Processus Windows [CALL]
- PRODUCT – Tout ce qui est lié à Windows Installer [CALL]
- QFE –
- QUOTASETTING – La configuration des quotas de disques. [SET]
- REGISTRY – Le registre de Windows [SET]
- SCSICONTROLLER – SCSI Controlleur [CALL]
- SERVER – Serveur information
- SERVICE – Service Windows [CALL]
- SHARE – Les ressources partagés[CALL]
- SOFTWAREELEMENT – Elements of a software product*
- SOFTWAREFEATURE – Subsets of SoftwareElement. [CALL]*
- SOUNDDEV – Les périphériques de sons
- STARTUP – Les programmes au démarrage de Windows.
- SYSACCOUNT – Les comptes systèmes
- SYSDRIVER –
- SYSTEMENCLOSURE – Physical system enclosure
- SYSTEMSLOT – Physical connection points including ports,
slots and peripherals, and proprietary connections points.
- TAPEDRIVE – Tape drives
- TEMPERATURE – Les températures
- TIMEZONE – Fuseau horaire
- UPS – Uninterruptible power supply (UPS)
- USERACCOUNT – Les comptes utilisateurs Windows [CALL/SET]
- VOLTAGE – Voltage sensor (electronic voltmeter) data
- VOLUME – Local storage volume [CALL/SET]
- VOLUMEQUOTASETTING – Associates the disk quota setting with a specific disk volume. [SET]
- MEMORYCHIP – Memory chip information.
- RDACCOUNT – Remote Desktop connection permission [CALL]
- RDNIC – Remote Desktop connection on a specific network adapter [CALL/SET]
- RDPERMISSIONS – Permissions to a specific Remote Desktop connection [CALL]
- RDTOGGLE – Turn Remote Desktop listener on or off remotely[CALL]
- RECOVEROS – Blue Screen Information [SET]
- SHADOWCOPY – Les versions précédentes de fichier (Shadow copy) [CALL]
- SHADOWSTORAGE – Shadow copy storage areas [CALL/SET]
- VOLUMEUSERQUOTA – Per user storage volume quotas [SET]
La manipulation des alias se fait à partir des options suivantes :
- LIST permet de lister le contenu de l’alias. Chaque contenu est contenu dans une propriété, on peut filtrer les données sur les propriétés.
- GET permet d’obtenir les données sur une ou plusieurs propriétés.
- SET modifie les données d’une propriétés, on peut filtrer la données à modifier avec WHERE, un peu comme les requêtes SQL.
- CREATE créé une nouvelle donnée.
- DELETE supprime une donnée.
Par exemple pour lister le contenu :
wmic SHADOWCOPY list
wmic PRODUCT list
Les options prennent des paramètres, par exemple l’option LIST peut prendre le paramètre full, brief ou free.
Pour obtenir l’aide, il faut utiliser le paramètre /? avec l’alias, de la manière suivante :
wmic OS /?
L’option get permet de lister que certaines entrées :
wmic path win32_bios wmic path win32_bios get biosversion, releasedate
Les formats
wmic gère plusieurs formats de sorties, le choix du format de sortie se fait avec le paramètre /format
Les formats de sorties possible de wmic :
CSV HFORM HMOF HTABLE HXML LIST RAWXML TABLE VALUE htable-sortby htable-sortby.xsl texttablewsys texttablewsys.xsl wmiclimofformat wmiclimofformat.xsl wmiclitableformat wmiclitableformat.xsl wmiclitableformatnosys wmiclitableformatnosys.xsl wmiclivalueformat wmiclivalueformat.xsl
Vous pouvez aussi utiliser l’option /output pour envoyer la sortie vers un fichier.
/output:CLIPBOARD permet d’envoyer la sortie dans le presse papier.
L’utilisation de > est aussi possible.
Voici quelques d’utilisations wmic
Exemples d’utilisation de commandes WMIC
Gestion des utilisateurs
Il est tout à fait possible de lister, ajouter ou modifier les utilisateurs de Windows à partir de wmic.
J’en avais déjà parlé sur la page : Comment activer le compte administrateur sur Windows 7, 8 et 10
Lister les utilisateurs Windows :
wmic useraccount
pour une liste plus complète avec tous les détails :
wmic useraccount list full
Renommer un utilisateur Windows :
wmic useraccount where name='nomutilisateur' rename nouveaunomutilisateur
Comme expliqué dans le lien précédent, vous pouvez verrouiller/déverrouiller, un utilisateur ou modifier l’expiration de mots de passe.
Pour ajouter un utilisateur, on peut utiliser la commande net user.
Ainsi pour ajouter un utilisateur et retirer l’expiration des mots de passe, on obtient :
net user nomutilisateur PASSWORD /add /comment:"Mon commentaire" /passwordchg:NO wmic useraccount where "name='nomutilisateur'" set passwordexpires=FALSE net localgroup "legroupedanslequelonajoutelutilisateur" utilisateur /add
Processus
wmic possède aussi des bibliothèques pour manipuler les processus de Windows.
Par exemple, pour lister les processus Windows en cours d’exécution :
wmic process get description,processid,parentprocessid,commandline /format:csv
Tuer un processus avec wmic depuis l’invite de commandes de Windows
wmic PROCESS WHERE NAME="nomprocessus.EXE" DELETE
Lister les services Windows :
wmic service list full | more
ou encore :
wmic service get name,processid,startmode,state,status,pathname /format:csv
Pour arrêter un service Windows :
WMIC SERVICE where caption='TELNET' CALL StopService
Programmes au démarrage de Windows
Voici la syntaxe wmic afin de pouvoir lister les programmes au démarrage de Windows :
wmic startup list full
Information disque
Lister tous les disques présents sur l’ordinateur :
WMIC LOGICALDISK where drivetype!=4 get deviceid, description, volumename
Informations sur l’ordinateur
Il est aussi possible d’obtenir des informations sur l’ordinateur, domaine et utilisateur, par exemple avec :
wmic computersystem list full
wmic computersystem get model,name,username,domain
Les informations du BIOS :
wmic path win32_bios wmic path win32_bios get biosversion, releasedate
Désinstaller une application MSI en invite de commandes
Vous pouvez désinstaller une application de type MSI Setup en invite de commandes.
L’article suivant explique comment faire : Désinstaller une application Windows en invite de commandes
Conclusion
Comme vous pouvez le voir, wmic est très complet et permet d’interroger tous les éléments du système et parfois les manipuler.
wmic est donc très pratique pour obtenir des informations précises en ligne de commandes et dans un script.