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.
Administration à distance avec WMI
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 cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise
Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre dossier Green IT sur les actions engagés par inmac wstore pour réduire son impact environnemental
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- L’Intelligence Artificielle, le nouveau copilote du CRM : une révolution incontournable
- Optimiser la gestion de la relation client dans le secteur des sciences de la vie
- 2025, un « âge de raison » pour l’écosystème de la technologie ?
- 59 % des entreprises françaises victimes de ransomwares ont stoppé leurs opérations !
- KeeeX accélère son développement en Europe en 2025 !
