Menu Fermer

Tutoriel WMIC : les commandes les plus utile

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.

Tutoriel WMIC : les commandes les plus utile
Tutoriel WMIC : les commandes les plus utile

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
  • 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


ou encore :

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

Désinstaller une application Windows en invite de commandes
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.