Menu Content/Inhalt
Accueil arrow Outils arrow Win32 CUI arrow GetWMIProperty

Syndication

Abonnez-vous à ce fil RSS pour être tenu informé des nouveautés de ce site.

GetWMIProperty Convertir en PDF Version imprimable Suggérer par mail
Écrit par Gilles LAURENT   
17-02-2009

Afficher la valeur d'une propriété WMI en ligne de commande

Le système de gestion de plateformes Microsoft Windows WMI est maintenant incontournable et indispensable à tout Administeur de parc informatique. Ce système basé sur des fournisseurs (providers) permet de contrôler et/ou d'interroger divers paramètres du système d'exploitation, que celui-ci soit local ou distant. Ce système de gestion peut être utilisé à partir de plusieurs langages (C, C++, .NET, Powershell ...) et également en scripting (Perl, VBScript, JScript, ...) via les interfaces COM. Il existe également, depuis Windows XP, une implémentation en mode Console de ce système : WMIC. Cette console permet à tout administrateur de réaliser divers opérations WMI en ligne de commande.  Toutefois, l'inconvénient majeur est qu'il n'est pas possible d'utiliser la console WMIC dans un script d'ouverture de session car celle-ci nécessite d'être exécutée sous l'autorité de l'administrateur local. C'est donc dans un but de simplification que je me suis lancé dans le développement de l'outil GetWMIProperty pour les besoins d'un client. Cet outil permet d'une part de s'exécuter sous l'autorité d'un utilisateur lambda facilitant ainsi la récupération d'une propriété WMI et d'autre part d'être compatible avec la plateforme Windows 2000, celle-ci étant également la cible.

Note: Il est important de noter que l'outil similaire wmisu écrit par Michel Claveau [MVP] permet de réaliser les mêmes opérations. Vous trouverez ici l'annonce officielle de l'auteur Postée sur le Forum Microsoft Scripting. Contrairement à GetWMIProperty, wmisu s'appuie sur le Framework .NET

Un exemple permettant de récupérer le nom du bios de la machine locale :

WSH D:\Test> ' lecture du nom du bios de la machine locale                      
WSH D:\Test> @GetWMIProperty -class Win32_Bios -property Name                   
Insyde Software MobilePRO BIOS Version 4.00.00                                  
                                                                                

Historique:

Version 1.0.0.6 - 20140701
                      - Customer request*
                        Support du tiret '-' ( ANSI code 0x2d ) comme séparateur

Version 1.0.0.5 - 20120501
                      - Ajout de l'argument -privilege permettant de spécifier les privilèges présents dans le
                        jeton (token) utilsateur à activer ou désactiver. Cet argument est nécessaire pour être
                        en mesure, par exemple, de lire les évènements du journal "Sécurité". Dans ce cas
                        la syntaxe à utiliser sera :  -privilege "Security". La liste des privilèges peut être
                        consultée sur le MSDN.

Version 1.0.0.4 - 20120426
                      - Modification du mode de traitement de la requête WMI. La requête est maintenant
                        exécutée en mode asynchrone (wbemFlagReturnImmediately). Ceci permet de limiter
                        la consommation de ressources système pouvant provoquer un crash lors de requêtes
                        retournant un volume important de données comme par exemple l'interrogation de la
                        classe WMI Win32_NTLogEvent

Version 1.0.0.3 - 20120317
                      - Correction d'une erreur de dépassement de capacité (buffer overflow). Cette erreur n'est
                        détectée que sous Windows Vista et versions supérieures grâce à la fonction DEP (Data
                        Execution Prevention). Cette mise à jour est donc fortement conseillée

Version 1.0.0.2 - 20111228
                      - Ajout de l'argument -delimiter permettant de spécifier un délimiteur pour séparer
                        les valeurs de propriété. Le délimiteur par défaut est maintenant le caractère ";"

Version 1.0.0.1 - 20090218
                      - Première Release Publique

Plateformes supportées:
Windows 2000 et versions supérieures

Usage:
GetWMIProperty <options>

Aide en ligne:
GetWMIProperty v1.0.0.6 (c) 2009-2014 Gilles LAURENT
Gets a WMI property (or set of properties) from command line
Usage : GetWMIProperty <options>

Options:
-namespace      <namespace>  Specifies the WMI namespace, default to root\cimv2
-class               <class>           Specifies the name of a class to obtain data from
-property          <property>       Specifies a property (or set of properties) to retrieve
-filter               <filter>            Specifies a WHERE clause (WQL) to use as a filter
-list                                        Display the property name with the property value
-delimiter         <delimiter>      Specifies a character or string to use as delimiter
-privilege         <privilege>       Specifies a privilege (or set of privileges) to grant

Examples:
GetWMIProperty -namespace root\cimv2
GetWMIProperty -namespace root\default
GetWMIProperty -class Win32_Bios
GetWMIProperty -class Win32_Process -list
GetWMIProperty -class Win32_Process -property Name,Handle
GetWMIProperty -class Win32_Process -property Name -filter "HandleCount>500"
GetWMIProperty -class Win32_DiskDrive -property Capabilities -list

Téléchargement:
Guide PDF: -
Archive: GetWMIProperty.zip

Dernière mise à jour : ( 01-07-2014 )
 
< Précédent   Suivant >