Les environnements d'exécution de VBScript comprennent Windows Script Host (WSH), Internet Explorer (IE) et Internet Information Services (IIS). L'environnement d'exécution peut être intégré à d'autres programmes via le Microsoft Script Control ( msscript.ocx ).
En octobre 2023, Microsoft a annoncé la dépréciation de VBScript. En mai 2024, un calendrier de dépréciation en plusieurs phases a été annoncé, prévoyant sa désactivation par défaut « aux alentours de 2027 » et sa suppression ultérieure.
JScript ) était initialement destinée aux développeurs web. En un peu plus de deux ans, VBScript est passé de la version 1.0 à la version 2.0 et, durant cette période, a gagné en popularité auprès des administrateurs système Windows qui recherchaient un outil d'automatisation plus puissant que le langage batch développé au début des années 1980. Le 1er août 1996, Internet Explorer a été lancé avec des fonctionnalités incluant VBScript.Dans la version 5.0, les fonctionnalités de VBScript ont été augmentées avec de nouvelles fonctionnalités, notamment les expressions régulières ; les classes ; l' instruction With ; les fonctions Eval , Execute et ExecuteGlobal pour évaluer et exécuter les commandes de script construites lors de l'exécution d'un autre script ; un système de pointeur de fonction via GetRef, et la prise en charge de Distributed COM (DCOM).
Dans la version 5.5, les sous-correspondances ont été ajoutées à la classe des expressions régulières en VBScript, afin de permettre enfin aux auteurs de scripts de capturer le texte à l'intérieur des groupes de l'expression. Cette fonctionnalité était déjà disponible en JScript.
Avec l'arrivée du .NET Framework , l'équipe de développement de scripts a décidé d'intégrer la prise en charge future de VBScript à ASP.NET pour le développement web Par conséquent, aucune nouvelle version du moteur VBScript ne serait développée. Désormais, la maintenance serait assurée par l'équipe d'ingénierie de Microsoft , responsable des corrections de bogues et des améliorations de sécurité. Après avoir annoncé son intention de supprimer la prise en charge de VBScript, Microsoft a suggéré de migrer vers Windows PowerShell ou JavaScript .
Environnements
Web côté client
Sur une page web chargée par Internet Explorer , VBScript fonctionne de manière similaire à JavaScript . Le code VBScript intégré au HTML représente la logique qui interagit avec le DOM ( Document Object Model ) de la page Chrome , Firefox et Opera ne prennent pas en charge VBScript. Par conséquent, lorsque l'exécution de scripts côté client et la compatibilité entre navigateurs sont requises, les développeurs privilégient généralement JavaScript en raison de sa large compatibilité.
Page du serveur actif
VBScript est utilisé pour les fonctionnalités côté serveur des pages web via Active Server Pages (ASP). Le moteur ASP, asp.dll , appelle vbscript.dll pour exécuter les scripts VBScript. Le code VBScript intégré à une page ASP est placé entre les balises de contexte <% et %>. L'exemple suivant affiche l'heure actuelle au format 24 heures.<html><head><title> Exemple VBScript </title></head><corps><div><%' Récupérer l'heure actuelle à partir de la fonction Now().Le signe « = » apparaissant après un changement de contexte (<%) est une abréviation.' pour un appel à la méthode Write() de l'objet Response.Dim timeValue : timeValue = Now %>L' heure, au format 24 heures , est<%= Heure ( valeur_temps ) %> : <%= Minute ( valeur_temps ) %> : <%= Seconde ( valeur_temps ) %> . </div></body></html>
Hôte de script Windows
VBScript peut s'exécuter directement dans le système d'exploitation via l' hôte de scripts Windows (WSH). Un fichier de script, généralement avec l'extension.vbs .vscript, peut être exécuté soit via Wscript.exe pour une interface graphique (GUI), soit via Cscript.exe pour une interface en ligne de commande (CLI).
fichier de script Windows
Un fichier de script Windows (WSF), inspiré du format XML, peut contenir plusieurs fichiers VBS et constitue donc une bibliothèque de code VBScript réutilisable de manière modulaire. Ces fichiers possèdent l'extension `.vb` .wsfet peuvent être exécutés à l'aide de `wscript.exe` ou `cscript.exe` , comme un fichier `.vb`.application HTML (HTA) est stylisée selon les principes du HTML. Le code HTML du fichier sert à générer l'interface utilisateur, tandis qu'un langage de script tel que VBScript est utilisé pour la logique du programme. Ces fichiers possèdent l'extension ` mshta.exe` et peuvent être exécutés à l'aide de `mshta.exe` ..Variant », mais il est possible (et parfois nécessaire) de forcer un type particulier (entier, date, etc.) à l'aide de fonctions de conversion ( application HTML . Les formulaires événementiels ne sont pas pris en charge, contrairement à Visual Basic ou Visual Basic pour Applications .
Les noms ne sont pas sensibles à la casse. Cependant, il est recommandé, en VBScript, d'être cohérent et d'utiliser les majuscules avec discernement.
Fonctionnalités VBScript
Lorsqu'il est hébergé par Windows Script Host , VBScript offre de nombreuses fonctionnalités communes aux langages de script, mais indisponibles dans Visual Basic 6.0 . Ces fonctionnalités incluent :
- Arguments de ligne de commande nommés et non nommés
- Stdin et stdout , qui pourraient être redirigés
- WSH.Echo, qui écrit dans la console et ne peut pas être redirigé.
- WSH.ExitCode, qui peut être testé à partir de fichiers batch DOS ou par le processus ayant exécuté le fichier script.
- imprimantes réseau
- Partages du réseau
- Dossiers spéciaux, par exemple Bureau, Favoris, Mes documents, etc.
- Informations sur les utilisateurs du réseau, telles que l'appartenance à un groupe
- Méthodes d'exécution dynamique de texte défini à l'exécution : Eval et Execute
- Méthodes d'exécution de scripts sur des machines distantes
- Instrumentation de gestion Windows (WMI)
- Fonctionnalité permettant d'intégrer un moteur VBScript dans d'autres applications, en utilisant un langage largement répandu.
CScript, l'exécuteur de commandes en ligne de commande, offre des options pour :
- mode interactif ou par lots
- Activation du mode débogage depuis la ligne de commande
- Signalement des erreurs incluant le numéro de ligne
Fonctionnalités supplémentaires
La gestion du système de fichiers, la modification des fichiers et les opérations de traitement de texte en flux continu sont implémentées grâce à la bibliothèque d'exécution de scripts (Scripting Runtime Library) scrrun.dll. Celle-ci fournit des objets tels que FileSystemObject, File et TextStream, qui exposent le système de fichiers Windows au programmeur.
Les entrées/sorties de fichiers binaires et de mémoire sont assurées par la classe « ADODB.Stream », qui peut également servir à la construction de chaînes de caractères (afin d'éviter les concaténations excessives et coûteuses) et à la conversion entre tableaux d'octets et chaînes de caractères. L'accès à la base de données est possible via ActiveX Data Objects (ADO), et la métabase IIS peut être manipulée à l'aide de la fonction GetObject() avec les autorisations suffisantes (utile pour la création et la suppression de sites et de répertoires virtuels). Les fichiers et schémas XML peuvent être manipulés avec les interfaces de programmation d'applications de la bibliothèque XML Microsoft ( msxml6.dll et msxml3.dll ), qui permettent également de récupérer du contenu du Web via les objets XMLHTTP et ServerXMLHTTP (noms de classe : « MSXML2.XMLHTTP.6.0 » et « MSXML2.ServerXMLHTTP.6.0 », respectivement).mesure de sécurité via les mises à jour mensuelles de sécurité Windows afin de désactiver le code vulnérable de Microsoft et de tiers.
Les programmeurs peuvent exploiter l'extensibilité via les modules COM (ActiveX) pour doter spécifiquement l'hôte de script et VBScript des fonctions requises ou souhaitées. Le composant « VTool », par exemple, ajoute un certain nombre de fenêtres de dialogue, l'accès aux fichiers binaires et d'autres fonctionnalités.
Outils de développement
Microsoft ne met pas systématiquement à disposition un EDI ( environnement de développement intégré ) pour VBScript, bien que l' éditeur de scripts Microsoft soit inclus dans certaines versions de Microsoft Office.
Pour le débogage, le débogueur de scripts Microsoft reste utilisable dans les versions actuelles de Windows, même s'il n'a pas été mis à jour depuis des années. Il permet de définir des points d'arrêt dans le code VBScript, mais son interface est pour le moins peu pratique.
Il existe des débogueurs VBScript disponibles auprès de sources tierces, et de nombreux éditeurs de texte offrent une coloration syntaxique pour le langage.
Lors de l'exécution, lorsqu'une erreur se produit, le serveur de scripts émet un message indiquant le type d'erreur et le numéro de la ligne concernée.
Utilisations
Bien que VBScript soit un langage de script généraliste, plusieurs de ses applications spécifiques méritent d'être soulignées. Premièrement, il était autrefois largement utilisé par les administrateurs système dans l'environnement Microsoft , mais il a depuis été largement supplanté par PowerShell . Deuxièmement, VBScript est le langage de script d' OpenText UFT One , un outil d'automatisation des tests . Troisièmement, il convient de noter l'adoption de VBScript comme langage de script interne pour certaines applications embarquées, telles que les interfaces opérateur industrielles et les interfaces homme-machine. Le SGBD hiérarchique InterSystems Caché (dont les origines remontent au langage MUMPS ) prend également en charge une implémentation de VBScript, Cache BASIC, pour la programmation de code stocké
VBScript omet plusieurs fonctionnalités utiles de Visual Basic, telles que le typage fort, la gestion étendue des erreurs et la possibilité de passer un nombre variable de paramètres à une sous-routine. Cependant, son utilisation reste relativement répandue car il est facile à apprendre et que les développeurs qui implémentent du code dans ce langage ne sont pas tenus de verser de redevances à Microsoft tant que la marque VBScript est mentionnée. Lorsqu'une organisation acquiert une licence Visual Basic pour Applications (VBA) auprès de Microsoft, comme l'ont fait des entreprises telles qu'Autodesk, StatSoft, Great Plains Accounting et Visio (rachetée ultérieurement par Microsoft), elle est autorisée à redistribuer l'environnement complet de développement et de débogage VBA avec son produit.
VBScript est utilisé à la place de VBA comme langage de macros dans Outlook 97.
VBScript permet d'automatiser efficacement les tâches bureautiques quotidiennes et d'assurer la surveillance dans un environnement Windows. Il peut également être utilisé conjointement avec ADODB ( ActiveX Data Objects ) pour une connectivité optimale aux bases de données.
VBScript peut également être utilisé pour créer des logiciels malveillants et des virus, tels que le ver ILOVEYOU qui s'est propagé via les pièces jointes des courriels dans Outlook 97 et qui a coûté des milliards de dollars.