about_WMI_Cmdlets
Description courte
Fournit des informations générales sur Windows Management Instrumentation (WMI) et Windows PowerShell.
Description longue
Cette rubrique fournit des informations sur la technologie WMI, les applets de commande WMI pour Windows PowerShell, la communication à distance basée sur WMI, les accélérateurs WMI et la résolution des problèmes WMI. Elle propose également des liens vers d'autres informations sur WMI.
À PROPOS DE WMI
WMI est l’implémentation Microsoft de WBEM (Web-Based Enterprise Management), qui est une initiative de l’industrie pour développer une technologie standard permettant d’accéder aux informations de gestion dans un environnement d’entreprise. WMI utilise la norme industrielle CIM (Common Information Model) pour représenter les systèmes, applications, réseaux, périphériques et autres composants managés. La norme CIM est développée et gérée par Distributed Management Task Force (DMTF). Vous pouvez utiliser WMI pour gérer les ordinateurs locaux et distants. Par exemple, vous pouvez utiliser WMI pour effectuer les opérations suivantes :
- Démarrez un processus sur un ordinateur distant.
- Redémarrez un ordinateur à distance.
- Obtenez la liste des applications installées sur un ordinateur local ou distant.
- Interrogez les journaux des événements Windows sur un ordinateur local ou distant.
APPLETS DE COMMANDE WMI POUR WINDOWS POWERSHELL
Windows PowerShell implémente la fonctionnalité WMI via un ensemble d’applets de commande disponibles dans Windows PowerShell par défaut. Vous pouvez utiliser ces applets de commande pour effectuer les tâches de bout en bout nécessaires pour gérer les ordinateurs locaux et distants.
Les applets de commande WMI suivantes sont incluses.
Applet de commande | Description |
---|---|
Get-WmiObject | Obtient des instances de classes ou d’informations WMI |
à propos des classes disponibles. | |
Invoke-WmiMethod | Appelle les méthodes WMI. |
Register-WmiEvent | S’abonne à un événement WMI. |
Remove-WmiObject | Supprime les classes et instances WMI. |
Set-WmiInstance | Crée ou modifie des instances de classes WMI. |
EXEMPLES DE COMMANDES
La commande suivante affiche les informations du BIOS pour l’ordinateur local.
C:\PS> get-wmiobject win32_bios | format-list *
La commande suivante affiche des informations sur le service WinRM pour trois ordinateurs distants.
$wql = "select * from win32_service where name='WinRM'"
get-wmiobject -query $wql -computername server01, server01, server03
La commande plus complexe suivante quitte toutes les instances d’un programme.
C:\PS> notepad.exe
C:\PS> $wql = "select * from win32_process where name='notepad.exe'"
C:\PS> $np = get-wmiobject -query $wql
C:\PS> $np | remove-wmiobject
COMMUNICATION À DISTANCE BASÉE SUR WMI
Bien que la possibilité de gérer un système local via WMI est utile, il s’agit des fonctionnalités de communication à distance qui rendent WMI un outil d’administration puissant. WMI utilise le modèle objet de composant distribué (DCOM) de Microsoft pour se connecter aux systèmes et les gérer. Vous devrez peut-être configurer certains systèmes pour autoriser les connexions DCOM. Les paramètres de pare-feu et les autorisations DCOM verrouillées peuvent bloquer la capacité de WMI à gérer à distance les systèmes.
ACCÉLÉRATEURS DE TYPE WMI
Windows PowerShell inclut des accélérateurs de type WMI. Ces accélérateurs de type WMI (raccourcis) permettent un accès plus direct à des objets WMI qu’une approche d’accélérateur non de type permettrait.
Les accélérateurs de type suivants sont pris en charge avec WMI :
[WMISEARCHER] : raccourci pour la recherche d’objets WMI.
[WMICLASS] : raccourci permettant d’accéder aux propriétés statiques et aux méthodes d’une classe.
[WMI] : raccourci permettant d’obtenir une seule instance d’une classe.
[WMISEARCHER] est un accélérateur de type pour un ManagementObjectSearcher. Il peut prendre un constructeur de chaîne pour créer un moteur de recherche sur lequel vous pouvez ensuite effectuer une opération GET().
Par exemple :
PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto
count __PATH name
----- ------ ----
1105 \\SERVER01\root\cimv2:Win32_Process.Handle="3724" PowerShell...
1132 \\SERVER01\root\cimv2:Win32_Process.Handle="1388" winlogon.exe
1495 \\SERVER01\root\cimv2:Win32_Process.Handle="2852" iexplore.exe
1699 \\SERVER01\root\cimv2:Win32_Process.Handle="1204" OUTLOOK.EXE
1719 \\SERVER01\root\cimv2:Win32_Process.Handle="1912" iexplore.exe
2579 \\SERVER01\root\cimv2:Win32_Process.Handle="1768" svchost.exe
[WMICLASS] est un accélérateur de type pour ManagementClass. Il s’agit d’un constructeur de chaîne qui prend un chemin WMI local ou absolu vers une classe WMI et retourne un objet lié à cette classe.
Par exemple :
PS> $c = [WMICLASS]"root\cimv2:WIn32_Process"
PS> $c |fl *
Name : Win32_Process
__GENUS : 1
__CLASS : Win32_Process
__SUPERCLASS : CIM_Process
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_Process
__PROPERTY_COUNT : 45
__DERIVATION : {CIM_Process, CIM_LogicalElement,
CIM_ManagedSystemElement}
__SERVER : SERVER01
__NAMESPACE : ROOT\cimv2
__PATH : \\SERVER01\ROOT\cimv2:Win32_Process
[WMI] est un accélérateur de type pour ManagementObject. Il s’agit d’un constructeur de chaîne qui prend un chemin WMI local ou absolu vers une instance WMI et retourne un objet lié à cette instance.
Par exemple :
PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"'
PS> $p.Name
OUTLOOK.EXE
RÉSOLUTION DES PROBLÈMES WMI
Les problèmes suivants sont les problèmes les plus courants qui peuvent se produire lorsque vous essayez de vous connecter à un ordinateur distant.
Problème 1 : L’ordinateur distant n’est pas en ligne.
Si un ordinateur est hors connexion, vous ne pourrez pas vous y connecter à l’aide de WMI. Vous pouvez recevoir le message d’erreur suivant :
Remote server machine does not exist or is unavailable
Si vous recevez ce message d’erreur, vérifiez que l’ordinateur est en ligne. Essayez d’effectuer un test ping sur l’ordinateur distant.
Problème 2 : Vous n’avez pas de droits d’administrateur local sur l’ordinateur distant.
Pour utiliser WMI à distance, vous devez disposer de droits d’administrateur local sur l’ordinateur distant. Si ce n’est pas le cas, l’accès à cet ordinateur sera refusé.
Pour vérifier la sécurité de l’espace de noms :
- Cliquez sur Démarrer, cliquez avec le bouton droit sur Mon ordinateur, puis cliquez sur Gérer.
- Dans Gestion de l’ordinateur, développez Services et applications, cliquez avec le bouton droit sur Contrôle WMI, puis cliquez sur Propriétés.
- Dans la boîte de dialogue Propriétés du Contrôle WMI , cliquez sur l'onglet Sécurité .
Problème 3 : un pare-feu bloque l’accès à l’ordinateur distant.
WMI utilise les protocoles DCOM (Distributed COM) et RPC (Remote Procedure Call) pour parcourir le réseau. Par défaut, de nombreux pare-feu bloquent le trafic DCOM et RPC. Si votre pare-feu bloque ces protocoles, votre connexion échoue. Par exemple, le Pare-feu Windows dans Microsoft Windows XP Service Pack 2 est configuré pour bloquer automatiquement tout le trafic réseau non sollicité, y compris DCOM et WMI. Dans sa configuration par défaut, le Pare-feu Windows rejette une requête WMI entrante et vous recevez le message d’erreur suivant :
Remote server machine does not exist or is unavailable