Professional Documents
Culture Documents
Cet article a pour objectif d'aborder les principes de base de WMI et sa mise en uvre
sous Delphi.
I - Avant propos........................................................................................................................................................... 4
II - Introduction.............................................................................................................................................................4
III - Dfinitions diverses............................................................................................................................................... 5
III-A - Espace de nom............................................................................................................................................5
III-B - Chemin d'objet d'un espace de nom WMI...................................................................................................7
III-C - Chemin d'objet de classe............................................................................................................................ 7
III-D - Chemin d'objet d'instance............................................................................................................................7
III-D-1 - Complet............................................................................................................................................... 7
III-D-2 - Relatif...................................................................................................................................................8
III-D-3 - Relatif avec un simple nom................................................................................................................ 8
III-D-4 - Relatif avec de multiple valeur............................................................................................................8
III-D-5 - Relatif pour une classe singleton........................................................................................................8
III-E - Instance........................................................................................................................................................ 8
III-F - Provider........................................................................................................................................................ 8
III-G - Modes d'appel des mthodes..................................................................................................................... 9
III-G-1 - Mode synchrone..................................................................................................................................9
III-G-2 - Mode asynchrone................................................................................................................................9
III-G-3 - Mode semi-synchrone....................................................................................................................... 10
III-H - vnement................................................................................................................................................. 10
III-H-1 - Rception d'un vnement de WMI..................................................................................................11
III-H-2 - Rception d'vnements................................................................................................................... 11
III-H-2-a - Client d'vnement provisoire.................................................................................................. 12
III-H-2-b - Client d'vnement permanent.................................................................................................12
III-H-2-c - Mise disposition d'vnements et utilisation de clients standards......................................... 12
III-I - Authentification............................................................................................................................................ 12
III-J - Impersonation............................................................................................................................................. 13
III-J-1 - Utilisation de la base de registre pour dfinir le niveau d'usurpation d'identit..................................13
III-K - Windows Management Instrumentation Query Language.........................................................................13
III-L - Fichier MOF................................................................................................................................................14
IV - Meta-schmas.....................................................................................................................................................14
IV-A - Types de Classe CIM................................................................................................................................ 15
IV-A-1 - Classes abstraite (abstract class)..................................................................................................... 15
IV-A-2 - Classe statique..................................................................................................................................15
IV-A-3 - Classe dynamique.............................................................................................................................16
IV-A-4 - Classe d'association..........................................................................................................................16
IV-B - Proprits...................................................................................................................................................16
IV-C - Mthodes................................................................................................................................................... 16
IV-D - Trigger........................................................................................................................................................17
IV-E - Qualificateur de proprit WmiEventTrigger( data-item-name )............................................................ 17
IV-F - Indication.................................................................................................................................................... 17
IV-G - Rfrence.................................................................................................................................................. 17
IV-H - Schma......................................................................................................................................................17
IV-I - Qualificateurs...............................................................................................................................................18
IV-J - Quel genre d'information les qualificateurs fournissent-ils ?......................................................................18
IV-J-1 - Qualificateurs de classe.................................................................................................................... 18
IV-J-2 - Qualificateurs de proprit................................................................................................................ 18
IV-J-3 - Qualificateurs de mthode.................................................................................................................18
IV-K - Extension du schma................................................................................................................................ 19
IV-L - WMI Tester................................................................................................................................................. 19
IV-L-1 - Requte WQL....................................................................................................................................19
V - Paramtrage WMI et outils divers.......................................................................................................................20
V-A - Configurer les paramtres de WMI............................................................................................................ 20
V-A-1 - Accorder des autorisations des utilisateurs ou des groupes, et dfinir des niveaux
d'autorisation....................................................................................................................................................20
V-A-2 - Configurer l'enregistrement des erreurs............................................................................................ 20
V-A-3 - Effectuer une sauvegarde de l'espace de stockage.......................................................................... 20
V-A-4 - Modifier l'espace de noms de script.................................................................................................. 20
V-A-5 - Se connecter en tant qu'un autre utilisateur......................................................................................20
-2-
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
V-B - Outils........................................................................................................................................................... 20
V-C - WMI et ODBC............................................................................................................................................ 21
V-D - Contrles ActiveX additionnels...................................................................................................................21
V-E - WbemDump................................................................................................................................................ 21
V-F - WMIC.......................................................................................................................................................... 22
VI - Delphi.................................................................................................................................................................. 23
VI-A - Configurer la palette de composants Delphi 5.......................................................................................... 23
VI-B - Crer une application WMI........................................................................................................................23
VII - Interface IEnumVARIANT.................................................................................................................................. 23
VIII - Objet SWbemlocator.........................................................................................................................................24
VIII-A - ConnectServer......................................................................................................................................... 24
VIII-B - Security.................................................................................................................................................... 25
IX - Objet SWbemSecurity........................................................................................................................................ 25
X - Objet SWbemServices.........................................................................................................................................25
X-A - GET.............................................................................................................................................................26
X-B - InstancesOf................................................................................................................................................. 26
X-C - ExecQuery.................................................................................................................................................. 27
XI - Objet SWbemObject........................................................................................................................................... 27
XII - Objet SWbemObjectSet.....................................................................................................................................27
XIII - Objet SWbemXXXXXSet.................................................................................................................................. 28
XIV - Objet SWbemProperty......................................................................................................................................28
XV - Objet SWbemObjectPath.................................................................................................................................. 29
XVI - Objet SWbemDateTime....................................................................................................................................29
XVII - Objet ISWbemNamedValue.............................................................................................................................29
XVIII - Objet SWbemPrivilege................................................................................................................................... 30
XIX - Objet SwbemQualifier...................................................................................................................................... 30
XX - Objet SWbemMethod........................................................................................................................................ 31
XXI - Objet SWbemEventSource...............................................................................................................................31
XXII - Objet SWbemLastError................................................................................................................................... 31
XXII-A - Codes d'erreur........................................................................................................................................32
XXIII - Objet SwbemSink........................................................................................................................................... 32
XXIII-A - Cancel....................................................................................................................................................33
XXIII-B - vnements...........................................................................................................................................33
XXIV - Objet SWbemServicesEx...............................................................................................................................33
XXV - Objet SWbemObjectEx................................................................................................................................... 34
XXVI - Objet SWbemRefresher................................................................................................................................. 34
XXVII - Objet SWbemRefreshableItem..................................................................................................................... 34
XXVIII - Annexe......................................................................................................................................................... 34
XXVIII-A - Exemple.............................................................................................................................................. 35
XXVIII-B - Rfrences d'ouvrage......................................................................................................................... 35
XXIX - WMI, seconde partie......................................................................................................................................35
-3-
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
I - Avant propos
Test avec Delphi 5 sous XP pro.
Version 1.1
Dernire mise jour, le 06/07/2004
II - Introduction
Vous trouverez une introduction sur le principe de WMI ici.
Cet article contient de nombreux liens vers la documentation du SDK WMI.
WMI est bas sur la technologie COM, l'accs et la manipulation de WMI se font par l'intermdiaire des objets de
scripting SWbemxxxx qui encapsulent les appels COM et par certaines interfaces IWbemxxxx.
Web-Based Enterprise Management (WBEM) est une initiative de diffrents constructeurs afin de dvelopper des
moyens normaliss et non- propritaires permettant d'accder et de partager l'information lie l'infrastructure
(matriel et logiciel) d'un rseau d'entreprise.
-4-
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Chaque installation de WMI contient un espace de nom Root, qui contient uniquement d'autres espaces de nom.
L'espace de nom Root contient les espaces de nom Default, Security, CIMv2, et tous les espaces de nom dfinis
par l'utilisateur.
Exemple de classe : Win32_ComputerSystem dans l'espace de nom CIMV2 accessible via Root\CIMV2.
Toutes les classes dans un espace de nom doivent avoir un nom unique de classe, et des classes dans un espace
de nom ne peuvent pas tre drives dans un autre espace de nom, c'est pourquoi vous trouverez dupliques les
classes system, core, et les common class dans de multiples espaces de nom.
En d'autres termes, si vous voulez dfinir une classe Camion drive d'une classe Vhicule, la classe Vhicule doit
tre dfinie dans le mme espace de nom.
La plupart des classes que Windows gre rsident dans l'espace de nom root\CIMv2. Cependant, root\CIMv2 n'est
pas le seul espace de nom auquel vous devez prter attention, comme suggr sur le schma suivant.
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
D'autre part, le provider de la base de registre stocke ses dfinitions de classe dans l'espace de nom Root\Default.
Et le nouveau provider du serveur DNS de Windows 2003 stocke ses dfinitions de classe des ressources gres
dans l'espace de nom Root\MicrosoftDNS.
voir
III-D-1 - Complet
Un chemin complet d'objet d'instance ajoute le nom et la valeur d'une proprit de la classe un chemin complet
d'objet de classe.
\\Server\Namespace:Class.KeyName= KeyValue
-7-
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Exemple : "\\Machine\root\cimv2:Win32_Directory.Name="c:\windows\system32\wbem"
III-D-2 - Relatif
Un chemin d'instance relatif se rapporte une instance situe dans l'espace de nom courant sur le serveur courant.
Le chemin relatif comprend le nom de classe suivi des noms et des valeurs de cette instance.
MyClass.MyProp="e:"
III-E - Instance
Une instance reprsente un objet ou un lment du monde rel. Une instance est toujours cre partir d'une classe
reprsentant le template de l'objet rel. Par exemple, une instance de disque reprsente un disque rel et son
template est dfini par la classe Disk.
III-F - Provider
Un provider (fournisseur de donnes) est un objet COM qui agit en tant qu'intermdiaire entre WMI et un objet
gr. Au travers de WMI, une application peut demander et envoyer des informations vers l'objet gr. Il expose
les classes WMI.
Par exemple, une application peut modifier et rechercher des informations de la base de registre via WMI par
l'intermdiaire du provider nomm System Registry Provider.
Il existe plusieurs types de provider :
Provider d'instance
cf. classe __InstanceProviderRegistration
Provider de classe
cf. classe __ClassProviderRegistration
Provider de mthode
cf. classe __MethodProviderRegistration
Provider de proprits
-8-
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
SWbemServices.Delete
SWbemServices.ExecMethod
SWbemServices.Get
Toutes les mthodes de SwbemServices ne comportant pas le mot Async dans leur nom peuvent s'appeler en
mode synchrone en renseignant le plus souvent le paramtre iFlags avec la valeur wbemFlagReturnWhenComplete.
SWbemServices.AssociatorsOfAsync
SWbemServices.DeleteAsync
SWbemServices.ExecMethodAsync
SWbemServices.ExecNotificationQueryAsync
SWbemServices.ExecQueryAsync
SWbemServices.InstancesOfAsync
SWbemServices.ReferencesToAsync
SWbemServices.SubclassesOfAsync
-9-
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
SWbemServices.AssociatorsOf
SWbemServices.Delete
SWbemServices.ExecMethod
SWbemServices.ExecNotificationQuery
SWbemServices.ExecQuery
SWbemServices.Get
SWbemServices.InstancesOf
SWbemServices.ReferencesTo
SWbemServices.SubclassesOf
SWbemServices.Put
III-H - vnement
Les vnements de WMI sont des occurrences qui correspondent aux situations qui surviennent soit dans le monde
rel, soit lors de changements dans le rfrentiel CIM gr par le manager d'objet CIM (CIMOM , Common Information
Model Object Manager).
Aprs un vnement, une notification le concernant est gnre soit par un provider d'vnement, soit par le manager
d'objet CIM lui-mme. Les notifications sont fournies par le manager d'objet CIM un ou plusieurs destinataires
enregistrs connus comme clients d'vnements.
Les providers d'vnement envoient des notifications en rponse aux occurrences d'vnement, que des
clients soient ou non enregistrs.
Les clients d'vnement s'enregistrent pour recevoir des notifications sans savoir comment et par qui les
vnements et leurs notifications correspondantes sont fournis. Les clients s'enregistrent pour recevoir des
notifications en indiquant un filtre, cr en utilisant le langage d'interrogation WQL de WMI. La requte dcrit
les conditions dans lesquelles le client est configur pour recevoir une notification.
- 10 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
est une requte sous Windows NT et 2000 pour l'vnement intrinsque __InstanceCreationEvent' de la classe
d'vnement Win32_NTLogEvent.
Notez que le privilge SeSecurityPrivilege doit tre positionn.
La requte suivante
SELECT * FROM RegistryValueChangeEvent
WHERE Hive='HKEY_LOCAL_MACHINE' and
Keypath='SYSTEM\\ControlSet001\\Control' and
Valuename = 'CurrentUser'"
montre l'vnement extrinsque '__ RegistryValueChangeEvent' du provider de base de registre. Le script cre un
client provisoire en appelant la mthode SWbemServices.ExecNotificationQueryAsync, et reoit des vnements
seulement lorsque le script est excut.
Notez que cet appel est asynchrone et peut tre scuris seulement sous Windows Server 2003.
- 11 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
III-I - Authentification
L'authentification signifie qu'un processus s'identifie l'autre. Typiquement, l'authentification est une identification
par mot de passe.
Le client doit fournir des informations d'identification pour permettre aux serveurs de vrifier cette entit. Une fois que
l'identit est connue, l'application peut autoriser l'entit accder aux ressources du systme.
- 12 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
III-J - Impersonation
Le principe d'usurpation d'identit (impersonation en anglais) est local, et correspond au concept de dlgation,
lorsqu'il s'opre entre machines physiques diffrentes. Il dtermine les droits qu'un client accorde un serveur pour
appeler diffrents processus.
Comme l'emprunt d'identit (il s'agit de se faire passer pour quelqu'un d'autre, prtendre tre quelqu'un d'autre),
ce dispositif permet un processus serveur de s'excuter en utilisant les informations d'identification du client.
Cependant, la dlgation va plus loin en autorisant le processus serveur appeler d'autres ordinateurs au nom du
client.
L'usurpation d'identit est la capacit d'un thread de s'excuter dans un contexte de scurit qui est diffrent du
contexte du processus qui possde le thread. En s'excutant dans le contexte de scurit du client, le serveur est ,
un certain niveau, le client.
Le thread serveur emploie un token d'accs reprsentant les droits du client pour obtenir l'accs aux objets auxquels
le client a accs.
La principale raison de l'usurpation d'identit est d'effectuer des contrles d'accs afin d'tre excut avec l'identit
du client. Employer l'identit du client pour des contrles d'accs permet de rduire ou d'largir l'accs, selon ce que
le client a la permission de faire.
Par exemple, supposez qu'un serveur de fichiers possde des dossiers contenant des informations confidentielles
et que chacun de ces dossiers soit protg par un ACL. Pour empcher un client d'obtenir l'accs non autoris aux
informations dans ces dossiers, le serveur peut se faire passer pour le client avant d'accder aux dossiers.
voir
- 13 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
WQL fournit des moyens de choisir quelles proprits sont intressantes et il peut tre utilis pour rduire le nombre
de proprits retournes.
Il existe 3 types d'interrogations :
Data queries : retrouve des instances de classes et des informations concernant les associations
d'instances.
Schema queries : retrouve des dfinitions de classes et des informations concernant les associations de
schma.
Event queries : utilis par des clients d'vnements (temporaires ou permanents). Permet de filtrer les
vnements.
Certains oprateurs WQL ne peuvent tre utiliss qu'avec certains types d'interrogation, par exemple l'oprateur
LIKE ne peut tre utilis qu'avec des interrogations de type Data queries.
La requte suivante interroge le fichier Application de l'event log de Windows NT partir de toutes les instances
de Win32_NTLogEvent.
wmiObjectSet := wmiServices.ExecQuery('SELECT * FROM Win32_NTLogEvent WHERE Logfile = 'Application'',
'WQL',
wbemFlagReturnImmediately, nil);
Note : L'installation du produit SMS de Microsoft ajoute des oprateurs au langage WQL.
IV - Meta-schmas
Le mtaschma est une dfinition formelle du modle. Il dfinit les limites employes pour exprimer le modle, son
utilisation et sa smantique. UML est employ pour dfinir la structure du mtaschma.
Meta-schmas issue des spcifications de CIM V2.8.1
- 14 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
- 15 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Les classes statiques sont instancies comme les classes dynamiques. Cependant, elles sont stockes dans le
rfrentiel CIM. De mme, des instances de classe statiques sont recherches directement dans le rfrentiel CIM.
Elles n'emploient pas de Provider.
Vous pouvez identifier une classe statique en examinant les qualificateurs de classe. Cependant, la diffrence
des classes abstraite et dynamiques qui sont identifies par la prsence d'un qualificateur spcifique, les classes
statiques sont identifies par l'absence des qualificateurs Abstract et Dynamic.
L'utilisation la plus courante du type classe statique est la dfinition de classes systme (system classes). Les classes
statiques sont rarement employes dans des scripts WMI.
IV-B - Proprits
Les proprits sont des noms qui dcrivent une ressource gre. Les classes utilisent des proprits pour dcrire des
choses comme l'identit, la configuration, et l'tat d'une ressource gre. Par exemple les services (Win32_Service)
ont un nom, un nom d'affichage, une description, un type de dmarrage, et un statut.
Chaque proprit a un nom, un type, et des qualificateurs de proprit facultatifs.
Certaines proprits peuvent tre des cls permettant l'unicit sur des noms d'instance par exemple.
IV-C - Mthodes
Les mthodes effectuent une action sur une ressource gre.
Exemple : Que pouvez-vous faire avec des services ? Vous pouvez les dmarrer, les arrter, les mettre en pause.
Chaque mthode a un nom, un type de retour, des paramtres facultatifs, et des qualificateurs de mthode facultatifs.
Certaines classes peuvent ne pas dfinir de mthode.
- 16 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
IV-D - Trigger
Un trigger est une reconnaissance d'un changement d'tat (comme la cration, la suppression, la mise jour ou
l'accs) d'une instance de classe ou la mise jour ou l'accs une proprit.
Note : L'implmentation de WMI n'a pas d'objet reprsentant explicitement un trigger.
Les triggers sont implicites soit lors d'oprations sur les objets de base du systme (cration, suppression, et
modification de classes, d'instances et d'espaces de nom), soit lors d'vnements dans l'environnement gr.
IV-F - Indication
Une indication est une instance d'objet cr en raison de l'occurrence d'un vnement. Puisque les indications sont
des sous-types de classe, elles peuvent avoir des proprits et des mthodes, et tre ordonnes dans un type
hirarchique.
Une indication a typiquement comme consquence un vnement.
Dans l'exemple d'une classe Service, lorsque le service s'arrte et que le trigger s'excute, il a comme consquence
une indication qui sert de notification indiquant que le service est arrt.
IV-G - Rfrence
Une rfrence est :
Une rfrence dfinit le rle que chaque objet joue dans une association. La rfrence reprsente le nom de rle
d'une classe dans le contexte d'une association.
Par exemple dans la classe Win32_POTSModemToSerialPort la proprit Antecedent rfrence l'instance
Win32_SerialPort reprsentant le port srie utilis par le modem.
IV-H - Schma
Reprsente une collection de dfinitions de classe qui dcrit les objets grs dans un environnement particulier.
Un schma est un groupe de classes avec un propritaire unique. Les schmas sont employs pour l'administration
et le nommage des classes. Les noms de classe doivent tre uniques dans leurs schmas propritaires.
Le SDK utilise 2 schmas : le schma CIM et le schma Win32. Dans le schma CIM le nom des classes dbute
par CIM_, et dans le schma Win32 le nom des classes dbute par Win32_. Le schma CIM contient les dfinitions
- 17 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
pour le noyau et pour les classes communes, tandis que le schma Win32 contient les dfinitions pour les classes
tendues qui sont communes l'environnement Win32.
IV-I - Qualificateurs
Les qualificateurs sont des adjectifs qui fournissent des informations additionnelles au sujet de la classe, de la
proprit ou de la mthode laquelle ils s'appliquent. Par exemple le qualificateur de la classe nomm Dynamic
rpond la question Quel est le type de classe de Win32_Service ? .
Dans les premiers temps d'utilisation de WMI vous rechercherez simplement des informations.
Ensuite si vous souhaitez modifier des proprits ou appeler des mthodes, les qualificateurs deviennent de plus
en plus importants car ils dfinissent les caractristiques oprationnelles de la proprit que vous mettez jour ou
de la mthode que vous appelez.
Comme vous l'avez vu prcdemment, les qualificateurs Abstract, Dynamic et Association vous indiquent
le type de classe. Le qualificateur Provider vous indique le provider qui gre la classe. Par exemple, le
qualificateur Provider pour la classe Win32_Service vous indique que la classe emploie le provider CIMWin32
(cimwin32.dll).
D'autre part, la classe Win32_NTLogEvent utilise le provider MS_NT_EVENTLOG_PROVIDER (ntevt.dll)
comme indiqu par le qualificateur Provider de la classe Win32_NTLogEvent.
Le qualificateur Privileges vous informe des privilges spciaux requis pour utiliser la classe. Par exemple, le
qualificateur Privileges de la classe Win32_NTLogEvent vous indique que le privilge SeSecurityPrivilege doit
tre positionn (enabled) avant que la classe Win32_NTLogEvent puisse grer le log de scurit.
Le qualificateur CIMType vous indique le type de donnes de la proprit. Le qualificateur Read indique que
la proprit est en lecture.
Le qualificateur Write indique si vous pouvez ou non modifier la valeur de proprit. Par exemple, la proprit
ASPScriptDefaultNamespace de la classe Win32_WMISetting est indique comme modifiable. D'autre part,
toutes les proprits de la classe Win32_Service sont dfinies comme read-only, elles ne dfinissent donc
pas le qualificateur Write.
Le qualificateur Key indique que la proprit est une clef de classe et est employe pour identifier des
instances uniques d'une ressource gre dans une collection de ressources identiques.
Le qualificateur Implemented indique que la mthode a une implmentation fournie par un provider.
- 18 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Note :
Il existe beaucoup plus de qualificateurs que ceux mentionns ici. Voir la liste complte
Les qualificateurs Standard WMI (Amemdment, Deprecated, etc) ont t ajouts par Microsoft et ne sont pas dans
les spcifications CIM.
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
V-A-1 - Accorder des autorisations des utilisateurs ou des groupes, et dfinir des niveaux
d'autorisation
Vous pouvez autoriser l'accs un utilisateur ou un groupe afin qu'ils effectuent des tches et des services WMI.
Pour chaque utilisateur ou groupe autoris, vous devez dfinir un niveau d'autorisation pour des espaces de noms
spcifiques. Vous pouvez, par exemple, habiliter un groupe grer les objets CIM (Common Information Model) de
l'infrastructure de gestion Windows sur l'ordinateur local de chaque membre du groupe.
V-B - Outils
Tutorial DTMF du Mtaschmas
Tutorial Microsoft WMI
Documentation de Winmgt.exe
- 20 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Description
Affiche un tree view de la structure de classe
du rfrentiel d'objet CIMOM.
Gnre du code C++ pour les objets
indiqus.
Montre les vnements auxquels il est
inscrit.
Fournit une interface utilisateur simple pour
dfinir les filtres d'vnement WMI et les
clients et les lier entre eux.
Montre des vues faites sur commande des
objets.
Compile un fichier .MOF indiqu.
Produit d'un fichier .MOF pour les objets
indiqus.
Affiche les dtails dans un format de table
pour un ou plusieurs objets.
Permet des utilisateurs de visualiser et de
slectionner des espaces de nom.
Affiche les associations entre les objets dans
le rfrentiel de CIMOM.
Enregistre des filtres d'vnement.
Fournit des services de login pour les
contrles activeX de WMI.
Affiche les dtails pour un objet indiqu.
Fournit des dispositifs de navigation pour les
contrles Single Object Viewer and Multiple
Instance Viewer.
V-E - WbemDump
Wbemdump est un outil propos (logiquement) dans le SDK WMI, il est similaire l'outil WMIC mais ncessite un
peu plus de connaissance sur WMI. Il permet par exemple d'excuter des mthodes de classe.
Pour obtenir la liste des options disponible : WbemDump /?
WbemDump /E /Q Root\CimV2 WQL "Select * From meta_class"
Voir en Annexe
- 21 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
V-F - WMIC
Le programme,WMIC disponible sous XP et 2003 uniquement, permet d'interroger WMI via la ligne de commande.
WMIC / ? donne la liste des commandes disponibles et des alias.
WMIC [Entre] permet d'entrer en mode interactif, ensuite la commande / ?:Full donne le dtail des commandes.
WMIC Service renvoie la liste et l'tat des services NT de la machine interroge, le commutateur /Node permet de
se connecter sur une machine distante.
Un alias est une instance de classe MSFT_CliAlias stock dans l'espace de nom Root\Cli du rfrentiel CIM. Il est
donc possible d'tendre les commandes de WMIC par la cration de nouvelles classes :
Dtail de la classe MSFT_CliAlias
Crer un alias pour WMIC
Sur la recopie d'cran suivante, on peut voir que la proprit Target contient la requte WQL Select * from
Win32_Service' permettant de retrouver toutes les informations lies aux services et que la proprit FriendlyName
contient le nom de l'alias Service.
SERVICE
LIST
- 22 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
VI - Delphi
VI-A - Configurer la palette de composants Delphi 5
Dans le menu Projet slectionner Importer une bibliothque de type .
Cliquer sur Ajouter puis slectionner le fichier C:\WINDOWS\system32\wbem\wbemdisp.tlb, cette librairie de type
propose les objets de scripting WMI.
Puis sur Installer.
Vous trouverez 6 nouveaux composants dans l'onglet ActiveX :
TSWbemLocator
TSWbemNamedValueSet
TSWbemObjectPath
TSWbemLastError
TSWbemSink
TSWbemDateTime
TSWbemRefresher
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Resets
Rinitialise l'ordre d'numration au premier lment.
Skip
Modifie l'ordre d'numration, saute les n prochains lments.
Pour le dtail des objets suivant voir le SDK.
VIII-A - ConnectServer
Cette mthode renvoie, en cas de succs, un objet de type SWbemServices qui reprsente une connexion un
espace de nom.
StrServer
Nom de machine si vous souhaitez vous connecter un espace de nom distant.
Peut tre soit '\\myserver\root\default' soit un nom DNS ou encore une adresse IP.
Pour un accs local prciser en utilisant le point '.'.
strNamespace
Nom de l'espace de nom sur lequel vous souhaitez vous connecter.
Exemple : 'root\default' (espace de nom par dfaut) ou 'root\CIMV2'
L'espace de nom par dfaut est configur dans la base de registre :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting\Default Namespace.
strUser
Nom du compte utilis pour se connecter.
Renseigner ce paramtre uniquement pour une connexion un serveur distant.
Si c'est un domaine diffrent utiliser le format 'Domain\\UserName' ou le format UPN
'UserName@DomainName'.
Ne pas renseigner ce paramtre si strAuthority est dj renseign.
strPassword
Une valeur NIL indique le contexte de scurit courant.
Renseigner ce paramtre uniquement pour une connexion un serveur distant.
strLocale
Indique le code de localisation (LCID), par exemple MS_409 pour l'Amricain.
strAuthority
Ce paramtre peut contenir le nom du domaine NT qui hberge le compte utilis pour s'authentifier.
- 24 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
VIII-B - Security
Les applications clientes utilisant des interfaces WMI peuvent spcifier le niveau de scurit de leurs processus en
utilisant cette proprit.
Elle contient un objet de type SWbemSecurity.
Une valeur NIL accorde un accs illimit.
IX - Objet SWbemSecurity
L'objet SwbemSecurity permet de lire ou modifier le niveau de scurit assign un objet, tels que les privilges,
la dlgation de COM, et les niveaux d'authentification.
Plus d'informations sur la scurit WMI
X - Objet SWbemServices
Les mthodes d'un objet SWbemServices permettent d'effectuer des oprations sur un espace de nom local ou
distant.
Toutes ses mthodes ne se terminant pas par Async peuvent tre appeles en mode synchrone et semi-synchrone
en renseignant le paramtre IFlags.
IFlag
Mode synchrone = wbemFlagReturnWhenComplete
Mode semi-synchrone = wbemFlagForwardOnly + wbemFlagReturnImmediately
Pour des raisons de scurit il est prfrable d'utiliser des appels synchrones ou semisynchrones.
Les appels asynchrones sont dconseills par Microsoft, moins que vous matrisiez
parfaitement ce que vous faites.
- 25 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
X-A - GET
Recherche un objet, une dfinition de classe ou une instance, bas sur le chemin de l'objet. Cette mthode recherche
seulement des objets dans l'espace de nom li l'objet SwbemServices courant. Cette mthode est appele en
mode synchrone.
Cette mthode renvoie, en cas de succs, un objet de type SWbemObject qui reprsente l'objet demand.
strObjectPath
Contient le chemin d'objet de l'objet rechercher. S'il est vide, l'objet renvoy peut devenir une nouvelle
classe.
iFlags
Dtermine le comportement de la requte. Ce paramtre accepte la valeur suivante :
WbemFlagUseAmendedQualifiers.
WMI renvoie des donnes de classe amendment avec la dfinition de classe de base. Pour plus
d'informations sur le qualificateur amended, Exemple
objWbemNamedValueSet
Typiquement, n'est pas renseign (NIL). Autrement, c'est un objet de type SWbemNamedValueSet dont les
lments reprsentent l'information de contexte qui peut tre employe par le provider qui gre la demande.
Un provider qui permet l'utilisation ou requiert une telle information doit documenter les noms des valeurs reconnues,
des types de donnes de la valeur, les valeurs permises, et la smantique.
X-B - InstancesOf
Cre une collection d'objet qui renvoie les instances d'une classe indique selon les critres de slection de
l'utilisateur.
Cette mthode renvoie, en cas de succs, un objet de type SwbemObjectSet.
strClass
Contient le nom de la classe pour laquelle vous souhaitez retrouver les instances. Ce paramtre doit tre
renseign.
iFlags
Ce paramtre dtermine comment l'appel numre les classes dans la hirarchie et si cet appel
est mode asynchrone (retour immdiat) ou pas. La valeur par dfaut pour ce paramtre est
wbemFlagReturnImmediately.
Voir le SDK pour les valeurs permises et leurs significations.
objWbemNamedValueSet
Voir la dfinition de ce paramtre dans la mthode .Get de cet objet.
- 26 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
X-C - ExecQuery
Excute une requte WQL permettant de rechercher des objets.
Cette mthode renvoie, en cas de succs, un objet de type swbemobjectset, contenant les objets recherchs.
Cette mthode est appele en mode semi-synchrone.
strQuery
Contient le texte de la requte WQL. Ce paramtre doit tre renseign.
strQueryLanguage
Contient le langage d'interrogation utiliser. S'il est spcifi sa valeur doit tre WQL .
iFlags
Voir le SDK pour les valeurs permises et leurs significations.
objWbemNamedValueSet
Voir la dfinition de ce paramtre dans la mthode .Get de cet objet.
XI - Objet SWbemObject
Vous pouvez utiliser les mthodes et les proprits d'un objet SWbemObject pour reprsenter une dfinition de
classe WMI ou une instance d'objet de n'importe quelle classe.
L'objet que vous manipulez est une copie locale, si vous souhaitez modifier l'objet dans le rfrentiel WMI, utilisez
la mthode put_ .
Si vous voulez crer une nouvelle classe utilisez SWbemServices.Get avec un nom de path vide. L'appel retourne
un objet SWbemObject qui peut devenir une classe.
Vous pouvez renseigner un nom de classe dans la proprit de l'objet SWbemObjectPath retourn par l'appel de
la mthode Path_
Vous pouvez ajouter des proprits la nouvelle classe par l'appel de la mthode Properties_.
Pour crer une instance d'une classe existante appeler SWbemServices.SpawnInstance_.
SWbemObject.Associators_
SWbemObject.Instances_
SWbemObject.References_
- 27 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
SWbemObject.Subclasses_
SWbemServices.AssociatorsOf
SWbemServices.ExecQuery
SWbemServices.InstancesOf
SWbemServices.ReferencesTo
SWbemServices.SubclassesOf
Puisque le call-back un collecteur de donnes (Sink) pourrait ne pas avoir le mme niveau d'authentification qu'exige
le client, il est recommand d'employer une communication semi-synchrone au lieu d'une communication asynchrone.
- 28 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Valeur actuelle de la proprit. C'est la proprit d'automation par dfaut de cet objet (c'est un objet de type
variant)
XV - Objet SWbemObjectPath
Utilisez cet objet pour construire et valider un chemin d'objet.
La proprit Keys permet de rcuprer la ou les cls d'une classe ou d'une instance.
- 29 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
- 30 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
XX - Objet SWbemMethod
Vous pouvez utiliser les proprits de cet objet pour inspecter les dfinitions de mthode d'un objet WMI.
Pour appeler ces mthodes, vous devez employer soit l'accs direct sur un objet de type SWbemObject (c'est le
mcanisme recommand), soit par l'appel de SWbemServices.ExecMethod.
Note : Dans cette version de l'API, l'accs en criture l'information de mthode n'est pas support. Si vous voulez
dfinir des mthodes ou modifier des dfinitions de mthode existantes, vous pouvez dfinir les changements de
cette mthode dans un fichier .mof puis le compiler. Alternativement, vous pouvez employer les API COM de WMI.
Cet objet n'a pas de mthode.
des
vnements
d'une
requte
d'vnement
via
la
mthode
Mthodes
Cette classe n'a aucune mthode.
Proprits
Elle possde les proprits suivantes qui sont toutes en Read-only :
- 31 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Description
Chane dfinie par l'utilisateur, dcrit une erreur ou un statut oprationnel.
Opration
Opration en cours au moment o a lieu l'erreur (chec ou anomalie).
Typiquement, WMI renseigne cette proprit avec le nom de l'API COM de la mthode WMI. Exemple :
IWbemServices::CreateInstanceEnum.
ParameterInfo
Paramtres impliqus dans l'erreur.
Par exemple, si une application essaie de rechercher une classe qui n'existe pas, cette proprit est
renseigne avec le nom de la classe fautive.
ProviderName
Identifie le provider qui provoque ou rapporte l'erreur. Si un provider n'est pas impliqu, cette proprit
contient Windows Management .
StatusCode
Contient un code d'erreur ou d'information pour une opration.
Ce peut tre n'importe quelle valeur dfinie par le provider, mais la valeur 0 (zro) est habituellement
rserve pour indiquer le succs.
Cette proprit est hrite de __ NotifyStatus.
Quand des instances de cette classe sont retournes d'une mthode par un provider
dynamique, les proprits StatusCode et Description sont renseignes par le provider, et les
autres proprits sont renseignes par WMI.
Sous Delphi les erreurs rencontres sont des exceptions de type EOleException.
Si l'information d'erreur n'est pas disponible, la cration d'un objet SwbemLastError provoquera une exception de
type EOleSysError.
Les erreurs dbutant par $8007xxxx sont des erreurs WIN32 et celles dbutant par $8004xxxx des erreurs de WMI.
- 32 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
Les vnements dans votre implmentation de SWbemSink sont dclenchs quand le statut ou les rsultats sont
retourns ou que l'appel est termin.
XXIII-A - Cancel
Annule toutes les oprations asynchrones lies cet objet.
Remarques
Un call-back asynchrone permet un utilisateur non-authentifi de fournir des donnes au collecteur (sink). Ceci pose
des problmes de scurit pour vos scripts et applications. Pour liminer les risques, employez la communication
semi-synchrone ou synchrone.
XXIII-B - vnements
Vous pouvez implmenter des sous-programmes appeler quand des vnements sont dclenchs.
Par exemple, si vous voulez traiter chaque objet retourn par une requte asynchrone tel que
SWbemServices.ExecQueryAsync, crez un sous-programme en utilisant l'vnement OnObjectReady de l'objet
Sink qui est indiqu dans l'appel asynchrone.
procedure TForm1.CollecteurEvenementObjectReady(Sender: TObject;
const objWbemObject: ISWbemObject;
const objWbemAsyncContext: ISWbemNamedValueSet);
// Dclench lorsqu'un objet fourni par l'appel asynchrone est disponible.
// objWbemObject contient l'objet retourn
var WmiObjet: SWbemObject;
begin
WmiObjet:=IUnknown(objWbemObject) as SWbemObject;
//Affiche la dfiniton de classe au format MOF
Memo1.Lines.Add(AdjustLineBreaks(WmiObjet.GetObjectText_(0)));
end;
Utilisez la table suivante comme rfrence pour identifier des vnements et des descriptions de Trigger.
Description d'vnement :
Si les vnements sont produits partir d'un provider qui implmente les mises jour de statut, vous pouvez grer
l'vnement OnProgress pour informer les utilisateurs propos d'un changement de statut lors d'une opration
asynchrone.
- 33 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
tre
effectue
en
appelant
la
mthode
SWbemRefresher.Refresh
ou
XXVIII - Annexe
Alain Lissoir's home page
Propose les scripts des ouvrages cits plus bas. Contient notamment une version compil de l'outil WbemDump.exe.
http://www.openpegasus.org/
Tutorial (C ,linux)
http://www.wbemsource.org/
Provider WMI tiers. Gestion des fichiers : ASCIFSEP
- 34 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/
XXVIII-A - Exemple
Exemple de tches WMI
Exemple de provider ligne de commande
Exemple de provider pour l'Event Log NT
Exemples de script VBScript
De nombreux exemples de script WMI, classs par type de tche
- 35 -
Copyright 2004 Laurent Dardenne. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts.
http://laurent-dardenne.developpez.com/articles/wmi-p1/