Академический Документы
Профессиональный Документы
Культура Документы
___________________________________________
DOSSIER TECHNIQUE
___________________________________________
Dossier technique
Page 1 sur 67
Sommaire
INTRODUCTION...................................................................................................................................................................4
1
PROJET ALCASAR.............................................................................................................................................................5
1.1
ANNEXES............................................................................................................................................................................37
4.1
4.2
Dossier technique
Page 2 sur 67
Dossier technique
Page 3 sur 67
Introduction
Durant la priode de stage, plusieurs projets ont t raliss. Le dossier technique prsent ci-aprs a pour
but de fournir lentreprise daccueil les informations ncessaires la comprhension du fonctionnement
en vue de lutilisation, de la maintenance et des modifications ultrieures des produits.
Le dossier sera dcompos en une partie distincte pour chaque projet. En fin de dossier se trouvent les
annexes.
Il est noter que ces programmes sont appels tre utiliss dans d'autres tablissements (collges et
lyces du Maine et Loire), certaines remarques de ce dossier sont donc lies cette ralit.
Dossier technique
Page 4 sur 67
Projet ALCASAR
1.1
Mission
Lobjectif de ce projet tait dinstaller un portail captif dans le CEFOC. Pour cela, on utilise ALCASAR
(Application Libre pour le Contrle dAccs Scuris et Authentifi au Rseau). ALCASAR est une
solution logicielle libre et gratuite qui protge, authentifie, contrle et impute les accs des usagers d'un
rseau de consultation Internet. En France, ALCASAR permet aux responsables d'un rseau de
consultation de dcliner leurs niveaux les exigences que la loi impose aux oprateurs. Il constitue un
portail captif authentifiant et scuris.
Le projet ALCASAR a t initi fin 2007. Il est indpendant et libre (licence GPLV3). Il est suivi
actuellement par : Richard REY, Franck BOUIJOUX, Pascal LEVANT et Stphane WEBER.
1.1.2
un serveur ddi pour installer Linux Mandriva 2009 ainsi quALCASAR avec 1Go de RAM et au
moins 5Go despace disque
une cl USB
1.1.3
Concrtement, un utilisateur lambda voulant se connecter au rseau via son ordinateur portable et
possdant un compte cr par ladministrateur, activera son la fonction WiFi de sa machine. Ensuite, il
lancera un navigateur internet (Mozilla Firefox ou Internet Explorer par exemple). Une page se lance
automatiquement, demandant un nom dutilisateur et un mot de passe. Une fois ces donnes saisies,
lutilisateur peut naviguer sur internet. Une autre fentre est sa disposition pour dconnecter sa session.
Les sessions sont paramtrables par ladministrateur rseau : dure dune session, dure journalire,
dure hebdomadaire, nombre de sessions simultanes, etc. A aucun moment, lutilisateur na configurer
sa machine (adresse IP, masque, cl WEP ou WPA, etc.)
1.2
Performances et limites
1.2.1
L'objectif principal du portail Alcasar est de rpondre aux exigences des politiques d'accs et d'utilisation
d'Internet et notamment aux obligations de traabilit, d'imputabilite et de non-rpudiation des connexions.
Dang-Khoa HA R2I Promo '09
Dossier technique
Page 5 sur 67
Dans le cadre de la cybersurveillance, les mesures suivantes ont t prises afin de protger la vie prive
des usagers. Ces mesures sont de nature ne pas rendre obligatoire une dclaration CNIL en cas de
dploiement du portail sur le territoire franais :
protection contre le vol de sessions : les usagers peuvent tre dconnects aprs un laps de temps
paramtrable afin de limiter les consquences des oublis de dconnexion ;
protection contre le vol d'identifiants : les trames d'authentification des usagers sont
systmatiquement chiffres ;
protection des activits nominatives : la consultation par toute personne (dont l'administrateur) des
activits Internet nominatives est rendue trs difficile. En effet, les preuves d'imputabilit sont
volontairement clates dans plusieurs fichiers (fichiers journaux) dont les domaines sont spars
(journal des connexions au portail d'un ct et journaux des activits Internet de l'autre). L'imputation
des activits n'est ainsi rendue possible qu'aprs un travail d'agrgat sur ces journaux (travail rserv
aux autorits judiciaires). De plus, l'interface graphique de gestion ne prsente aucune donne
nominative lie aux activits ralises sur Internet ;
protection contre la modification des preuves : le chiffrement automatique des fichiers journaux
peut tre activ (en option). Cela rend impossible la modification, la dissimulation ou la suppression
des preuves. Cette fonction concourt au principe de non-rpudiation des connexions.
Scuriser
le rseau de consultation
Alcasar intgre un pare-feu spcifiquement paramtr afin de protger les quipements du rseau de
consultation des menaces externes directes. En outre, ce pare-feu permet de camoufler le rseau de
consultation et d'anonymiser les connexions.
Les mises jour automatiques de scurit des quipements de consultation (antivirus et patch) sont
rendues possibles travers la dclaration d'une liste de sites pouvant tre joints directement sans
authentification pralable.
le portail
La scurit du portail a t labore comme pour un systme bastion devant rsister diffrents types de
menaces :
utilisation et scurisation d'un systme d'exploitation minimaliste (Mandriva Linux LSB) ;
protection du portail vis--vis d'une attaque interne (durcissement et anticontournement) ;
Dossier technique
Page 6 sur 67
Universalit
Alcasar est compatible avec tous les types d'quipements de consultation (PC fixes, PC portables, PDA,
smartphones, etc.), tous les types de systmes d'exploitation (Windows, Linux, Palm-OS, Blackberry,
Symbian OS, etc.) et tous les types de rseaux (LAN filaire, LAN WIFI, LAN CPL, PAN bluetooth, etc.).
Le portail se comporte comme un sas d'accs pour l'ensemble des services Internet. Ainsi, il n'apporte pas
de restriction par rapport aux protocoles exploits. En d'autres termes, une fois l'authentification de
l'usager ralise, tous les protocoles pouvant tre exploits par une station de consultation sont autoriss et
tracs : consultation WEB, transfert de fichiers ftp ou d'gal gal (P2P), messagerie, messagerie
instantane (chat), discussion (news), jeux en rseau, multimdia (radio, tv, musique), etc.
C'est l'OSSI/RSSI, responsable du rseau de consultation de dfinir la configuration des quipements
(logiciels installs, droit d'accs, etc.).
Indpendance et intgration
La solution respecte les standards. Elle ne dpend ni d'une technologie propritaire ni d'un prestataire
particulier. Le systme d'exploitation et les logiciels exploits sont protgs par des licences libres ; les
dveloppements raliss spcifiquement pour Alcasar se trouvent eux-mmes sous licence libre.
Dans les organismes, l'accs au rseau Internet est gr par un FAI qui fournit et administre ses
quipements (Modem xDSL + Routeur + commutateur). Cette architecture peut voluer en fonction des
marchs et des contextes gographiques. La solution propose est donc totalement indpendante des
quipements fournis par les FAI.
Les usagers peuvent utiliser n'importe quel quipement du rseau de consultation.
Les quipements de consultation peuvent tre mis jour de manire automatique sans authentification
pralable (patch de scurit, antivirus, etc.).
1.2.2
Limites d'utilisation
ALCASAR tant une solution libre, le seul support technique reste la communaut ayant cr et
dveloppant la solution.
En outre, ce jour (version v1.7-rc3), un inconvnient peut tre soulign : il n'y a pas possibilit de lier les
comptes LDAP ALCASAR. Cependant, on peut voir cet inconvnient comme un avantage en effet,
les tudiants souhaitant se connecter en WiFi doivent d'abord faire une demande de compte, ce qui cre
une certaine scurit. Il n'y pas pas de compte passe-partout mais un compte par personne.
Dossier technique
Page 7 sur 67
Extensions possibles
Dans le futur, on peut penser installer la solution ALCASAR dans des tablissement plus grands que le
CEFOC. On pourra alors installer plus de bornes WiFi (et donc mettre en place du roaming).
On peut donc galement penser intgrer la synchronisation des comptes ALCASAR avec l'AD ou le
LDAP.
Enfin, on peut penser associer l'authentification des usagers avec le contrle d'accs au mdia avec le
802.1x mais cela implique la mise en place d'un serveur d'authentification de type RADIUS ou TACACS
par exemple.
1.3
lments techniques
1.3.1
Dossier technique
Page 8 sur 67
Action(s) raliser
On choisit le franais.
Dossier technique
Page 9 sur 67
On cre 5 partitions :
/ : 1Go
swap : 1Go
/tmp : 1Go
/home : 1Go
/var : tout le reste
A la fin de la manipulation, le disque devrait ressembler
ceci :
Dossier technique
Page 10 sur 67
Dossier technique
Page 11 sur 67
Dossier technique
Page 12 sur 67
Dossier technique
Page 13 sur 67
1.3.2
ALCASAR a t conu pour pouvoir tre intgr dans un seul systme (un seul PC). Il est btit autour
d'une quinzaine d'lments constituant ainsi un portail captif authentifiant complet, scuris et gr
graphiquement. Ce portail est positionn en coupure entre les deux rseaux cloisonner.
Nous allons maintenant voir comment installer ALCASAR sur le serveur Linux.
Affichage de l'cran
Action(s) raliser
On se connecte en tant que root .
Avec la commande watch mii-tool on peut voir ltat des
interfaces et des connexions.
On branche le cble ct Internet dans linterface eth0.
Et on vrifie la connexion.
On cre un rpertoire servant accueillir la cl USB avec la
commande mkdir p /mnt/usb
On affiche le journal des informations systme avec la
commande tailf /var/log/messages afin de connatre le
nom associ de la cl USB.
Dossier technique
Page 14 sur 67
Linstallation dALCASAR est termine. Nous allons maintenant voir comment lutiliser.
1.3.3
Utilisation
Ct utilisateur
Les quipements de consultation peuvent tre de tous types (MAC, PC, PDA, smartphone, iPhone, etc.).
Les systmes d'exploitation peuvent tre de tous types (Microsoft, Linux, Palm-OS, etc.). Les applications
Internet peuvent tre de tous types (Firefox, Internet Explorer, Thunderbird, Outlook, ftp, etc.).
Dossier technique
Page 15 sur 67
Figure 2 : sur PC
Une fois l'authentification effectue, le navigateur affiche la premire page de consultation [Figure 5] ainsi
qu'une fentre supplmentaire permettant l'usager de se dconnecter [Figure 6]. En fonction de la
configuration des postes de consultation, toutes les applications et tous les protocoles rseau sont alors
disponibles pour l'usager (ftp, courrier lectronique, discussion, P2P, etc.).
Pour se dconnecter, l'usager utilise la fentre de dconnexion ddie [Figure 6 et 7].
Ct administrateur
La gestion dALCASAR est possible partir dune machine situe dans le rseau de consultation (ce que
nous avons appel Rseau WiFi tudiant dans la [Figure 1] (page 7). Pour accder linterface de
gestion graphique, on tape dans la barre dadresse du navigateur ladresse https://192.168.182.1/ (dans
notre cas).
Dossier technique
Page 16 sur 67
A noter que cette page est visible par tous. En revanche, pour accder aux diffrents items du menu de
gauche, il faudra se logguer avec les identifiants et mot de passe dun des deux comptes configurs lors de
linstallation.
A noter que cette page est visible par tous. En revanche, pour accder aux diffrents items du menu de
gauche, il faudra se logguer avec les identifiants et mot de passe dun des deux comptes configurs lors de
linstallation.
Cette plateforme de gestion permet :
Dossier technique
Page 17 sur 67
Figure 11 : statistiques
Dossier technique
Page 18 sur 67
de rcuprer pour archivage les diffrents fichiers journaux devant tre prsents en cas
d'enqute judiciaire. Ces fichiers contiennent les traces de toutes les connexions, de tous les
protocoles et de toutes les adresses consultes. Elles constituent ainsi les preuves de l'activit du
rseau de consultation. Ces fichiers peuvent tre chiffrs :
d'activer, de dsactiver [Figure 14], de modifier ou de mettre jour les listes des sites filtrs
(blacklists) [Figure 15] et des sites de confiance [Figure 16] :
Figure 15 : MJ de la blacklist
Figure 16 : whitelist
Ladministrateur peuvent intervenir sur le portail directement ou distance via un tunnel chiffr SSH
(VPN).
1.3.4
Tests et rglages
Aprs une priode de tests, on peut rcuprer les fichiers log du serveur. Ainsi, on peut tudier les
connexions et le trafic sur le rseau.
Les testeurs ont t mis contribution afin de naviguer sur le rseau comme ils l'auraient fait chez eux. Le
but est de voir si les blacklists sont bien efficaces. On peut galement voir grce ces fichiers de log si
certains sites sont trs visits alors qu'ils ne devraient pas l'tre, auquel cas on la rajouterait la blacklist.
Dossier technique
Page 19 sur 67
Schma fonctionnel
Figure 1 (rappel)
1.3.6
Plan
Ci-aprs, le plan du CEFOC [Figure 17]. Dans la salle 3 se trouvent le serveur ALCASAR ainsi que la
borne Wifi, suffisante pour fournir un accs sans fil tout le btiment.
Dossier technique
Page 20 sur 67
Mission
Remote VLC Light est un logiciel cr par M. Olivier Le Grand, administrateur rseau du lyce Sacr
Cur d'Angers, et Mickal Loussouarn, un ancien stagiaire.
Cet utilitaire a pour but de simplifier l'utilisation du lecteur multimdia VLC pour le personnel enseignant
du lyce. Il permet de diffuser en multicast des supports audio ou vido.
Le but de ce projet est de faire voluer le logiciel en ajoutant une partie diffusion vido en temps rel des
flux tlvision la demande proposs par Orange, FAI de l'tablissement.
2.1.2
Pour utiliser Remote VLC Light, on a besoin d'un poste serveur et d'autant de postes client que l'on dsire.
Remote VLC Light fonctionne sous Windows 2000 et Windows XP. Il est dvelopp avec AutoIT. Des
enceintes ou des casques audio peuvent tre utiliss, car la vido et le son sont encods.
2.1.3
Figure 18 : Remote_VLC_Light
Dossier technique
Page 21 sur 67
2.2
Performances et limites
2.2.1
A la situation initiale, les seules vidos diffusables par le poste serveur taient les vidos enregistres sur
un disque rseau. Cela impliquait tout un travail en amont : trouver la vido sur Internet, la copier, la
rencoder, l'enregistrer dans le rpertoire prvu cet effet.
Il faut savoir que les lves n'ont pas accs tous les sites, notamment les sites de type YouTube ou
DailyMotion (protection du proxy). Il revenait donc au professeur de trouver la vido utile son cours et
l'administrateur de r-encoder la vido en question.
Avec l'outil de diffusion de la TV la demande , toutes ces tapes deviennent inutiles. En outre,
Remote_VLC_Light est vraiment simple apprhender pour des utilisateurs novices que peuvent tre les
enseignants, qui n'ont pas forcment tous des notions de client/serveur, de flux vido, etc.
2.2.2
Limites d'utilisation
S'il est vrai que la TV la demande est un outil apprciable en terme de simplicit d'utilisation, il reste
nanmoins qu'il s'agit de tl en direct, et la console ne possde pas les mme fonctionnalits que les
box que proposent les FAI pour les particuliers (enregistrement d'un programme, possibilit de mettre
en pause un programme tlvis, etc.). Il faut donc que l'horaire de l'mission que le professeur
souhaite montrer ses lves concorde l'horaire de son cours De ce fait, les anciennes fonctionnalits
de Remote_VLC_Light sont toujours intressantes.
Sur un autre plan, on a pu observer, lors des phases de test, des diffusions parfois saccades de l'image.
Mais cela n'est pas d l'encodage en direct (ou de tout autre dysfonctionnement du programme) mais
directement des flux mms proposs par Orange.
2.2.3
Extensions possibles
Dans la continuit du problme que l'on vient d'voquer, on pourrait penser ajouter des fonctions plus
pousses au menu TV la demande comme la fonction pause par exemple. Pour ce qui est de
l'enregistrement des missions, ce n'est pas forcment la meilleure ide, puisque tous les professeurs ne
possdent pas forcment VLC chez eux, et de surcrot, ne savent pas forcment le configurer ...
2.3
lments techniques
2.3.1
L'installation du Client_VLC se fait via un package MSI. La manipulation est simple et rapide. En ce qui
concerne l'utilisation, elle n'est gure plus complique puisqu'ils n'ont qu' lancer un excutable.
Pour reprendre notre prcdent exemple, lors d'un cours, le professeur souhaite montrer une vido ou faire
couter une bande son. Tous les lves lancent l'application Client_VLC et n'ont rien d'autre faire part
Dang-Khoa HA R2I Promo '09
Dossier technique
Page 22 sur 67
L'installation de Remote_VLC_Light se fait galement par un package MSI. Voici comment utiliser les 5
menus de Remote_VLC_Light :
On insre le DVD dans le lecteur, on slectionne le bouton radio DVD et ce message apparat :
VLC se lance ensuite sur le poste serveur lorsqu'on appuie sur le bouton Diffuser [Figure 21] :
Lecture d'un CD :
Dossier technique
Page 23 sur 67
Son la demande :
On clique sur le bouton ... , et on choisit le son diffuser, puis on clique sur Ouvrir . Ensuite,
on coche le bouton radio et un message apparat. VLC se lance ensuite sur le poste serveur
lorsqu'on appuie sur le bouton Diffuser .
Vido la demande :
Dossier technique
Page 24 sur 67
TV la demande :
On clique sur le menu droulant, puis on choisit la chane qu'on veut diffuser. Une foi choisie, on
clique sur le bouton radio, un message s'affiche. Enfin, on appuie sur le bouton Diffuser .
2.3.3
Fonctionnement
Dossier technique
Page 25 sur 67
Tests et rglages
Schma fonctionnel
2.3.6
Dossier technique
Page 26 sur 67
Dossier technique
Page 27 sur 67
Mission
La Console de restauration distance Synchro Parc a t cre dans le but d'viter les dplacements
inutiles . Dans la situation initiale (donc avant la cration de la Console Synchro Parc), l'administrateur
est oblig de se dplacer dans chaque salle et d'allumer chaque poste qu'il souhaite restaurer. Ce
programme facilitera donc la vie de l'administrateur (gain de confort et de temps).
Ce projet se base sur le programme Synchro Parc XP, qui permet la restauration de postes. Nous allons
voir ci-aprs (point 3.3.2) le fonctionnement de Synchro Parc XP.
3.1.2
un rseau mont
la Console Synchro Parc qui va permettre l'administrateur de restaurer les postes distance
un excutable, lanc en service, sur tous les postes clients, qui va dtecter si oui ou non, le dit-poste
peut tre restaur
sur tous les postes clients, du matriel compatible Wake On Lan (carte mre compatible, configuration
du BIOS, configuration de l'alimentation, ventuellement configuration de la carte rseau selon les
modles, cble Wake On Lan si la carte n'est pas alimente par le bus PCI)
On peut noter que ce logiciel est dvelopp avec le langage AutoIT, donc pour les personnes qui
souhaiteraient modifier le code pour l'utiliser, il faut disposer du logiciel AutoIT (logiciel gratuit).
3.1.3
Le programme Console Synchro Parc permet l'administrateur rseau, partir de son bureau, d'allumer
les postes d'une salle distance grce au protocole Wake On Lan. Il peut ensuite choisir les postes
restaurer.
Dossier technique
Page 28 sur 67
Figure 27 : Console_SPARC
3.2
Performances et limites
3.2.1
Le produit permet l'administrateur, depuis son bureau, de choisir autant de postes qu'il dsire, dans autant
de salles qu'il le souhaite, en vue d'une restauration. Nanmoins, on ne peut pas choisir deux postes dans
deux salles diffrentes pour une restauration simultane. Concrtement, on restaure salle par salle.
3.2.2
Limites d'utilisation
Cette console, dveloppe autour du rseau du lyce Sacr Cur est utilisable uniquement au sein du
lyce, pour le moment. En effet, le code se base sur l'architecture du rseau. Dans d'autres tablissements,
les noms de postes ne sont certainement pas les mmes, les salles ne sont pas organises de la mme
faon. Il est possible galement que dans d'autres rseaux, les postes ne soient pas dots de matriel
compatible Wake On Lan (dans ce cas, l'utilisation de la console Synchro Parc n'est pas forcment
judicieuse ). Nanmoins, en fournissant le code comment du programme, il est possible pour tout
administrateur d'adapter le programme son rseau et de ce fait, d'utiliser tout de mme la Console
Synchro Parc.
3.2.3
Extensions possibles
L'interface, bien que dj modifie en cours de dveloppement (voir [Figure 28] : version antrieure de la
Console Synchro Parc) pourrait tre encore amliore. On peut penser par exemple une interface plus
vivante , par exemple avec, selon la salle choisie, un plan de la salle avec en vert les postes allums et
en noir les postes teints. Dans la version actuelle, on ne sait pas quels postes sont teints ou non ; on les
allume systmatiquement.
Dang-Khoa HA R2I Promo '09
Dossier technique
Page 29 sur 67
3.3
lments techniques
3.3.1
Synchro Parc XP
Synchro Parc XP est un logiciel cr par le CRDP (Centre Rgional de Documentation Pdagogique) de
Champagne-Ardennes. Il permet de sauvegarder un ensemble d'ordinateurs sur le disque dur d'un
ordinateur du rseau. Chaque sauvegarde est compose d'un fichier (extension ASB) contenant la liste des
fichiers sauvegards et l'endroit (dans le rpertoire DATAXP) o chaque fichier est sauvegard. Avec cette
technique, un mme fichier appartenant plusieurs ordinateurs n'est sauvegard qu'une fois, d'o un gain
de temps et de place.
Synchro Parc XP permet de restaurer les ordinateurs dans l'tat exact o ils taient lors de la sauvegarde.
Toute modification faite depuis la sauvegarde est oublie. Les fichiers qui ont t supprims sont replacs,
les fichiers qui ont t modifis sont restaurs, les fichiers qui ont t ajouts sont supprims.
Synchro Parc XP permet galement une restauration partielle bien utile si on vient de supprimer un fichier
ou un rpertoire par erreur et que l'on souhaite seulement restaurer ce fichier ou ce rpertoire. Cette
restauration partielle ne supprime pas de fichiers.
Remarque : La comparaison de deux fichiers se fait en comparant le nom, le rpertoire, la taille et la date
la seconde prs. Il est donc thoriquement possible que deux fichiers soient diffrents et considrs
comme identiques par Synchro Parc XP, mais la probabilit est tellement faible qu'en pratique elle peut
tre considre comme nulle. En effet, ds qu'un fichier est modifi, sa taille a de grandes chances de
Dang-Khoa HA R2I Promo '09
Dossier technique
Page 30 sur 67
3.3.2
Ct client
Pour les postes clients, nous avons dvelopp un utilitaire nomm Client_SPARC (voir le code dans
l'Annexe 7, page 50) et qui est en fait lanc en tant que service sur les stations, grce au programme
Install (Annexe 11, page 62).
Le Client_SPARC cherche la prsence du nom du poste client dans le fichier jesuisla.txt . Ensuite,
on teste la prsence sur le PC d'un fichier nomm INIT_OK . Ce fichier indique si le poste a dj t
initialis une fois ou non, en d'autres termes, s'il a dj t restaur. S'il n'est pas prsent, on le cre, sinon
on passe l'tape de restauration proprement parler.
La premire tape de la restauration consiste crire le nom du poste dans le fichier jesuisla.txt .
Ensuite, on lance le logiciel Synchro Parc XP pour ce poste, et la restauration s'effectue.
Dossier technique
Page 31 sur 67
Le fichier jesuisla.txt comporte maintenant un certain nombre de noms de postes, tous crits dans la
syntaxe suivante : PC--S--- (chaque tiret reprsentant un chiffre).
Le fichier ToutesLesSalles.txt est cr en analysant chaque nom complet de poste (et plus prcisment
la partie S---, correspondant donc au nom de la salle). Ce fichier comporte donc des noms de salle sans
doublons et permet de crer la liste droulante de la Console Synchro Parc [Figure 27].
Aprs lecture du fichier ToutesLesSalles.txt , on cre un fichier pour chaque salle dtecte. Si le dossier
existe dj, pas d'action.
Ici, on relit la fichier jesuisla.txt , et cette fois-ci, on ne se contente pas d'analyse seulement le nom de la
salle. Au contraire, on analyse chaque poste.
On cre, dans chaque dossier portant un nom de salle, un fichier portant le mme nom. Par exemple, pour
la salle S321, on aura un dossier S321 qui contiendra un fichier S321.txt dans lequel seront inscrits
tous les noms de postes de cette salle, aprs analyse du fichier jesuisla.txt .
C'est avec ce dossier que, lorsque l'administrateur choisit une salle dans la liste droulante, s'affichent les
postes pouvant tre restaurs dans la liste de gauche [Figure 27].
Une fois ces actions effectues, la Console se lance. Il est noter que ces actions se font extrmement
rapidement et concrtement, lorsque l'administrateur double clique sur l'icne de la Console Synchro Parc,
celle-ci se lance quasiment instantanment.
L'administrateur choisit une salle, les postes disponibles s'affichent dans la liste de gauche. Il slectionne
les postes qu'il dsire, grce aux quatre boutons du milieu qui servent respectivement : slectionner un
ou plusieurs postes, slectionner tous les postes, dselectionner un ou plusieurs postes et dselectionner
tous les postes. Ici, on ne slectionne que des postes de la mme salle. Pour viter toute confusion, une fois
la salle choisie, la liste droulante est bloque. Il faut cliquer sur le bouton Changer de Salle (voir
[Figure 27]) pour justement changer de salle, les slections prcdemment faites n'tant pas sauvegardes.
Toute la slection est graphique , c'est--dire que tant que l'administrateur n'a pas cliqu sur le bouton
RESTAURER MAINTENANT , aucun fichier n'est modifi.
Une fois la slection faite, l'administrateur clique sur ce bouton de restauration. Une confirmation est
demande.
A ce moment l, tous les postes slectionns et affichs dans le colonne de droite sont inscrits dans le
fichier PostesARestaurer.txt (Annexe 15, page 63). Ils sont en revanche effacs du fichier
jesuisla.txt .
Dossier technique
Page 32 sur 67
Wake On Lan :
Vient l'tape de Wake On Lan. Avant toute chose, il faut savoir qu'on possde un fichier nomm
Wake_on_line.txt (Annexe 19, page 64). Celui-ci est gnr grce, en partie grce au logiciel Angry
IP Scan , qui effectue un scan rseau d'une plage d'adresse IP donne [Figure 30] et retourne, pour
chaque adresse IP de cette plage, un nom complet de poste et une adresse MAC. Le fichier
Wake_on_line.txt est en fait remani de faon ne laisser que le nom du poste et la commande de
Wake On Lan correspondante.
Sur la [Figure 30], on utilise Angry IP Scan en mode graphique. Mais dans notre Console, nous le lancons
en ligne de commandes, ceci afin d'automatiser le processus de cration du fichier
Toutes_les_adresses.txt .
La Console vient donc allumer tous les postes teints. En fait, elle lance une commande de Wake On Lan
sur tous les postes slectionns, sachant que si on lance une telle commande sur un poste dj allum, il
n'y a pas de consquence nfaste, il n'y a en fait, rien qui se passe. Les postes sont allums sous le compte
Sparc qui est un compte cr pour la restauration. Le reste de la manipulation, c'est Synchro Parc XP
qui s'en occupe.
Fonction de cryptage :
Pour utiliser Synchro Parc XP, et lors d'un dmarrage Wake On Lan, le PC doit se connecter avec un
compte SPARC (situation dans le lyce Sacr Cur). Pour ne par laisser apparatre le login et le mot de
passe de ce compte, on va crypter les informations.
Pour cela, on utilise le Module de Cryptage (Configuration / Gnration de login/mot de passe) [Figure
31].
Dossier technique
Page 33 sur 67
Ainsi, mme si on rcupre les chanes (login / mot de passe) en crypt, on ne peut pas les dcrypter,
moins de connatre justement cette passphrase .
Dang-Khoa HA R2I Promo '09
Dossier technique
Page 34 sur 67
Tests et rglages
Comme nous l'avons vu prcdemment, les tests et les rglages de la Console Synchro Parc sont valides
dans le lyce Sacr Cur. Pour l'utiliser dans un autre tablissement, il faut d'une part disposer de la
solution Synchro Parc XP, et d'autre part, modifier le code du logiciel pour qu'il corresponde aux
spcificits de l'tablissement (nombre de PC par salle, format de nom de poste, etc.)
3.3.4
Schma de synthse
Voici un schma [Figure 34] qui rcapitule les dpendances entre les fichiers :
Dossier technique
Page 35 sur 67
Dossier technique
Page 36 sur 67
Annexes
4.1
; ###########################################################################################################
; ######################################## F O N C T I O N S ################################################
; ###########################################################################################################
Dossier technique
Page 37 sur 67
4.2
4.3
Dossier technique
Page 38 sur 67
Remarque : Tout ce bloc tient en fait sur une seule et unique ligne
4.5
Liste qui fait correspondre une adresse une chane, cre en retravaillant la liste Orange_TV.m3u :
2424 Video,mms://onlinetv-fr-streamer-prod.otv.cvf.fr/VODBarker-700/KEYMTI0MDgxNTk2ODAwMC...
France 2,mms://onlinetv-fr-streamer-prod.otv.cvf.fr/France2-700/KEYMTI0MDgxNTk2ODAwMC...
France 3,mms://onlinetv-fr-streamer-prod.otv.cvf.fr/France3-700/KEYMTI0MDgxNTk2ODAwMC...
Orange Sports,mms://onlinetv-fr-streamer-prod.otv.cvf.fr/OrangeSports-700/KEYMTI0MDgxNTk2O...
France 5,mms://onlinetv-fr-streamer-prod.otv.cvf.fr/France5-700/KEYMTI0MDgxNTk2ODAwMC...
Arte,mms://onlinetv-fr-streamer-prod.otv.cvf.fr/Arte-700/KEYMTI0MDgxNTk2ODAwMC...
Direct 8,mms://onlinetv-fr-streamer-prod.otv.cvf.fr/Direct8-700/KEYMTI0MDgxNTk2ODAwMC...
France 24,mms://onlinetv-fr-streamer-prod.otv.cvf.fr/France24-700/KEYMTI0MDgxNTk2ODAwMC...
Dossier technique
Page 39 sur 67
<ComboConstants.au3>
<EditConstants.au3>
<GuiComboBox.au3>
<GUIConstantsEx.au3>
<StaticConstants.au3>
<WindowsConstants.au3>
<file.au3>
; Variables
Dim $fichier_VOD, $fichier_MOD, $fichier_TV, $Select_VOD, $Select_CD, $Select_DVD, $Select_TV
Dim $lettre_CDROM_CD, $lettre_CDROM_DVD, $Label_CDROM_CD, $Label_CDROM_DVD
Dim $Extension
Dim $Combo_CD, $lettre_CDROM_SansAntislash_CD, $Combo_DVD
Dim $version_VLC
Dim $index_chaines
Dim $liste_orange
Dim $maChaineCh, $maChaineAdr
Dim $i, $j, $nbCh, $nbLignes
Dim $maLigne
Dim $index_corres
Dim $monInfo
Dim $Chaine
Dim $Source_TV
$file_in_MOD = ""
$file_in_VOD = ""
$file_in_TV = ""
$Debug = 0
Const $INI = "Remote_VLC_Light.ini"
$Chemin_VLC = IniRead($INI, "MAIN", "Chemin_VLC", "") ; Emplacement de VLC (dans le fichier .ini)
$IP_UDP = IniRead($INI, "MAIN", "IP_UDP", "") ; Adresse UDP (dans le fichier.ini)
$INFO = "Information"
$Temps = 3000
$TV = IniRead($INI, "TV", "TV", "")
$version = IniRead($INI, "MAIN", "Version", "") ; Version du logiciel (dans le fichier.ini)
$Source_Fichier_m3u = IniRead($INI, "MAIN", "Source_Fichier_m3u", "") ; emplacement du fichier .m3u (dans le
fichier.ini)
Dossier technique
Page 40 sur 67
15,
400,
84,
84,
BitOR($SS_NOTIFY,
$WS_GROUP,
chane",
130,
428,
144,
400,
EndIf
$GUI = GUICreate("REMOTE VLC Light " & $version & " Olegrand2008", 291, 475, 193, 115)
$Annuler = GUICtrlCreateButton("Exit", 24, 432, 81, 33, 0)
$Diffuser = GUICtrlCreateButton("Diffuser", 184, 432, 81, 33, 0)
GUISetCursor(0)
GUISetBkColor(0xFFFFFF)
GUISetIcon("vlc.ico")
; Cration des icnes et des boutons EXIT et DIFFUSER
$DVD_JPG = GUICtrlCreatePic($Logo_DVD, 16, 16, 84, 84, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
$CD_JPG = GUICtrlCreatePic($Logo_CD, 16, 112, 84, 84, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
$MOD_JPG = GUICtrlCreatePic($Logo_MOD, 16, 208, 84, 84, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
$VOD_JPG = GUICtrlCreatePic($Logo_VOD, 16, 304, 84, 84, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
; Cration champ parcourir MOD + bouton radio
$SelectMOD = GUICtrlCreateButton("...", 128, 235, 41, 25, 0)
$edit_choice_in_MOD
=
GUICtrlCreateEdit($file_in_MOD,
$ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY))
172,
238,
100,
21,
BitOR($ES_WANTRETURN,
100,
21,
BitOR($ES_WANTRETURN,
172,
335,
Dossier technique
Page 41 sur 67
$lesChaines = FileReadLine($maListe, 1)
If @error = -1 Then MsgBox(0, "Erreur", "Impossible de lire le fichier 'Chaines.txt") ; Message en cas
d'erreur
$uneChaine = StringSplit($lesChaines, "|") ; On splite la chane chaque | pour avoir une seule chane
$index_corres = FileOpen("Ch_Adr.txt", 0)
$nbCh = ($nbLignes - 1) / 2
$n = 1
For $n = 1 To $nbCh Step 1
GUICtrlSetData($Select_TV, $uneChaine[$n])
GUISetState(@SW_SHOW)
Next
FileClose($maListe)
FindCD()
Version_VLC()
EndIf
FileClose($Menu_Open)
$Label_lettre_DVD = GUICtrlCreateLabel("DVD", 135, 50, 44, 17)
$Label_lettre_CD = GUICtrlCreateLabel("CD", 135, 152, 19, 17)
$CDROM_SansAntislash = DriveGetDrive("CDROM")
; ***********************************************************************************************************
; Infobulles
GUISetState()
GUICtrlSetTip($DVD_JPG, "DVD la demande")
GUICtrlSetTip($CD_JPG, "CD (musique) la demande")
GUICtrlSetTip($MOD_JPG, "MUSIQUE (mp3,wma,ogg,etc...) la demande")
GUICtrlSetTip($VOD_JPG, "VIDEO (divx,mpg1,mpg2,xvid, etc...) la demande")
GUICtrlSetTip($SelectMOD, "Slectionnez une musique sur votre disque dur")
GUICtrlSetTip($SelectVOD, "Slectionnez une vido sur votre disque dur")
$Add_UDP = "udp://@" & $IP_UDP & ":1234"
$Add_UDP_Court = StringTrimLeft($Add_UDP, 7)
Dossier technique
Page 42 sur 67
Case $GUI_EVENT_CLOSE
Exit
Case $SelectVOD
Select_Fichier_VOD()
GUICtrlSetState($Source_VOD, $GUI_enABLE)
Case $Combo_CD
If StringLen($Menu_Read) > 3 Then
GUICtrlSetState($Source_CD, $GUI_DISABLE)
$lettre_CDROM_SansAntislash_CD = GUICtrlRead($Combo_CD)
$lettre_CDROM_CD = $lettre_CDROM_SansAntislash_CD & "\"LabelCD()
If $lettre_CDROM_SansAntislash_CD <> "???" Then
GUICtrlSetState($Source_CD, $GUI_enABLE)
EndIf
Else
GUICtrlSetState($Source_CD, $GUI_enABLE)
EndIf
Case $Combo_DVD
If StringLen($Menu_Read) > 3 Then
GUICtrlSetState($Source_DVD, $GUI_DISABLE)
$lettre_CDROM_SansAntislash_DVD = GUICtrlRead($Combo_DVD)
$lettre_CDROM_DVD = $lettre_CDROM_SansAntislash_DVD & "\"LabelDVD()
If $lettre_CDROM_SansAntislash_DVD <> "???" Then
EndIf
Else
GUICtrlSetState($Source_DVD, $GUI_enABLE)
EndIf
Case $SelectMOD
Select_Fichier_MOD()
GUICtrlSetState($Source_MOD, $GUI_enABLE)
Case $Select_TV
If $Select_TV <> "Slectionnez une chane" Then
GUICtrlSetState($Source_TV, $GUI_enABLE)
EndIf
Case $Source_DVD
If StringLen($Menu_Read) > 3 Then
Dossier technique
Page 43 sur 67
Case $Source_CD
If StringLen($Menu_Read) > 3 Then
Message($INFO, "Vous avez slectionn le CD sur le CDROM
& ".Le Titre du CD est:" & $Label_CDROM_CD, $Temps, 110)
Else
GUICtrlSetState($Source_CD, $GUI_enABLE)
$lettre_CDROM_CD = $CDROM_SansAntislash[1] & "\"
LabelCD()
Message($INFO, "Vous avez slectionn le DVD sur le CDROM " & $lettre_CDROM_CD
& ". Le Titre du DVD est:" & $Label_CDROM_CD, $Temps, 110)
EndIf
Case $Source_MOD
Message($INFO, "Vous avez slectionn la musique la demande", $Temps, 60)
Case $Source_VOD
Message($INFO, "Vous avez slectionn la vido la demande", $Temps, 60)
Case $Source_TV
If $TV = "OUI" Then
GUICtrlSetState($Select_TV, $GUI_DISABLE)
Message($INFO, "Vous avez slectionn la tl la demande", $Temps, 60)
$chaineChoisie = GUICtrlRead($Select_TV)
For $i = 1 To $nbCh Step 1
$maLigne = FileReadLine($index_corres, $i)
$monInfo = StringSplit($maLigne, ",")
If $chaineChoisie = $monInfo[1] Then
$Chaine = $monInfo[2]
EndIf
Next
Else
EndIf
Case $Annuler
Exit
Case $Diffuser
VLC_EXIST()
VLC_Unique()
GUICtrlSetState($Select_TV, $GUI_enABLE)
If $version_VLC < "0.8.7" Then
SelectSource_086()
Dossier technique
Page 44 sur 67
EndSwitch
WEnd
; ###########################################################################################################
; ######################################## F O N C T I O N S ################################################
; ###########################################################################################################
;==>Select_Fichier_VOD
; ###########################################################################################################
;==>Select_Fichier_MOD
; ###########################################################################################################
;==>Message
; ###########################################################################################################
Dossier technique
Page 45 sur 67
;==>SelectSource_086
; ###########################################################################################################
;==>SelectSource_091
; ###########################################################################################################
;==>FindCD
; ###########################################################################################################
DVD ############################################
Func LabelDVD()
$Label_CDROM_DVD = DriveGetLabel($lettre_CDROM_DVD)
Dossier technique
Page 46 sur 67
;==>LabelDVD
; ###########################################################################################################
;==>LabelCD
; ###########################################################################################################
;==>FormatVideo
; ###########################################################################################################
;==>VLC_EXIST
; ###########################################################################################################
Dossier technique
Page 47 sur 67
;==>Version_VLC
; ###########################################################################################################
$index_chaines
$liste_orange
$maChaineCh
$nbLignes
$i
$maLigne
; Test de prsence
$index_chaines = FileOpen("Chaines.txt", 2)
If $index_chaines = -1 Then MsgBox(0, "Erreur", "Impossible de trouver le fichier 'Chaines.txt'.")
$liste_orange = FileOpen("Orange_TV.m3u", 0)
If $liste_orange = -1 Then MsgBox(0, "Erreur", "Impossible de trouver le fichier 'Orange_TV.m3u'.")
; Nombre total de lignes de $liste_orange
$nbLignes = _FileCountLines("Orange_TV.m3u")
;==>List
; ###########################################################################################################
;
; ######################## Crer fichier de correspondance "chane,adresse" ==> ChAdr.txt ###################
Func CorresChAdr()
Dim
Dim
Dim
Dim
Dim
Dim
$index_corres
$liste_orange
$maChaineAdr
$nbLignes
$j
$maLigne
$index_corres = FileOpen("Ch_Adr.txt", 2)
$liste_orange = FileOpen("Orange_TV.m3u", 0)
; Nombre total de lignes de $liste_orange
$nbLignes = _FileCountLines("Orange_TV.m3u")
Dossier technique
Page 48 sur 67
;==>CorresChAdr
; ###########################################################################################################
; ###########################################################################################################
Func VLC_Unique()
$PID = ProcessExists("vlc.exe") ; Retourne le numro PID, ou 0 si le processus n'existe pas
If $PID Then ProcessClose($PID) ; S'il existe, on le ferme
EndFunc
;==>VLC_Unique
; ###########################################################################################################
; ###########################################################################################################
Func Copy_Orange_TV()
FileCopy($Source_Fichier_m3u & "Orange_TV.m3u", @WorkingDir, 1) ; On copie le fichier .m3u dans le
rpertoire de travail
Message($INFO, "Mise jour des paramtres en cours...", 2000, 60)
EndFunc
;==>Copy_Orange_TV
; ###########################################################################################################
Dossier technique
Page 49 sur 67
#include <String.au3>
#include <file.au3>
$chemin = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\OLG\SPARC", "Chemin")
$Titre = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\OLG\SPARC", "Titre")
$Chemin_SynchroParcXP = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\OLG\SPARC", "Chemin_SynchroParcXP")
$Passphrase = "toto"
$Login = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\OLG\SPARC", "Login") ; On lit le login crypt dans la Base de
registres
$Login = _StringEncrypt(0, $Login, $Passphrase, 3) ; On le dcrypte et on le stocke dans $Login
$Password = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\OLG\SPARC", "Password") ; On lit le mot de pass crypt dans la
Base de registres
$Password = _StringEncrypt(0, $Password, $Passphrase, 3) ; On le dcrypte et on le stocke dans $Password
$Nom = @ComputerName
$Salle = StringMid($Nom, 5)
; Ouverture OK ?
If $File = -1 Then MsgBox(0, "Erreur", "Impossible d'ouvrir ce fichier.")
Suisjela()
FileClose($File)
Init()
; ###########################################################################################################
; ########################################### F O N C T I O N S #############################################
; ###########################################################################################################
;==>Suisjela
; ###########################################################################################################
Dossier technique
Page 50 sur 67
Restauration()
EndIf
EndFunc
;==>Init
; ###########################################################################################################
;==>Restauration
; ###########################################################################################################
;==>Maintenantjysuis
; ###########################################################################################################
;==>Login_Auto
; ###########################################################################################################
Dossier technique
Page 51 sur 67
<ListBoxConstants.au3>
<GuiListBox.au3>
<File.au3>
<ComboConstants.au3>
<GUIConstantsEx.au3>
<StaticConstants.au3>
<WindowsConstants.au3>
Dossier technique
Page 52 sur 67
48, 121,
25,
BitOR($CBS_DROPDOWNLIST,
$CBS_AUTOHSCROLL,
$WS_VSCROLL,
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; Infobulles
GUICtrlSetTip($Select1, "Permet de slectionner une ou plusieurs stations")
GUICtrlSetTip($SelectAll, "Permet de slectionner toutes les stations")
GUICtrlSetTip($Deselect1, "Permet de dslectionner une ou pluesieurs stations")
GUICtrlSetTip($DeselectAll, "Permet de dslectionner toutes les stations")
GUICtrlSetTip($Restaurer, "Permet de restaurer les stations slectionnes")
GUICtrlSetTip($Combo, "Slection d'une salle")
GUICtrlSetTip($Vider, "Vide la liste des stations slectionnes")
GUICtrlSetTip($Changer, "Permet de slectionner une autre salle")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Aide
ShellExecute($chemin & "\Aide_SPARC.pdf")
Case $fichier_jesuisla
Message("", "Liste des PC pouvant tre restaurs", 2000, 70)
Run("notepad.exe " & $chemin & "\" & "jesuisla.txt")
Case $Rapport ; Affiche la liste des PC dmarrs
Message("", "Liste des PC restaurs", 2000, 50)
Run("notepad.exe " & $chemin & "\" & "PCdemarre.txt")
Case $Import ; Importation des adresses MAC gnres par IPscan
Dossier technique
Page 53 sur 67
Dossier technique
Page 54 sur 67
RESTAURATION()
EndSwitch
WEnd
; ###########################################################################################################
; ####################################### F O N C T I O N S #################################################
; ###########################################################################################################
; ################# Afficher les postes pouvant tre restaurs dans la liste de gauche ######################
Func Lister()
; on lit la salle choisie, et on affiche les postes qui peuvent tre restaurs
$salleChoisie = GUICtrlRead($Combo) ; $salleChoisie prend la valeur inscrite dans la combobox
FileOpen($chemin & "\" & $salleChoisie & "\" & $salleChoisie & ".txt", 0) ; On ouvre le fichier
correspondant une salle
$nbLignes = _FileCountLines($chemin & "\" & $salleChoisie & "\" & $salleChoisie & ".txt")
$i = 1
For $i = 1 To $nbLignes ; Pour chaque ligne prsente dans le fichier,
$PC = 0
$ligne = FileReadLine($chemin & "\" & $salleChoisie & "\" & $salleChoisie & ".txt", $i)
$PC = StringMid($ligne, 3, 2) ; On extrait le nom du poste
$fichier = FileOpen($chemin & "\" & $salleChoisie & "\" & $salleChoisie & ".txt", 0)
$contenu_fic = FileRead($fichier)
GUICtrlSetData($ListBoxIn, $contenu_fic)
Next
EndFunc
FileClose($chemin & "\" & $salleChoisie & "\" & $salleChoisie & ".txt")
;==>Lister
; ###########################################################################################################
; ##################################### Actions sur le bouton RESTAURER #####################################
Func RESTAURATION()
Dim $PostesARestaurer
Dim $PCaRestaurer ; Dclaration d'une variable locale
Dim $cdc
$PostesARestaurer = FileOpen($chemin & "\PostesARestaurer.txt", 2)
$cpt = _GUICtrlListBox_GetCount($ListBoxOut) ; On compte le nombre d'lments dans la liste de droite
For $b = 0 To $cpt - 1 ; Pour chaque lment,
$cdc = $cdc & _GUICtrlListBox_GetText($ListBoxOut, $b) & "|" ; On le stocke dans une variable
Next ; et on boucle
FileWrite($PostesARestaurer, $cdc)
FileClose($PostesARestaurer)
$PostesARestaurer = FileOpen($chemin & "\PostesARestaurer.txt", 0)
$lignePC = FileReadLine($PostesARestaurer)
$unPC = StringSplit($lignePC, "|")
For $v = 1 To $unPC[0]
$PCaRestaurer = $unPC[$v]
;;;;;;;;;;;;;;;;;;;;;; NETTOYAGE DE JESUISLA.TXT ;;;;;;;;;;;;;;;;;;;;;;
$jesuisla = ($chemin & "\jesuisla.txt")
$file = FileOpen($chemin & "\jesuisla.txt", 1)
$cpt = _FileCountLines($chemin & "\jesuisla.txt")
$TMP = ($chemin & "\tmp.txt") ; On cre un fichier temporaire, o seront stocks les noms de PC
qu'on ne restaure pas
$TMPfile = FileOpen($TMP, 2)
$vide = ""
For $i = $cpt To 1 Step -1 ; On lit de bas en haut pour viter les sauts de lignes lis aux
lignes vides ...
$line = FileReadLine($jesuisla, $i)
If $line = ($PCaRestaurer) Then ; Si la ligne lue est gale un nom de PC restaurer,
alors
_ReplaceStringInFile($chemin & "\jesuisla.txt", $PCaRestaurer, $vide) ; on
supprime la ligne
Dossier technique
Page 55 sur 67
Next
FileClose($file)
FileClose($TMPfile)
FileClose($jesuisla)
FileClose($TMP)
; On supprime le fichier "jesuisla.txt" car il contient des espaces et des lignes vides :
If FileDelete($chemin & "\jesuisla.txt") = 0 Then
MsgBox(1, "", "Le fichier " & $chemin & "\jesuisla.txt" & " n'a pas pu tre supprim.")
EndIf
If FileMove($chemin & "\tmp.txt", $chemin & "\jesuisla.txt", 9) = 0 Then ; "tmp.txt" devient
"jesuisla.txt"
MsgBox(1, "", "Le fichier " & $chemin & "\jesuisla.txt" & " n'a pas pu tre remplac")
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Next
FileClose($PostesARestaurer)
WOL() ; Appel de la fonction "Wake On Lan"
EndFunc
;==>RESTAURATION
; ###########################################################################################################
; ######################################### Slection d'un PC ###############################################
Func SelectionUn()
Dim
Dim
Dim
Dim
$selection
$tabtmp
$tableauPostes
$index
;==>SelectionUn
; ###########################################################################################################
; ###################################### Dslection d'un PC ################################################
Func DeselectionUn()
Dim
Dim
Dim
Dim
$deselection
$tabtmp2
$tableauPostes2
$index2
Dossier technique
Page 56 sur 67
EndIf
;==>DeselectionUn
; ###########################################################################################################
; ##################################### Slection de tous les PC ############################################
Func SelectionTOUS()
$nbPC = _GUICtrlListBox_GetCount($ListBoxIn) ; On compte le nombre d'lments dans la liste de gauche
For $k = 0 To $nbPC ; Pour chaque lment,
$var = _GUICtrlListBox_GetText($ListBoxIn, $k) ; On le stocke dans une variable
GUICtrlSetData($ListBoxOut, $var) ; qu'on copie droite
Next ; et on boucle
_GUICtrlListBox_ResetContent($ListBoxIn) ; On vide la liste de gauche
_GUICtrlListBox_DeleteString($ListBoxOut, 0) ; On supprime la ligne vide de la liste de droite
EndFunc
;==>SelectionTOUS
; ###########################################################################################################
; ####################################### Dslection de tous les PC ########################################
Func DeselectionTOUS()
$nbPC2 = _GUICtrlListBox_GetCount($ListBoxOut) ; On compte le nombre d'lments dans la liste de
droite
For $m = 0 To $nbPC2 ; Pour chaque lment,
$var2 = _GUICtrlListBox_GetText($ListBoxOut, $m) ; On le stocke dans une variable
GUICtrlSetData($ListBoxIn, $var2) ; qu'on copie gauche
Next ; et on boucle
_GUICtrlListBox_ResetContent($ListBoxOut) ; On vide la liste de droite
_GUICtrlListBox_DeleteString($ListBoxIn, 0) ; On supprime la ligne vide de la liste de gauche
EndFunc
;==>DeselectionTOUS
; ###########################################################################################################
; ############################################ Affichage message ############################################
Func Message($info, $MESSAGE, $Temps, $TailleMessage)
SplashTextOn($info, $MESSAGE, 250, $TailleMessage, -1, -1, 1)
Sleep($Temps)
SplashOff()
EndFunc
;==>Message
; ###########################################################################################################
; ################################## Wake On Lan avant restauration #########################################
Func WOL()
$PostesARestaurer = FileOpen($chemin & "\PostesARestaurer.txt", 0)
If
$PostesARestaurer
=
-1
Then
MsgBox(0,
"Erreur",
"Impossible
'PostesARestaurer.txt'.")
d'ouvrir
le
fichier
'PCdemarre.txt'.")
Dim $cmd
Dim $PC
Dim $donnees
$lignePC = FileRead($chemin & "\PostesARestaurer.txt") ; $lignePC = PC01S321|
$unPC = StringSplit($lignePC, "|")
$monPoste = $unPC[1]
For $v = 1 To $unPC[0]
Dossier technique
Page 57 sur 67
EndIf
Next
FileClose($PostesARestaurer)
FileClose($Wake_On_Line)
FileClose($PCdemarre)
EndFunc
;==>WOL
; ###########################################################################################################
Dossier technique
Page 58 sur 67
#include <Array.au3>
#include <File.au3>
Const $INI = "Config_SPARC.ini" ; On indique le rpertoire de travail
$chemin = IniRead($INI, "Main", "chemin", ""); Dfinition du chemin de travail
; VARIABLES
Dim
Dim
Dim
Dim
Dim
Dim
Dim
$groupes[1], $groupe_perso
$file ; fichier ouvrir, ici $chemin\scan.txt
$ligne, $line ; ligne lue dans un fichier
$SalleDuPC ; nom de la salle lu dans le nom de pc
$salles ; nom du fichier contenant la liste des salles
$destination ; nom du fichier portant le nom de la salle et contenant les noms d'ordinateurs
$ordi ; nom de l'ordinateur
&
"\ToutesLesSalles.txt")
Then
$test
_FileCreate($chemin
&
de "jesuisla.txt"
FileOpen($chemin
&
"\ToutesLesSalles.txt",
0)
Dossier technique
On
ouvre
la
liste
des
salles
cre
dans
Page 59 sur 67
;==>Message
; ###########################################################################################################
Dossier technique
Page 60 sur 67
: nom_PC,@MAC
WEnd
FileClose($file)
FileClose($Fichier_Type)
Prep_Fichier_WakeOnLine()
ProcessClose("Console_SPARC.exe")
WinWaitClose ("Console_SPARC")
If Not ProcessExists("Console_SPARC.exe") Then Run("Console_SPARC.exe", @WorkingDir)
; ===========================================================================================================
Func Prep_Fichier_WakeOnLine()
$Fichier_Type = FileOpen($chemin & "\Fichier_Type.txt", 0)
If $Fichier_Type = -1 Then MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier 'Fichier_Type.txt'.")
$Countline2 = _FileCountLines($chemin & "\Fichier_Type.txt")
$Wake_On_Line = FileOpen($chemin & "\Wake_On_Line.txt", 2)
If $Wake_On_Line = -1 Then MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier 'Wake_On_Line.txt'")
$i = 1
While $i <= $Countline2
$ligne = FileReadLine($Fichier_Type)
$donnee = StringSplit($ligne, ",", 0)
$PC = $donnee[1]
$MAC = $donnee[2]
Dossier technique
Page 61 sur 67
;==>Prep_Fichier_WakeOnLine
; ===========================================================================================================
4.11
Dossier technique
Page 62 sur 67
4.13
4.14
4.15
Liste des postes qu'on veut restaurer ( ne pas confondre avec le fichier jesuisla.txt ):
PC01S323|PC02S323|PC04S323|PC05S323|PC07S323|PC11S323|
4.16
Dossier technique
Page 63 sur 67
4.18
Fichier qui fait correspondre un nom de poste une adresse MAC, cr en retravaillant le fichier
Toutes_les_adresses.txt :
PC13S508,00-16-EC-91-35-A2
PC01SCDI,00-15-F2-EC-9C-7B
PC08SCDI,00-15-F2-EC-9C-1F
PC07SCDI,00-15-F2-EC-9E-25
PC15S508,00-16-EC-91-92-F0
N/A,N/A
PC06SCDI,00-15-F2-EC-9C-E6
PC16S508,00-16-EC-91-34-DD
PC04S319,00-15-F2-EC-9C-9B
PC14S129,00-15-F2-EC-9C-77
PC10S508,00-16-EC-91-36-62
4.19
Fichier qui fait correspondre un nom de poste une commande de Wake On Lan, cr en retravaillant le
fichier Fichier_Type.txt :
PC01S321,WakeUpCmd.exe /mac:00-19-DB-44-20-80
PC05S319,WakeUpCmd.exe /mac:00-15-F2-EC-9C-85
PC02S321,WakeUpCmd.exe /mac:00-0C-29-82-FC-62
Dossier technique
Page 64 sur 67
<File.au3>
<EditConstants.au3>
<String.au3>
<GUIConstantsEx.au3>
<StaticConstants.au3>
<WindowsConstants.au3>
=
=
=
=
GUICtrlCreateInput("",
GUICtrlCreateInput("",
GUICtrlCreateInput("",
GUICtrlCreateInput("",
Case $GUI_EVENT_CLOSE
Exit
Case $Conversion
$loginIN = GUICtrlRead($1) ; On lit le login non crypt
$mdpIN = GUICtrlRead($2) ; On lit le mot de passe non crypt
If $loginIN = "" Or $mdpIN = "" Then ; Si un des deux champs est vide alors
Message("", "Veuillez remplir tous les champs", 1750, 45) ; on indique qu'il faut
renseigner tous les champs
Else
$loginIN = ""
$loginIN = GUICtrlRead($1) ; On lit le login
Dossier technique
Page 65 sur 67
Case $Vider
GUICtrlSetData($1,
GUICtrlSetData($2,
GUICtrlSetData($3,
GUICtrlSetData($4,
"")
"")
"")
"")
EndSwitch
WEnd
; ###########################################################################################################
; ########################################## F O N C T I O N S ##############################################
; ###########################################################################################################
;==>Message
; ###########################################################################################################
Dossier technique
Page 66 sur 67
Dossier technique
Page 67 sur 67