Vous venez de passer des heures à écrire un script chargé de supprimer automatiquement les anciens comptes utilisateur inactifs dans l’AD (Active Directory). Bien que vous soyez débutant en code VBScript, la suppression manuelle des anciens comptes d’AD chaque mois était une telle corvée que vous vous êtes résolu à écrire ce script. Plein d’espoir, vous l’exécutez sur votre réseau de test… pour le voir s’arrêter prématurément. Pas croyable ! Où est l’anomalie ? Les raisons sont multiples. Cependant, le principe de Pareto (c’est-à-dire, la règle des 80/20) veut que la plus grande partie des erreurs de script (80 % environ) provient d’un petit nombre de causes possibles (20 % environ).Plusieurs experts en scripting ont récemment parlé des erreurs courantes qu’ils trouvent quand ils examinent le code VBScript sur le terrain. D’après ces experts et à en croire divers articles, les erreurs de syntaxe VBScript les plus courantes (c’est-à-dire, celles qui surviennent quand le code transgresse les règles grammaticales du langage VBScript) et les erreurs à l’exécution (c’est-à-dire, les erreurs qui se produisent quand un script tente d’effectuer une action que le système ne peut pas exécuter) surviennent quand les auteurs de scripts utilisent des variables, des instructions de traitement d’erreurs, des guillemets et des caractères spéciaux et réservés.
Quand de bons scripts dérapent
Pendant plusieurs heures, vous avez produit des lignes de code qui capturent l’information pour chaque imprimante de votre réseau multisite. Votre tête est pleine de monikers WMI (Windows Management Instrumentation), de constantes VBScript, de strComputer, de colPrinters et de variables d’impression. Et vos yeux sont fatigués de fixer l’écran. Finalement, quand vous utilisez colPrinter dans la dernière instruction For Each… Next, vous savez que c’est enfin la dernière ligne droite. Vous bouclez rapidement le script et le testez, mais le script se termine de façon abrupte et votre espoir de rentrer tôt à la maison s’évanouit.
Que s’est-il produit ? Exactement ce que vous venez de lire. Le paragraphe précédent contient une erreur trop fréquente dans les scripts : la faute d’orthographe. Dans un cas, le nom de la variable de colonne comportait la lettre s (colPrinters) mais, dans l’autre cas, le s était absent (colPrinter). C’est peu, mais ça suffit.
« Il me semble que le problème le plus fréquent est le non usage du motclé Option Explicit, puis de voir le script échouer parce qu’il utilise une variable qui ressemble beaucoup à celle qu’il est supposé utiliser », déclare Michael Otey, président de TECA, une firme de développement et conseil en logiciel et directeur technique de Windows IT Pro. Ce même problème était aussi en tête du palmarès des autres experts en scripting, y compris Steve Seguis, CEO et architecte logiciel en chef de SCRIPTMATION, une firme d’automatisation de systèmes d’entreprise. Selon lui : « L’un des problèmes les plus courants que j’ai rencontré avec le code VBScript est celui de variables mal orthographiées ». Par exemple, on utilise une variable appelée oUser dans un endroit puis on essaie de la lire sous la forme oUsr dans un autre. Or, il est facile de corriger ce genre de problème en forçant la déclaration de variables à l’aide de Option Explicit ».
VBScript peut vous aider à éviter les fautes d’orthographe. Pour utiliser une variable dans le code VBScript, il suffit de lui attribuer une valeur. Inutile de définir explicitement (c’est-à-dire de déclarer) les variables que vous utilisez. Cependant, tout comme la consommation de légumes ou l’exercice physique quotidien, c’est dans votre intérêt même si ce n’est pas obligatoire. Pour déclarer des variables explicitement, il suffit de placer l’instruction Option Explicit au début du script pour bien signifier au moteur de scripting votre intention de n’autoriser que les variables que vous avez déclarées explicitement avec des instructions Dim, Private, Public et ReDim. Si le moteur de scripting rencontre une variable non déclarée, il vous envoie le message d’erreur Variable is undefined (numéro d’erreur 500), suivi du nom de la variable non déclarée.
Cette simple petite ligne peut vous épargner des dizaines d’heures de débogage laborieux. S’il y a plus d’une variable non définie, le message d’erreur ne mentionne que la première qu’il rencontre. En VBScript, toutes les chaînes doivent être mises entre guillemets (« »).
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Afficher les icônes cachées dans la barre de notification
- Et si les clients n’avaient plus le choix ?
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
Les plus consultés sur iTPro.fr
- Une nouvelle ère de la modernisation du mainframe
- Akamai Technologies déploie sa stratégie de protection en ligne
- Baromètre channel IT : fin du cuivre, essor de UCaaS et premiers pas vers l’IA
- Fraude par identité synthétique : comment l’IA peut redonner confiance aux entreprises et à leurs clients
Articles les + lus
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
À la une de la chaîne Tech
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
