Microsoft Windows Script Host ( WSH ) (anciennement appelé Windows Scripting Host ) est une technologie d'automatisation pour les systèmes d'exploitation Microsoft Windows qui fournit des capacités de script comparables aux fichiers batch , mais avec une gamme plus large de fonctionnalités prises en charge. Cet outil a d'abord été fourni sur Windows 95 après la version 950a sur les disques d'installation en tant qu'installation facultative configurable et installable au moyen du Panneau de configuration , puis en tant que composant standard de Windows 98 (version 1111) et suivants et de Windows NT 4.0 Build 1381 et au moyen du Service Pack 4. Le WSH est également un moyen d'automatisation pour Internet Explorer via les moteurs WSH installés à partir de la version 3.0 d'IE ; à cette époque, VBScript est devenu un moyen d'automatisation pour Microsoft Outlook 97. Le WSH est également une installation facultative fournie avec un moteur VBScript et JScript pour Windows CE 3.0 et suivants et certains moteurs tiers, dont Rexx et d'autres formes de Basic, sont également disponibles.
Il est indépendant du langage dans la mesure où il peut utiliser différents moteurs de langage Active Scripting . Par défaut, il interprète et exécute les fichiers JScript en texte brut (fichiers .JS et .JSE) et VBScript (fichiers .VBS et .VBE).
Les utilisateurs peuvent installer différents moteurs de script pour pouvoir écrire des scripts dans d'autres langages, par exemple PerlScript . L' extension de nom de fichier indépendante du langage WSF peut également être utilisée. L'avantage du fichier de script Windows (.WSF) est qu'il permet d'écrire plusieurs scripts (« jobs ») ainsi qu'une combinaison de langages de script dans un seul fichier.
Les moteurs WSH incluent diverses implémentations pour Rexx , ooRexx , BASIC , Perl , Ruby , Tcl , PHP , JavaScript , Delphi , Python , XSLT et d'autres langages.
Windows Script Host est distribué et installé par défaut sur Windows 98 et les versions ultérieures de Windows. Il est également installé si Internet Explorer 5 (ou une version ultérieure) est installé. À partir de Windows 2000 , Windows Script Host est disponible pour une utilisation avec des scripts de connexion utilisateur.
Usage
Windows Script Host peut être utilisé à diverses fins, notamment pour les scripts de connexion, l'administration et l'automatisation générale. Microsoft le décrit comme un outil d'administration . WSH fournit un environnement pour l'exécution des scripts : il appelle le moteur de script approprié et fournit un ensemble de services et d'objets avec lesquels le script peut travailler. Ces scripts peuvent être exécutés en mode GUI ( WScript.exe ) ou en mode ligne de commande ( CScript.exe ), ou à partir d'un objet COM ( wshom.ocx ), offrant une flexibilité à l'utilisateur pour les scripts interactifs ou non interactifs. Windows Management Instrumentation est également scriptable par ce moyen.
Le WSH, les moteurs et les fonctionnalités associées sont également répertoriés comme des objets accessibles, scriptés et interrogés au moyen des explorateurs d'objets VBA et Visual Studio et de ceux d'outils similaires tels que les différents débogueurs de scripts, par exemple Microsoft Script Debugger , et les éditeurs.
WSH implémente un modèle d'objet qui expose un ensemble d' interfaces COM ( Component Object Model ). Ainsi, en plus d'ASP, IIS, Internet Explorer, CScript et WScript, WSH peut être utilisé pour automatiser et communiquer avec n'importe quelle application Windows avec COM et d'autres objets exposés, comme l'utilisation de PerlScript pour interroger Microsoft Access par divers moyens, notamment divers moteurs ODBC et SQL , ooRexxScript pour créer ce qui sont en fait des macros Rexx dans Microsoft Excel , Quattro Pro, Microsoft Word , Lotus Notes et autres, le script XLNT pour obtenir des variables d'environnement et les imprimer dans un nouveau document TextPad , etc.
La fonctionnalité VBA de Microsoft Office, Open Office (ainsi que Python et d'autres langages de macro installables) et Corel WordPerfect Office est distincte des moteurs WSH bien qu'Outlook 97 utilise VBScript plutôt que VBA comme langage de macro.
Python sous la forme de PythonScript ActiveState peut être utilisé pour automatiser et interroger les données dans SecureCRT , comme avec d'autres langages avec des moteurs installés, par exemple PerlScript , ooRexxScript, PHPScript, RubyScript, LuaScript, XLNT , etc. Une exception notable est Paint Shop Pro , qui peut être automatisé en Python au moyen d'un interpréteur de macros dans le programme PSP lui-même plutôt que d'utiliser le moteur PythonScript WSH ou une implémentation Python externe telle que les interpréteurs Python fournis avec les suites logicielles d'émulation et d'intégration Unix ou d'autres implémentations Python autonomes et al. comme intermédiaire et peut en effet être programmé ainsi même en l'absence de toute installation Python tierce ; il en va de même pour l'émulateur de terminal programmable Rexx Passport. L' émulateur de terminal SecureCRT , le client FTP SecureFX et les programmes client et serveur associés de Van Dyke sont, à partir des versions actuelles, automatisés au moyen du WSH, de sorte que tout langage avec un moteur installé peut être utilisé ; le logiciel est livré avec des exemples VBScript, JScript et PerlScript.
Depuis les versions les plus récentes et depuis un certain nombre de versions, la programmabilité de 4NT / Take Command dans les dernières implémentations (au moyen de « @REXX » et autres pour Perl, Python, Tcl, Ruby, Lua, VBScript, JScript, etc.) utilise généralement le moteur WSH. L' émulateur de terminal ZOC obtient sa capacité à être programmé en Rexx au moyen d'un interpréteur externe, dont l'un est fourni avec le programme, et des interpréteurs Rexx alternatifs peuvent être spécifiés dans la configuration du programme. Le kit d'outils MKS fournit PScript, un moteur WSH en plus de l'interpréteur Perl standard perl.exe fourni avec le paquet.
VBScript, JScript et certains moteurs tiers ont la capacité de créer et d'exécuter des scripts dans un format codé qui empêche l'édition avec un éditeur de texte ; les extensions de fichier pour ces scripts codés sont .vbe et .jse et d'autres de ce type.
Sauf indication contraire, n'importe quel moteur de script WSH peut être utilisé avec les différents logiciels de serveur Windows pour fournir des scripts CGI. Les versions actuelles des moteurs WSH par défaut et la plupart ou la totalité des moteurs tiers ont également des capacités de socket ; en tant que script CGI ou autre, PerlScript est le choix de nombreux programmeurs à cet effet et VBScript et divers moteurs basés sur Rexx sont également considérés comme suffisamment puissants en termes de connectivité et de capacités de traitement de texte pour être également utiles. Cela vaut également pour l'accès et le traitement des fichiers : les premiers moteurs WSH pour VBScript et JScript ne le font pas puisque le langage de base ne le faisait pas, alors que PerlScript, ooRexxScript et les autres le disposent dès le début.
WinWrap Basic, SaxBasic et d'autres sont similaires à Visual Basic pour Applications. Ces outils sont utilisés pour ajouter des capacités de script et de macro aux logiciels en cours de développement et peuvent être trouvés dans les versions antérieures de Host Explorer par exemple. De nombreux autres langages peuvent également être utilisés de cette manière. D'autres langages utilisés pour le scriptage de programmes incluent Rexx, Tcl, Perl, Python, Ruby et d'autres qui sont livrés avec des méthodes pour contrôler les objets dans le système d'exploitation et les programmes de tableur et de base de données. Une exception est que l' émulateur de terminal Zoc est contrôlé par un interpréteur Rexx fourni avec le package ou un autre interpréteur spécifié par l'utilisateur ; c'est également le cas avec l'émulateur Passport.
VBScript est le langage macro de Microsoft Outlook 97, tandis que WordBasic est utilisé pour Word jusqu'à 6, PowerPoint et d'autres outils. Excel jusqu'à 5.0 utilise Visual Basic 5.0. Dans Office 2000 et les versions ultérieures, le véritable Visual Basic for Applications 6.0 est utilisé pour tous les composants. D'autres composants utilisent Visual Basic for Applications . OpenOffice utilise Visual Basic, Python et plusieurs autres comme langages macro et d'autres peuvent être ajoutés. LotusScript est très proche de VBA et utilisé pour Lotus Notes et Lotus SmartSuite , qui comprend Lotus Word Pro (le descendant actuel d' Ami Pro ), Lotus Approach , Lotus FastSite, Lotus 1-2-3 , etc. Le VBA pur, sous licence de Microsoft, est utilisé dans les produits Corel tels que WordPerfect , Paradox , Quattro Pro , etc.
Tout langage de script installé sous Windows est accessible par des moyens externes tels que PerlScript, PythonScript, VBScript et les autres moteurs disponibles peuvent être utilisés pour accéder aux bases de données (Lotus Notes, Microsoft Access, Oracle Database , Paradox) et aux tableurs (Microsoft Excel, Lotus 1-2-3, Quattro Pro) et à d'autres outils comme les traitements de texte, les émulateurs de terminaux, les shells de commande, etc. Cela peut être réalisé au moyen de WSH, de sorte que tout langage peut être utilisé s'il existe un moteur installé.
Dans les versions récentes de l' invite de commande et des outils améliorés Take Command , la commande « script » tapée à l'invite du shell produira une liste des moteurs actuellement installés, un par ligne et donc délimitée par CR-LF.
Exemples
Le premier exemple est très simple ; il montre un script VBScript qui utilise l'objet COM racine WSH « WScript » pour afficher un message avec un bouton « OK ». Au lancement de ce script, le moteur CScript ou WScript sera appelé et l'environnement d'exécution sera fourni.
Contenu d'un fichierhello0.vbs
WScript . Echo "Bonjour tout le monde" WScript . Quitter
La programmation WSH peut également utiliser le langage JScript .
Contenu d'un fichierhello1.js
WSH . Echo ( "Bonjour tout le monde" ); WSH . Quit ();
Ou, le code peut être mélangé dans un fichier WSF , comme VBScript et JScript , ou tout autre :
Contenu d'un fichierhello2.wsf
<job> <script language= "VBScript" > MsgBox "bonjour le monde (depuis vb)" </script> <script language= "JScript" > WSH.echo("bonjour le monde (depuis js)"); </script> </job>
Problèmes de sécurité
Les applications et processus Windows peuvent être automatisés à l'aide d'un script dans Windows Script Host. Des virus et des logiciels malveillants peuvent être écrits pour exploiter cette capacité. Ainsi, certains suggèrent de le désactiver pour des raisons de sécurité. Alternativement, les programmes antivirus peuvent offrir des fonctionnalités pour contrôler les scripts .vbs et autres qui s'exécutent dans l'environnement WSH.
Depuis la version 5.6 de WSH, les scripts peuvent être signés numériquement par programmation à l'aide de l' objet Scripting.Signer dans un script lui-même, à condition qu'un certificat valide soit présent sur le système. Alternativement, l'outil signcode du SDK de la plateforme, qui a été étendu pour prendre en charge les types de fichiers WSH, peut être utilisé sur la ligne de commande.
En utilisant les politiques de restriction logicielle introduites avec Windows XP, un système peut être configuré pour exécuter uniquement les scripts qui sont stockés dans des emplacements approuvés, ont un hachage MD5 connu ou ont été signés numériquement par un éditeur approuvé, empêchant ainsi l'exécution de scripts non approuvés.
Moteurs de script disponibles
Remarque : par définition, tous ces moteurs de script peuvent être utilisés dans la programmation CGI sous Windows avec n'importe quel nombre de programmes et de configurations, ce qui signifie que les fichiers de code source d'un script utilisé sur un serveur à des fins CGI peuvent porter d'autres extensions de fichier telles que .cgi, etc. La capacité susmentionnée de Windows Script Host à exécuter un script contenant plusieurs langues dans des fichiers avec une extension .wsh. Le HTML et le XML étendus ajoutent également des possibilités supplémentaires lors de l'utilisation de scripts pour une utilisation en réseau, tout comme les pages Active Server , etc. De plus, les scripts shell Windows et les scripts écrits dans des shells avec des capacités améliorées comme TCC , 4NT , etc. et les shells Unix sous un logiciel d'interopérabilité comme MKS Toolkit peuvent également contenir des scripts intégrés.
Il a été suggéré de créer des moteurs pour d'autres langages, tels que LotusScript , SaxBasic, BasicScript, KiXtart , awk , bash , csh et d'autres shells Unix, 4NT , cmd.exe (le shell Windows NT), Windows PowerShell , DCL , C , C++ , Fortran et d'autres. Le langage XLNT est basé sur DCL et fournit un très grand sous-ensemble du langage ainsi que des commandes et des instructions supplémentaires et le logiciel peut être utilisé de trois manières : le moteur WSH (*.xcs), l'interpréteur de console (*.xlnt) et comme moteur CGI côté serveur et côté client (*.xgi).
Lorsqu'un serveur implémente CGI tel que Windows Internet Information Server, les ports d'Apache et autres, tous ou la plupart des moteurs peuvent être utilisés ; les plus couramment utilisés sont VBScript, JScript, PythonScript, PerlScript, ActivePHPScript et ooRexxScript. Le programme MKS Toolkit PScript exécute également Perl. Les shells de commande tels que cmd.exe, 4NT, ksh et les langages de script avec traitement de chaîne et de préférence fonctionnalité socket peuvent également être utilisés pour les scripts CGI ; les langages compilés tels que C++, Visual Basic et Java peuvent également être utilisés de cette manière. Tous les interpréteurs Perl, ooRexx, PHP et les versions plus récentes de VBScript et JScript peuvent utiliser des sockets pour TCP/IP et généralement UDP et d'autres protocoles pour cela.
Historique des versions
La version redistribuable de WSH version 5.6 peut être installée sur Windows 95/98/Me et Windows NT 4.0/2000. WSH 5.7 est téléchargeable pour Windows 2000, Windows XP et Windows Server 2003. Depuis peu , les versions redistribuables pour les anciens systèmes d'exploitation (Windows 9x et Windows NT 4.0) ne sont plus disponibles dans le Centre de téléchargement Microsoft.
Depuis Windows XP Service Pack 3, la version 5.7 est la seule version disponible auprès de Microsoft, les révisions plus récentes étant incluses dans les versions plus récentes de Windows depuis.