> Tech > Générer des scripts d’une ligne, par programme

Générer des scripts d’une ligne, par programme

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

Un script permet de générer des scripts d’une ligne pour vous éviter de les écrire manuellement. GOLS.wsf (abréviation de Generate One-Line Scripts) est un exemple de ce genre de script. GOLS.wsf reconnaît l’identificateur unique pour la classe que vous indiquez, crée un script d’une ligne pour la propriété qui vous

Générer des scripts d’une ligne, par programme

intéresse, écrit ce code dans un fichier texte et sauvegarde ce dernier comme un script .vbs.

Pour utiliser GOLS.wsf, vous devez ouvrir une fenêtre shell de commande et, si nécessaire, changer le répertoire pour qu’il devienne le dossier qui contient le script. Ensuite exécutez la commande

cscript /nologo GOLS.vbs /c:Classname /p:PropertyName

où ClassName est le nom de la classe qui vous intéresse et PropertyName est le nom de la propriété intéressante dans cette classe. Une fois ce script en place, il n’est plus nécessaire d’éditer le script pour chaque classe et propriété WMI pour lesquelles vous voulez générer des scripts.

Le listing 4 montre un extrait de GOLS.wsf. Vous pouvez télécharger tout le script ainsi que les autres de cet article sur www.itpro.fr Club abonnés.

D’emblée, GOLS.wsf vérifie si l’utilisateur a inclus les paramètres de ligne de commande ClassName et Property- Name. Si l’un ou les deux manquent, le script affiche la syntaxe usuelle du script. Quand les paramètres ClassName et PropertyName sont présents, le script les attribue à la variable sClassName et sPropertyName respectivement. Le script crée aussi un objet FileSystemObject afin de pouvoir ultérieurement créer et sauvegarder un fichier texte.

Les quelques sections suivantes dans GOLS.wsf sont semblables à celles de GetKeyProperty.wsf. GOLS.wsf utilise la méthode GetObject pour se connecter au service WMI et la méthode Get pour extraire une instance de la classe spécifiée. Ensuite, le script extrait la collection de propriétés de la classe spécifiée et la stocke dans la variable colProperties. Le script utilise la fonction HetKeyProperty pour reconnaître l’identificateur unique.

Comme le montre le listing 4, après avoir obtenu le nom de l’identificateur unique, GOLS.wsf crée un nouveau fichier texte, y écrit le script d’une ligne pour la propriété que vous avez spécifiée sur la ligne de commande, puis ferme le fichier. Pour finir, le script libère la mémoire qu’il utilisait. Vous trouverez le nouveau fichier .vbs dans le répertoire à partir duquel vous avez exécuté GOLS.wsf.

Supposons que vous appliquiez GOLS.wsf à la classe Win32_Printer et à la propriété Name. GOLS.wsf va générer un script nommé getprinter_name.vbs que vous pourrez tester à partir de la ligne de commande en lui transmettant un paramètre approprié. Pour getprinter_name.vbs, vous devez entrer comme paramètre un identificateur d’imprimante. Ainsi, pour tester le script par rapport à une imprimante nommée Brother HL-1240, vous exécuteriez la commande

cscript /nologo getprinter_name.vbs "Brother HL-1240"

Téléchargez gratuitement cette ressource

Endpoint Security : Guide de Mise en œuvre

Endpoint Security : Guide de Mise en œuvre

Détournement d’applications légitimes, élévation de privilèges, logiciels malveillants furtifs : comment les solutions de Endpoint Security permettent elles de faire face aux nouvelles techniques d'attaques complexes ? Découvrez, dans ce Guide Endpoint Security, les perspectives associées à leur mise en œuvre.

Tech - Par iTPro - Publié le 24 juin 2010