> Tech > Administration à  distance avec WMI

Administration à  distance avec WMI

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par Christopher George - Mis en ligne le 29/10/2003
Une tendance semble se dessiner à  Redmond. Microsoft prend les outils administratifs et les utilitaires de ligne de commande, jusque-là  cantonnés à  l'ordinateur local, pour les transformer en géants d'administration à  distance. Ce changement s'articule autour de WMI (Windows Management Instrumentation), l'instrumentation sousjacente sur laquelle sont construits les outils.
Il est vrai que, même si on l'ignore, Microsoft a depuis le début conçu WMI pour prendre en charge des scénarios d'administration à  distance. Autrement dit, tout ce que l'on peut effectuer localement avec un outil de type WMI peut aussi se faire à  distance. Pour démontrer l'agilité de WMI en matière d'administration à  distance, nous allons voir plusieurs scénarios. Tout d'abord, je présente un script WMI simple qui effectue une tâche administrative sur l'ordinateur local. Ensuite, je montre comment transformer facilement le script en un script capable d'opérer à  distance. Enfin, nous verrons comment appliquer le script à  tous les ordinateurs sur un subnet IP distant.
Pour bien tirer parti de cet article, vous devez connaître les principes de base de WMI et du scripting WMI. Si vous devez améliorer vos connaissances en la matière, je vous conseille de lire « WMI Scripting Primer : Part I » à  http://msdn.microsoft.com/library/ en-us/dnclinic/html/scripting06112002 .asp.

La tâche administrative que je veux effectuer
sur l’ordinateur local consiste à 
vérifier le Startup Type and Status du
service Telnet. Avant de vous écrier :
« Pitié, pas un autre script de service ! »,
permettez-moi de préciser que la tâche
n’a pas grande importance. Vous pouvez
facilement la remplacer par n’importe
quel script parmi les centaines
de scripts WMI disponibles au
Microsoft Telnet Script Center
(http://www.microsoft.com/technet/sc
ripcenter). Mon but est de vous montrer
comment prendre un script WMI
courant et le mettre au service de centaines
ou de milliers d’ordinateurs distants.
Le listing 1 montre la version locale
du script Telnet Server, nommé judicieusement
TelnetCheck.vbs. Le script
commence par initialiser la variable
strComputer avec une chaîne constituée
d’un simple point. En scripting
WMI, le point représente l’ordinateur
local. Comme ce script fonctionne sur
l’ordinateur local, j’aurais pu omettre la variable strComputer, mais en isolant
la variable de l’ordinateur cible
(comme le montre le listing 1), je facilite
la future adaptation du script à  des
ordinateurs distants.
Le script utilise la fonction
GetObject de VBScript pour se
connecter au service WMI sur l’ordinateur
cible. La chaîne que le script passe
à  la fonction GetObject est une chaîne
de connexion WMI (aussi appelée moniker)
constituée de trois composants
:
• le préfixe WMI obligatoire « winm
gmts: »
• les paramètres de sécurité qui ordonnent
à  WMI d’imiter l’appelant
(c’est-à -dire, d’utiliser le contexte de
sécurité de la personne ou du processus
exécutant le script pour établir
la connexion
• un chemin d’objet WMI comprenant
le nom de l’ordinateur cible et le
WMI namespace auquel se connecter
sur l’ordinateur distant
GetObject renvoie une référence à 
l’objet SWbemServices de la bibliothèque
de script WMI, qui représente
une connexion authentifiée à  WMI sur
un ordinateur local ou distant.
Une fois la connexion établie, le
listing 1 appelle la méthode SWbem
Services ExecQuery pour extraire l’instance
de la classe Win32_Service qui
représente le service Telnet. Exec
Query renvoie une référence à  une collection
SWbemObjectSet – un autre
objet d’automatisation dans la bibliothèque
de script WMI. Si Telnet est installé
sur l’ordinateur cible, ExecQuery
renvoie une collection contenant exactement
un élément, qui est attribué à  la
variable de référence nommée
colServices. Si Telnet n’est pas installé,
ExecQuery renvoie une collection
vide. Le script utilise la propriété
Count de SWbemObjectSet pour déterminer
si Telnet est installé sur l’ordinateur
cible. Si la propriété Count est
égale à  0, la méthode WScript Echo
renvoie en écho à  la console un message
indiquant que Telnet n’est pas installé.
Dans le cas contraire, la méthode
Echo envoie en écho le Startup Type (la
propriété Win32_Service StartMode)
et le Status (la propriété Win32_
Service State) du service Telnet.
Pour exécuter le script du listing 1,
ouvrez une invite de commande et tapez
ce qui suit (en supposant que vous avez sauvegardé le script dans un répertoire
nommé C :\scripts) :
C:\scripts>cscript telnetcheck.vbs
Si Telnet est installé sur l’ordinateur
local, vous obtiendrez un message
semblable au suivant, envoyé en écho à 
la console :ATL-LAB-à˜1,Disabled,Stopped

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Tech - Par iTPro.fr - Publié le 24 juin 2010