RUBRIQUE
about_WMI_cmdlets
DESCRIPTION COURTE
Fournit des informations générales sur WMI (Windows Management
Instrumentation) 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 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 la commission spéciale pour la gestion
distribuée. Vous pouvez utiliser WMI pour gérer à la fois
les ordinateurs locaux et distants. Vous pouvez par exemple
utiliser WMI pour effectuer ce qui suit :
-- Démarrer un processus sur un ordinateur distant.
-- Redémarrer un ordinateur à distance.
-- Obtenir une liste des applications qui sont installées
sur un ordinateur local ou distant.
-- Interroger les journaux des événements Windows sur un
ordinateur local ou distant.
Applets de commande WMI pour Windows PowerShell
Windows PowerShell implémente les fonctionnalités WMI par le
biais d'un ensemble d'applets de commande qui sont disponibles
dans Windows PowerShell par défaut. Vous pouvez utiliser ces
applets de commande pour effectuer les tâches de bout en bout
qui sont nécessaires à la gestion des ordinateurs locaux et
distants.
Les applets de commande WMI suivantes sont incluses.
Applet de commande Description
------------------ ----------------------------------------------
Get-WmiObject Obtient des instances des classes WMI ou
des informations sur les classes disponibles.
Invoke-WmiMethod Appelle les méthodes WMI.
Register-WmiEvent S'abonne à un événement WMI.
Remove-WmiObject Supprime des instances et des classes WMI.
Set-WmiInstance Crée ou modifie des instances de classes WMI.
Exemples de commandes
La commande suivante affiche les informations sur le 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.
C:\PS> get-wmiobject -query "select * from win32_service
where name='WinRM'" -computername server01, server01,
server03
La commande plus complexe suivante ferme toutes les instances
d'un programme.
C:\PS> notepad.exe
C:\PS> $np = get-wmiobject -query "select * from win32
_process where name='notepad.exe'"
C:\PS> $np | remove-wmiobject
Communication à distance WMI
Même si la possibilité de gérer un système local par le biais de
WMI est utile, ce sont les fonctionnalités de communication
à distance qui font de WMI un puissant outil d'administration.
WMI utilise le modèle DCOM (Distributed Component Object Model)
de Microsoft pour se connecter aux systèmes et les gérer. Il est
possible que vous deviez configurer certains systèmes pour
permettre les connexions DCOM. Les paramètres du pare-feu et
les autorisations DCOM verrouillées peuvent empêcher WMI de gérer
les systèmes à distance.
Accélérateurs types WMI
Windows PowerShell inclut des accélérateurs types WMI. Ces
accélérateurs types WMI (raccourcis) permettent un accès plus
direct aux objets WMI qu'avec un accélérateur sans type.
Les accélérateurs types suivants sont pris en charge avec WMI :
[WMISEARCHER] - Raccourci pour la recherche d'objets WMI.
[WMICLASS] - Raccourci pour l'accès aux propriétés et
méthodes statiques d'une classe.
[WMI] - Raccourci pour l'obtention d'une seule instance
d'une classe.
[WMISEARCHER] est un accélérateur type pour ManagementObjectSearcher.
Il peut accepter un constructeur String pour créer un outil 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
handlecount __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 type pour ManagementClass. Il
contient un constructeur String qui utilise un chemin d'accès
WMI local ou absolu à une classe WMI et retourne un objet
qui est 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 type pour ManagementObject. Il
contient un constructeur String qui utilise un chemin d'accès
WMI local ou absolu à une instance WMI et retourne un objet
qui est 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 poser 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 :
" Le serveur distant n'existe pas ou n'est pas disponible "
Si vous recevez ce message d'erreur, vérifiez que l'ordinateur
est en ligne. Essayez d'effectuer un test Ping de l'ordinateur distant.
Problème 2 : vous ne disposez 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.
Dans le cas contraire, l'accès à cet ordinateur sera refusé.
Pour vérifier la sécurité de l'espace de noms :
a. Cliquez sur Démarrer, cliquez avec le bouton droit sur
Poste de travail, puis cliquez sur Gérer.
b. 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.
c. Dans la boîte de dialogue des 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, la 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 refuse une demande WMI entrante et
vous recevez le message d'erreur suivant :
" Le serveur distant n'existe pas ou n'est pas disponible "
Informations supplémentaires sur WMI
Pour plus d'informations sur WMI, consultez les rubriques
suivantes (pages éventuellement en anglais) dans MSDN
(Microsoft Developer Network) Library :
" About WMI "
https://go.microsoft.com/fwlink/?LinkId=142212
" WMI Troubleshooting "
https://go.microsoft.com/fwlink/?LinkId=142213
Consultez également " Secrets of Windows Management
Instrumentation - Troubleshooting and Tips " (page
éventuellement en anglais) dans Microsoft TechNet Script
Center :
https://go.microsoft.com/fwlink/?LinkId=142214
VOIR AUSSI
Version en ligne : https://go.microsoft.com/fwlink/?LinkId=142219
Get-WmiObject
Invoke-WmiMethod
Register-WmiEvent
Remove-WmiObject
Set-WmiInstance