Partager via


WMI Provider

Cet exemple montre comment rassembler pendant l'exécution des données des services Windows Communication Foundation (WCF) en utilisant le fournisseur WMI (Windows Management Instrumentation) généré dans WCF. Cet exemple montre également comment ajouter un objet WMI défini par l'utilisateur à un service. L'exemple active le fournisseur WMI pour le Getting Started, exemple et montre comment rassembler pendant l'exécution des données du service ICalculator.

WMI est l'implémentation de Microsoft de la norme WBEM (Web-Based Enterprise Management). Pour plus d'informations sur l'utilisation du Kit de développement SDK WMI, consultez MSDN Library. (https://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi\_start\_page.asp). WBEM est une norme d'industrie qui détermine comment les applications exposent l'instrumentation de gestion aux outils de gestion externes.

WCF implémente un fournisseur WMI, un composant qui expose l'instrumentation au moment de l'exécution par l'intermédiaire d'une interface WBEM compatible. Les outils de gestion peuvent se connecter aux services au moment de l'exécution par l'intermédiaire de l'interface. WCF expose des attributs de services tels que les adresses, les liaisons, les comportements et les écouteurs.

Le fournisseur WMI intégré est activé dans le fichier de configuration de l'application. Cette opération s'effectue par l'intermédiaire de l'attribut wmiProviderEnabled de l'<diagnostics> Element dans la section system.ServiceModel element, comme le montre l'exemple de configuration suivant :

<system.serviceModel>
    ...
    <diagnostics wmiProviderEnabled="true" />
    ...
</system.serviceModel>

Cette entrée de configuration expose une interface WMI. Les applications de gestion peuvent maintenant se connecter par le biais de cette interface et accéder à l'instrumentation de gestion de l'application.

Objet WMI personnalisé.

L'ajout d'objets WMI à un service permet de révéler des informations définies par l'utilisateur en même temps que les informations du fournisseur WMI intégré. Cela s'effectue en publiant le schéma du service dans WMI en utilisant l'application Installutil.exe. Des instructions plus détaillées sont disponibles dans les instructions d'installation à la fin de cette rubrique.

Accès aux informations WMI

Les données WMI sont accessibles de plusieurs façons différentes. Microsoft fournit des API WMI pour les scripts, les applications Visual Basic, les applications C++ et .NET Framework (https://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/using\_wmi.asp).

Cet exemple utilise deux scripts Java : un pour énumérer des services qui s'exécutent sur l'ordinateur avec certaines de leurs propriétés et le second pour consulter les données WMI définies par l'utilisateur. Le script ouvre une connexion au fournisseur WMI, analyse les données et affiche les données rassemblées.

Démarrez l'exemple pour créer une instance en cours d'exécution d'un service WCF. Pendant que le service s'exécute, exécutez chaque script Java en utilisant la commande suivante dans l'invite de commandes :

cscript EnumerateServices.js

Le script accède à l'instrumentation contenue dans le service et produit la sortie suivante :

Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

1 service(s) found.
|-PID:           5776
|-DistinguishedName:  CalculatorService@https://localhost/ServiceModelSamples/service.svc
|-Endpoints:     1 endpoints
  |-CalculatorService.ICalculator@https://localhost/ServiceModelSamples/service.svc
    |-Address:                        https://localhost/ServiceModelSamples/service.svc
    |-CounterInstanceName:
    |-AddressHeaders:                 0
    |-ContractType:                   Contract.Name='ICalculator'
    |-BindingElements:                4 bindings
      |-BindingElements[0]
        |-Type:                       TransactionFlowBindingElement
      |-BindingElements[1]
        |-Type:                       SymmetricSecurityBindingElement
      |-BindingElements[2]
        |-Type:                       TextMessageEncodingBindingElement
        |-MaxReadPoolSize:            64
        |-MaxWritePoolSize:           16
      |-BindingElements[3]
        |-Type:                       HttpTransportBindingElement
        |-ManualAddressing:           false
        |-MaxBufferSize:              65536
        |-AllowCookies:               false
        |-AuthenticationScheme:       Anonymous
        |-BypassProxyOnLocal:         false
        |-HostNameComparisonMode:     StrongWildcard
        |-ProxyAddress:               null
        |-ProxyAuthenticationScheme:  Anonymous
        |-Realm:
        |-TransferMode:               Buffered
        |-UseDefaultWebProxy:         true
|-Behaviors:     5 behaviors
      |-Behavior[0]
      |-Type:                       ServiceBehaviorAttribute
        |-AddressFilterMode:               Exact
        |-AutomaticSessionShutdown:        true
        |-ConcurrencyMode:                 Single
        |-IncludeExceptionDetailInFaults:  false
        |-InstanceContextMode:             PerSession
        |-TransactionIsolationLevel:       Unspecified
        |-TransactionTimeout:              null
        |-ValidateMustUnderstand:          true
      |-Behavior[1]
      |-Type:                       AspNetCompatibilityRequirementsAttribute
      |-Behavior[2]
      |-Type:                       ServiceDebugBehavior
      |-Behavior[3]
      |-Type:                       ServiceAuthorizationBehavior
      |-Behavior[4]
      |-Type:                       Behavior

Ensuite, exécutez le deuxième script Java pour afficher les données WMI définies par l'utilisateur :

cscript EnumerateCustomObjects.js

Le script accède à l'instrumentation définie par l'utilisateur contenue dans les services et produit la sortie suivante :

1 WMIObject(s) found.
|-PID:           30285bfd-9d66-4c4e-9be2-310499c5cef5
|-InstanceId:    3839
|-WMIInfo:       User Defined WMI Information.

La sortie montre qu'un service unique s'exécute sur l'ordinateur. Le service expose un point de terminaison qui implémente le contrat ICalculator. Les paramètres du comportement et de la liaison qui sont implémentés par le point de terminaison sont répertoriés comme la somme des éléments individuels de la pile de messagerie.

WMI ne se limite pas à exposer l'instrumentation de gestion WMI de l'infrastructure WCF. L'application peut exposer ses propres éléments de données spécifiques au domaine à travers le même mécanisme. WMI est un mécanisme unifié pour l'inspection et le contrôle d'un service Web.

Pour configurer, générer et exécuter l'exemple

  1. Assurez-vous d'avoir effectué la procédure indiquée dans la section Procédure d'installation unique pour les exemples Windows Communication Foundation.

  2. Pour générer l'édition C# ou Visual Basic .NET de la solution, conformez-vous aux instructions figurant dans Génération des exemples Windows Communication Foundation.

  3. Publiez le schéma de services dans WMI en exécutant Installutil.exe (l'emplacement par défaut pour Installutil.exe est « %WINDIR%\Microsoft.NET\Framework\v2.0.50727 ») sur le fichier service.dll dans le répertoire d'hébergement. Cette étape doit seulement être exécutée lorsque des modifications ont été apportées au fichier service.dll. Pour plus d'informations, consultez Fourniture d'informations de gestion par l'instrumentation d'applications à l'adresse https://msdn2.microsoft.com/fr-fr/library/ms186147.aspx dans la section « Comment : publier un schéma dans WMI pour une application instrumentée ».

  4. Pour exécuter l'exemple dans une configuration à un ou plusieurs ordinateurs, conformez-vous aux instructions figurant dans la rubrique Exécution des exemples Windows Communication Foundation.

    ms751442.note(fr-fr,VS.90).gifRemarque :
    Si vous avez installé WCF après avoir installé ASP.NET, vous devrez peut-être exécuter "%WINDIR%\ Microsoft.Net\Framework\v3.0\Windows Communication Foundation\servicemodelreg.exe " -r -x pour donner l'autorisation au compte ASPNET de publier des objets WMI.

  5. Consultez les données de l'exemple révélées par WMI en utilisant la commande cscript EnumerateServices.js ou cscript EnumerateCustomObjects.js.

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.