Windows Script
Transcription
Windows Script
Windows Script Université Paris Sud XI Orsay IFIPS GI Michel FAN 1 Les différents niveaux de programmation sous Windows Utilisateurs, opérateurs, débutants Experts, administrateurs, programmeurs Programmeurs Programmeurs système, Experts architecture Windows Shell Souris, clavier, menus, icones, drag-and-drop WSH Macro, Script, Scheduling Windows Applications Windows Système Languages évolués, Compilation de codes Language C assembleur, codes binaires 2 Windows Scripting Host WSH (Windows Scripting Host) comble les insuffisances des fichiers BAT / CMD WSH est un moteur de script (interpréteur ) Active X pour les plateformes 32bits Windows W98,NT, W2k, XP. Capable d ’interpréter VBScript et JScript (Microsoft), il est prévu pour les langages suivants: PERL, TCL, REXX, Python et autres. WSH peut fonctionner en mode fenêtre avec Wscript.exe ou en ligne de commande avec Cscript.exe. Les Windows scripts peuvent généralement être exécutés sous Internet Explorer, IIS et sous WSH. 3 La version actuelle de WSH est la version 2.0. WSH est livré avec : Windows 2000 / XP … Windows 98 (une des options d’installation) Windows NT 4.0 Option Pack (une des options d’installation) Internet Explorer 5 / 6 / 7 .. WSH n’est pas livré avec : Windows 95 Windows NT4 4 Windows Scripting Host Il fournit un puissant outil de contrôle et de configuration du système, de la base de registre, et permet un dialogue à travers des fenêtres Windows avec l ’utilisateur. Il est indispensable à l'administration d'un système Windows. WSH 2.0 Basé sur un conteneur XML (extension fichier .ws) Possibilité de mixer du VBScript avec du JScript. Possibilité de créer des classes Permet d ’accéder à tous les objets Active X et Automation 5 Windows Scripting Host WSH n’est pas un langage de programmation … WSH est un hôte de script comme IE ... Internet Explorer en tant que Hôte de script permet lancer des scripts (VB ou JScript) dans des fichiers .htm ou .asp. Exemple: <SCRIPT LANGUAGE="VBScript"> MsgBox " Test sous IE en VB" </SCRIPT> <SCRIPT LANGUAGE="JavaScript"> alert(" Test sous IE en JS "); </SCRIPT> 6 Execution Lancement du script Windows Shell .vbs / .js recherche ? WSH vbscript.dll jscript.dll Exécution du script Base de registres moteur de script ....dll 7 2 façons de lancer un script Wscript.exe Wscript permet de lancer des scripts en utilisant l’environnement Windows. On peut lancer le fichier en double-cliquant dessus. Cscript.exe Lancement d’un script dans une fenêtre ligne de commandes. Quelques options: //B mode silencieux //T:nn temps limite de fonctionnement (seconde) //H:cscript ou wscript choix du mode par défaut 8 WSH Le modèle d'objet WSH se compose de 14 objets de base. L'objet racine est WScript. Le jeu des interfaces COM permet aux scripts d'effectuer les manipulations de base de WSH, d'imprimer des messages à l'écran et d'effectuer des fonctions COM telles que CreateObject et GetObject. 9 Le modèle objet WSH Objet intrinsèque : Wscript Objet prédéfinie sans nécessité d'instancier dans l'environnement WSH Quelques propriétés: Arguments Collection des paramètres FullName Chemin complet de l’exécutable utilisé Name Nom de wscript (propriété par défaut) Path Nom du répertoire où se trouvent Wscript.exe ou Cscript.exe ScriptFullName Chemin complet du script qui est exécuté par WSH ScriptName Nom du fichier de script qui est exécuté par WSH Version Version de WSH 10 Objet WScript Quelques méthodes: CreateObject() Crée un objet et met en place la gestion des évènements. GetObject() Retourne un objet Automation à partir d’un fichier. Echo() Affiche des paramètres dans une fenêtre ou au prompt Sleep() mise en sommeil (durée en ms) Quit() Stoppe l’exécution avec un code d’erreur particulier 11 Création d'un Objet La création d'un Objet passe par la méthode Wscript.CreateObject() Exemple: Set objShell = Wscript. CreateObject(″″WScript.Shell″″) WScript.Shell et le ProgID de cet objet Set objNetwork =Wscript.CreateObject(″″Wscript.Network″″) Wscript.Network et le ProgID de cet objet Set objNetwork =Wscript.CreateObject(″″Word.Application″″) Word.Application et le ProgID de cet objet On utilise aussi la fonction CreateObject de VBscript Set objShell = CreateObject(″″WScript.Shell″″) 12 Les collections Les collections sont des types d’objets semblables aux tableaux En tant qu’objet, ils disposent de propriétés et de méthodes. Wscript.Arguments est une collection, la propriété .Count indique le nombre d’élément de données. For Each est un moyen pratique pour accéder à chaque élément de la collection. Exemple: lister tous les fichiers contenu dans un répertoire en utilisant la collections Files FileSystemObject.GetFolder() -> objet oFolder oFolder.Files -> collection de fichiers 13 Objet RegExp L'Objet RegExp est un 'utilitaire' de recherche de chaîne polyvalent utilisant des 'expressions régulières'. On définie une chaîne décrivant une structure de comparaison dans la propriété Pattern, la méthode .Test retourne le résultat de la comparaison (True/False) La méthode .Execute effectue également une comparaison, mais renvoie une collection Matches. (propriétés: .Value .FirstIndex .Length) 14 Objet Dictionnary L'Objet Dictionnary sert à contenir un jeu de valeur de données sous forme de paires (Key, Item), on peut l’assimiler à un tableau associatif. Propriété: .CompareMode vbBinaryCompare /vbTextCompare Méthodes: .Add / .Remove / .RemoveAll / .Exists / .Key / Les méthodes .Keys / .Items renvoient une collection 15 Objet WshShell ProgID: WScript.Shell Propriétés Environnement une collection de variables d'environnement SpecialFolders une collection des répertoires spéciaux Méthodes CreateShortCut() création d'un raccourci Popup() affichage d'un messageBox (option étendue) Run() lancement d'un programme SendKey() envoi d'un caractère (équivalent d'une frappe de clavier) 16 Objet Network ProgID Wscript.Network Permet d’accéder à des informations réseaux par les propriétés: UserDomain, UserName, ComputerName. Manipulation des lecteurs réseaux par EnumNetworkDrives() Manipulation des imprimantes AddPrinterConnection() 17 JC Bellamy 18 Objet FileSystemObject ProgID Scripting.FileSystemObject Propriétés: AvailableSpace, DriveLetter, DriveType, FileSystem, FreeSpace, IsReady, Path, RootFolder, SerialNumber, ShareName, TotalSize, VolumeName. 19 Objet FileSystemObject Méthodes:BuildPath, CopyFile, CopyFolder, CreateFolder, CreateTextFile, DeleteFile, DeleteFolder, DriveExists, FileExists, FolderExists, GetAbsolutePathName, GetBaseName, GetDrive, GetDriveName, GetExtensionName, GetFile, GetFileName, GetFileVersion, GetFolder, GetParentFolderName, GetSpecialFolder, GetTempName, MoveFile, MoveFolder, OpenTextFile. 20 Encodage L'Encodage permet d'apporter un minimum de sécurité et de confidentialité aux scripts. MSE Microsoft Script Encoder doit être installé pour l'encodage, il n'est pas nécessaire pour le client qui exploite le script. les scripts encodés portent l'extension .vbe pour vbscript ou l'extension .jse pour JScript. Moteurs de script: VBscript.Encode / Jscript.Encode Exemple: fichier VBscript et HTML 21 La réutilisation du code WSH nous offre 2 façons de réutiliser du code avec une approche objet: Les Classes construites avec des scripts Mots clé: Class, End Class, Public, Private, Class_Initialize, méthodes: Sub, End Sub, Function, End Function. Exemple: classe Personne Les Composants Objets Script 22 Windows Script Component Windows Script Component permet de créer facilement des composants COM puissants et réutilisables dans un script. On peut créer des composants de script en utilisant n'importe quel langage de script qui gère les interfaces MS ActiveX Scripting. Les Composants de script : Offrent la possibilité de créer des composants COM. Offrent un accès à une large gamme de services systèmes. Les fichiers du composant de script Windows sont des fichiers XML extension .WSC Outil: Script Component Wizard 23 Automation Il est possible de piloter avec des scripts l'ensemble des applications Office ainsi que l'internet Explorer à travers COM Automation Exemple avec Excel 1) remplissage d’une table. 2) affichage dans une feuille Excel l’occupation disque des répertoires 24 Administration avec ADSI ADSI (Active Directory Service Interface) fourni une interface via des objets COM à l'arborescence Active Directory ADSI permet d'accomplir divers tâches d'administration à distance, par exemple: Création/suppression de compte utilisateurs,de groupes . Contrôle et énumération des services installés. Énumération des postes de travail dans un domaine. Contrôle des partages réseaux. … Les tâches administratives système sont réalisables à travers un "Directory Provider" ( WINNT / LDAP / IIS ) 25 ADSI Client Active Directory Service Interfaces Provider Namespace Objet Objet COM COM Visual Basic Script C C++ Objet Objet COM COM Active Directory Service Interfaces Directory Service protocole 26 ADSI Exemple: Déterminer le type de système Setd'exploitation objComputer= GetObject("WinNT://Duty,computer") Wscript.Echo objComputer.OperatingSystem &_ objComputer.OperatingSystemVersion Lister tous les utilisateurs Set objComputer= GetObject("WinNT://Duty") objComputer.Filter=Array("User") For each objUser In objComputer Wscript.Echo objUser.Name Next 27 Administration avec WMI WMI (Windows Management Instrumentation) WMI est une implémentation de la technologie WBEM sur les plateform Windows. WBEM (Web - Based Enterprise Management) a été développé à l’initiative de DMTF ( Distributed Management Task Force) pour unifier la gestion d’un environnement informatique d’entreprise. Il est orienté objet et permet de gérer des objet de types: matériel, châssis, câble, ou logiciels, application de base de données, ou encore des systèmes, fichiers ou périphériques. outil: Scriptomatic 28