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