FAQ DelphiConsultez toutes les FAQ

Nombre d'auteurs : 123, nombre de questions : 923, dernière mise à jour : 29 avril 2020  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).

Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.

L'équipe Delphi de Developpez.com.

Commentez


SommaireSystèmeWMIIntroduction à WMI (4)
précédent sommaire suivant
 

Utiliser WMI permet de s'affranchir de la connaissance de l'API Windows au prix d'un apprentissage minimum sur les principes de base. WMI est surtout utilisé pour automatiser des tâches d'administration avec VBScript.

Windows Management Instrumentation (WMI) est basé sur la technologie COM, l'accès et la manipulation de WMI se font par l'intermédiaire des objets de scripting SWbemxxxx qui encapsulent les appels COM et par certaines interfaces IWbemxxxx.

Web-Based Enterprise Management (WBEM) est une initiative de différents constructeurs afin de développer des moyens normalisés et non-propriétaires permettant d'accéder et de partager l'information liée à l'infrastructure (matériel et logiciel) d'un réseau d'entreprise.

Avant d'aller plus loin il vous faut savoir que les plateformes NT et Windows 9x ne supportent pas en natif cette technologie. Dans ce cas il vous faudra déployer WMI pour que votre application l'utilisant fonctionne.

À noter :
Quelques classes WMI et/ou méthodes ne sont pas implémentées sur toutes les plateformes. Consultez laMSDN pour le détail des classes que vous utilisez.
Les accès à WMI se font différemment sous Delphi .NET.

Mis à jour le 15 janvier 2014 Laurent Dardenne Pedro

WMI gère une base de données (référentiel) sur chaque PC sur lequel il est installé. Le service nommé Infrastructure de gestion Windows doit être démarré.
Le répertoire C:\WINDOWS\system32\wbem\ contient les DLL et outils mis à notre disposition.
Le référentiel se situe dans le répertoire C:\WINDOWS\system32\wbem\Repository\FS.
Attention, on n'accède pas directement à ce référentiel.

Pour accéder à WMI sous Delphi on doit importer la librairie de type nommée Microsoft WMI Scripting v1.1 Library (Version 1.1), située dans C:\WINDOWS\system32\wbem\wbemdisp.tlb.
Cette librairie nous propose les composants suivants :

  • TSWbemLocator
  • TSWbemNamedValueSet
  • TSWbemObjectPath
  • TSWbemLastError
  • TSWbemSink
  • TSWbemDateTime
  • TSWbemRefresher

Mais elle contient surtout de nombreuses interfaces qui nous permettront de manipuler les différents objets WMI.
La librairie C:\WINDOWS\system32\wbem\wbemads.tlb propose quant à elle les extensions WMI ADSI (Active Directory Services Interface) permettant de gérer les accès à Active Directory.

Le référentiel est lié à la notion d'espace de noms. Les espaces de noms représentent le mécanisme de structuration des informations employées dans le référentiel CIM, ils contrôlent la portée et la visibilité des définitions de classe des ressources gérées.
Chaque espace de noms du référentiel CIM contient un groupe logique de classes représentant une technologie spécifique ou un domaine de gestion.

Mis à jour le 15 janvier 2014 Laurent Dardenne Pedro

Vous trouverez de nombreuses informations sur WMI dans ce tutoriel : Windows Management Instrumentation (WMI), première partie.
Cette section de la FAQ reprend sous une autre forme et en plus détaillé le contenu du
tutoriel Windows Management Instrumentation (WMI), seconde partie.

Vous trouverez dans la première partie du tutoriel sur WMI de nombreux liens complémentaires ainsi que des sources d'exemples.
Dans le second vous trouverez de nombreux programmes d'exemple.

Le site le plus fourni étant bien évidemment MSDN : WMI Start Page.

Vous trouverez dans le document suivant intitulé Comment lire un kit SDK ?), des explications sur la manière de décrypter le code des kits SDK (Software Development Kits) et des références de langage.

Mis à jour le 15 janvier 2014 Laurent Dardenne Pedro

L'unité WbemCli.pas est la translation de header WbemCli.h contenant entre autres les constantes d'erreur WMI.

L'unité WMITools.pas contient de nombreuses méthodes qui faciliteront vos premiers programmes d'accés au
données WMI.

Enfin pour les possesseurs de BDS l'unité UIterateurEnumVariant facilitera les itérations de collections sur 2 ou 3 niveaux.
Exemple :

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
... 
For MonObjetWMI in ObjectEnumerator do 
  begin 
      // Utilise la collection de propriétés d'un objet WMI pour créer un second itérateur distinct. 
   PropertyEnumerator:= TEnumVariant.Create((MonObjetWMI as SWBemObject).Properties_); 
  
   For MaProprieteWMI in PropertyEnumerator do 
   begin 
      // Retrouve certains détails d'un point de restauration via les propriétés de classe WMI. 
    With (MaProprieteWMI as SWBemProperty)  do 
...

Mis à jour le 15 janvier 2014 Laurent Dardenne Pedro

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2020 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.