



|
|
Windows Management
Instrumentation
|
Astuces
sur WMI
- Gérer son système à partir de la ligne
de commandes :
Sous Windows XP et ultérieur, l'utilitaire WMIC (Windows
Management Instrumentation Command-line) simplifie l'utilisation
de l'outil WMI ("Windows Management Instrumentation",
Infrastructure de gestion Windows) et des systèmes gérés
via WMI. Cette plate-forme logicielle peut se manipuler facilement
grâce à des alias dont la liste est accessible en
saisissant : wmic /?
Nous rentrons dans cet univers tout nouveau en saisissant : wmic
Le prompt affichera alors ceci : wmic:root\cli>
Il vous est possible de vider les lieux en saisissant la commande
Quit.
Les alias et les commutateurs sont listés après
que vous ayez saisit cette commande : /?
Il vous est par exemple possible de connaître le processeur
installé, saisissez ceci : cpu
ou si vous ne souhaitez filtrer les informations :
wmic:root\cli>cpu get addresswidth, caption, datawidth
Astuce : Il vous est donc possible soit de saisir
une commande à partir du "shell" propre à
wmic soit à partir de l'Invite de commandes normale. Dans
ce cas, saisissez directement : wmic cpu
Afin de lister les processus, saisissez : process
Si vous souhaitez afficher les processus actifs d'un ordinateur
faisant partie de votre réseau local et appelé Ordinateur1,
saisissez :
/node :Ordinateur1 Process get
Si vous ne souhaitez afficher que les informations concernant
le processus Cmd.exe, saisissez :
process where (Name="cmd.exe") list brief
Le processus de l'Invite de commandes est clairement analysé.
Afin de lister tous les processus dont le nom contient la chaîne
de caractères suivante "host", saisissez :
process where "name like '%host%'"
Afin de lister tous les processus dont l'utilisation de la mémoire
dépasse les 15 000 Ko, saisissez :
process where (WorkingSetSize>15000000) list brief
Il vous est possible d'actualiser cette commande trois fois à
six secondes d'intervalle en saisissant :
process where (WorkingSetSize>15000000) list brief /every:6
/repeat:3
Afin de terminer un processus (dans notre exemple, c'est simplement
le Bloc-notes Windows) saisissez :
process where (Name="notepad.exe") delete
ou
process where Name="calc.exe" call Terminate
Afin de lister tous les processus et rediriger la sortie vers
un fichier .txt, saisissez :
wmic /output:C:\Sortie.txt Process get Caption,Commandline,Processid
- Tout savoir sur les applications installés sur
votre ordinateur :
Les logiciels afin de pouvoir s'installer utilise des packages
d'installation qui vont permettre le déploiement d'une
application sur votre ordinateur. Un de ces packages est conçu
par la firme Microsoft et s'appelle "Windows Installer".
Si vous voulez lister les programmes présents sur votre
ordinateur qui utilise cette technologie, saisissez ces commandes
:
wmic product get
Vous obtiendrez le nom de l'application, l'éditeur, la
date de déploiement ainsi que le nom du fichier .msi qui
gère le programme correspondant.
Le nom du fichier .msi est souvent intéressant à
connaître. C'est le fichier qui constitue le véritable
moteur de votre application quand vous l'installer ou entamer
une éventuelle tâche de maintenance (recréer
les raccourcis liés à l'application, réparer
els entrées du Registre, etc.).
Toutes les information sur votre Bios peuvent être obtenues
en saisissant à partir de l'Invite de commandes ceci :
wmic bios > sortie.txt
Un fichier nommé Sortie.txt sera généré
dans le répertoire par défaut.
- Tout savoir sur les comptes d'utilisateurs :
Si vous souhaitez lister les comptes d'utilisateur cachés
ou déclarés qui sont déclarés sur
votre ordinateur, saisissez cette commande :
wmic useraccount get
La colonne Caption liste les noms des comptes d'utilisateurs.
La colonne Disabled précise si les comptes sont désactivés
ou non (FALSE).
La colonne Lockout indique si le compte est bloqué ou non.
La colonne PasswordExpires et PasswordRequired affiche le statut
du mot de passe pour chaque compte (expire à telle date,
requis au démarrage). De plus, le SID de chaque utilisateur
est indiqué.
- Contrôler un ordinateur distant :
Admettons que je veuille lister l'ensemble des processus s'exécutant
sur un ordinateur distant appelé "Ordinateur2",
je saisirai : /node :Ordinateur2 Process get
- Générer des rapports en utilisant les
fonctionnalités WMI :
Un des avantages des fonctionnalités WMI est de pouvoir
générer des fichiers de sortie au format TXT, HTML,
XML ou CSV.
À titre d'exemple saisissez ces différentes commandes
:
Lister les correctifs installés :
wmic qfe list full /format:htable >C:\correctifs.htm
Lister les correctifs mais en n'affichant que certaines informations
:
wmic qfe get description,installdate,installedby /format:htable
>C:\correctifs.htm
Lister les éléments du groupe Démarrage :
wmic startup list full /format:htable >C:\startup.htm
Lister les services :
wmic services list full /format:htable >C:\services.htm
Lister les services actuellement démarrés :
wmic /output:c:\services.htm service where started=true get /format:hform
Lister les processus :
wmic process list full /format:htable >C:\processus.htm
Lister les interfaces réseau :
wmic /output:c:\réseau.htm nicconfig where ipenabled=true
get /format:hform
Lister les applications :
wmic process list full /format:htable >C:\applications.htm
La liste des commandes s'obtient en saisissant ceci : wmic /?
La liste des valeurs possibles s'obtient en saisissant, dans le
cas de la commande "Service" cette commande : wmic service
get /?
Notez que vous pouvez également employer différentes
syntaxes et varier les formats de sortie :
wmic /output:c:\processus.htm process get /format:htable
wmic process list brief /format:htable.xsl > processus.htm
wmic /output:c:\services.htm service get /format:hform
- Scriptomatic.exe : générer des scripts
WMI :
Nous allons vous expliquez une manière très simple
de générer des centaines de VBScripts. Téléchargez
le fichier Scriptomatic.exe à partir de cette adresse :
http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=9ef05cbd-c1c5-41e7-9da8-212c414a7ab0
Vous obtiendrez ces deux fichiers : Scriptomatic.hta et Write
WMI Scripts Like the Pros.doc placés dans \WindowsScripts\Scriptomatic.
1) Double-cliquez sur le fichier portant une extension .hta.
2) Dans la liste déroulante Begin by selecting a class,
sélectionnez votre requête.
Afin de, par exemple, connaître la version du Bios de votre
ordinateur, choisissez Win32 BIOS puis cliquez sur le bouton Run.
Une fenêtre d'Invite de commandes se lancera et affichera
les informations complètes.
Il est possible d'enregistrer le script en cliquant sur le bouton
Save, puis de le lancer à nouveau en choisissant le bouton
Open.
Afin d'interroger la configuration d'un ordinateur distant, il
vous suffit de changer le nom de la machine en modifiant cette
ligne : strComputer = “.“
Dépanner WMI
- Dépannage rapide des fonctionnalités WMI :
1) Cliquez sur Démarrer/Exécuter puis saisissez
: cmd
2) Saisissez : net stop winmgmt
3) Dans l'Explorateur Windows ouvrez Windows\system32\wbem.
4) Supprimez un répertoire nommé Repository.
5) En Invite de commandes saisissez : net start winmgmt
Éventuellement et afin d'enregistrer à nouveau l'ensemble
des composants WMI saisissez partir de l'Invite de commandes ceci
:
cd /d %windir%\system32\wbem
for %i in (*.dll) do RegSvr32 -s %i
for %i in (*.exe) do %i /RegServer
- Résoudre un problème sur les fonctionnalités WMI :
1) Cliquez sur Démarrer/Exécuter puis saisissez : regsvr32 cimwin32.dll
2) Refaites la même opération pour ces fichiers : CmdEvTgProv.dll,
dsprov.dll, esscli.dll, evntrprv.dll,
fastprox.dll, fwdprov.dll, krnlprov.dll, mofd.dll, siprov.dll,
ncprov.dll, ntevt.dll, policman.dll, repdrvfs.dll, smtpcons.dll,
stdprov.dll, tmplprov.dll, trnsprov.dll, updprov.dll, viewprov.dll,
wbemads.dll, wbemcntl.dll, wbemcons.dll, wbemcore.dll, wbemdisp.dll,
wbemess.dll, wbemperf.dll, wbemprox.dll, wbemsvc.dll, wbemupgd.dll,
wmiaprpl.dll, wmicookr.dll, wmidcprv.dll, wmimsg.dll, wmipcima.dll,
wmipdskq.dll, wmipiprt.dll, wmiprov.dll, wmipsess.dll, wmisvc.dll,
wmitimep.dll, wmiutils.dll.
3) Cliquez sur Démarrer/Exécuter puis saisissez : cmd
4) Tapez cette suite de commandes :
net stop winmgmt
winmgmt /kill
cmd /c rmdir /s /q C:\WINDOWS\system32\wbem\repository
net stop winmgmt
winmgmt /clearadap
winmgmt /unregserver
winmgmt /regserver
winmgmt /resyncperf
net start winmgmt
sc config winmgmt start= auto
- J'ai des erreurs WMI :
Cliquez sur Démarrer/Exécuter puis saisissez :
regsvr32 %windir%\system32\atl.dll
regsvr32 %windir%\system32\netshell.dll
regsvr32 %windir%\system32\hnetcfg.dll
regsvr32 %windir%\system32\netcfgx.dll
regsvr32 %windir%\system32\netman.dll
- Erreur 1068 : Le service ou le groupe de dépendance
n'a pas pu démarrer :
1) Cliquez sur Démarrer/Exécuter puis saisissez
: CMD /K SC QC WINMGMT
2) Vérifiez ce qui est indiqué en face de la ligne
DEPENDENCIES
Vous devez avoir ces deux indications : RPCSS et Eventlog
3) Dans l'éditeur du Registre ouvrez cette clé :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\winmgmt
4) Éditez une valeur de chaînes multiples nommée
DependOnService.
5) Saisissez ces valeurs :
RPCSS
Eventlog
Vous devez effectuer un retour à la ligne après
avoir inscrit la valeur RPCSS.
- "Impossible d'accéder au logiciel WMI (Windows
Management Instrumentation) Les fichiers de gestion Windows ont
peut être été déplacés ou sont
manquants" :
1) Cliquez sur Démarrer/Exécuter puis saisissez
: cmd
2) Tapez ces quatre commandes :
Net stop WinMgmt
sc sdset bits "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
sc sdset wuauserv "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
net start WinMgmt
|
|
|
|
|
|
|
|
|
|