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

Rapport Forrester sur les services de réponse aux incidents de cybersécurité
Dans ce rapport, basé sur 25 critères, Forrester Consulting passe au crible les 14 principaux fournisseurs de services de réponse aux incidents de cybersécurité du marché. Cette analyse complète permet aux professionnels de la sécurité et de la gestion des risques d’évaluer et de sélectionner les solutions les plus adaptées à leurs besoins.
Les articles les plus consultés
- Afficher les icônes cachées dans la barre de notification
- Activer la mise en veille prolongée dans Windows 10
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Et si les clients n’avaient plus le choix ?
- Cybersécurité Active Directory et les attaques de nouvelle génération
Les plus consultés sur iTPro.fr
- Analyse Patch Tuesday Juin 2025
- L’IA agentique ouvre la voie à davantage d’alliances stratégiques et d’intégrations technologiques
- Oneytrust, la fintech française référente de la lutte contre la fraude bancaire & e-commerce fête ses 25 ans !
- Prendre en compte le développement durable est un facteur de réussite
- L’IA et le machine learning au service d’une cybersécurité préventive
