Académique Documents
Professionnel Documents
Culture Documents
DOSSIER TECHNIQUE Alcazar PDF
DOSSIER TECHNIQUE Alcazar PDF
___________________________________________
DOSSIER TECHNIQUE
___________________________________________
Sommaire
INTRODUCTION...................................................................................................................................................................4
1 PROJET ALCASAR.............................................................................................................................................................5
1.1 DESCRIPTION GÉNÉRALE DU PRODUIT...........................................................................................................................................5
1.1.1 Mission...........................................................................................................................................................................5
1.1.2 Constituants foncionnels et matériels............................................................................................................................5
1.1.3 Explication globale du fonctionnement.........................................................................................................................5
1.2 PERFORMANCES ET LIMITES........................................................................................................................................................5
1.2.1 Caractéristiques opérationnelles du produit.................................................................................................................5
1.2.2 Limites d'utilisation.......................................................................................................................................................7
1.2.3 Extensions possibles......................................................................................................................................................8
1.3 ÉLÉMENTS TECHNIQUES..............................................................................................................................................................8
1.3.1 Installation de Linux Mandriva 2009............................................................................................................................8
1.3.2 Installation d'ALCASAR v1.7 rc3................................................................................................................................14
1.3.3 Utilisation....................................................................................................................................................................15
1.3.4 Tests et réglages...........................................................................................................................................................19
1.3.5 Schéma fonctionnel......................................................................................................................................................20
1.3.6 Plan..............................................................................................................................................................................20
2 PROJET REMOTE VLC LIGHT....................................................................................................................................21
2.1 DESCRIPTION GÉNÉRALE DU PRODUIT.........................................................................................................................................21
2.1.1 Mission.........................................................................................................................................................................21
2.1.2 Constituants fonctionnels et matériels.........................................................................................................................21
2.1.3 Explication globale du fonctionnement.......................................................................................................................21
2.2 PERFORMANCES ET LIMITES...........................................................................................................................................................22
2.2.1 Caractéristiques opérationnelles du produit...............................................................................................................22
2.2.2 Limites d'utilisation.....................................................................................................................................................22
2.2.3 Extensions possibles....................................................................................................................................................22
2.3 ÉLÉMENTS TECHNIQUES............................................................................................................................................................22
2.3.1 Installation et utilisation de Client_VLC.....................................................................................................................22
2.3.2 Installation et utilisation de Remote_VLC_Light........................................................................................................23
2.3.3 Fonctionnement...........................................................................................................................................................25
2.3.4 Tests et réglages...........................................................................................................................................................26
2.3.5 Schéma fonctionnel......................................................................................................................................................26
2.3.6 Fichiers de configuration et scripts.............................................................................................................................26
3 PROJET CONSOLE SYNCHRO PARC.........................................................................................................................28
3.1 DESCRIPTION GÉNÉRALE DU PRODUIT.........................................................................................................................................28
3.1.1 Mission.........................................................................................................................................................................28
3.1.2 Constituants fonctionnels et matériels.........................................................................................................................28
3.1.3 Explication globale du fonctionnement.......................................................................................................................28
3.2 PERFORMANCES ET LIMITES......................................................................................................................................................29
3.2.1 Caractéristiques opérationnelles du produit...............................................................................................................29
3.2.2 Limites d'utilisation.....................................................................................................................................................29
3.2.3 Extensions possibles....................................................................................................................................................29
3.3 ÉLÉMENTS TECHNIQUES............................................................................................................................................................30
3.3.1 Synchro Parc XP..........................................................................................................................................................30
3.3.2 Console de restauration à distance Synchro Parc.......................................................................................................31
3.3.3 Tests et réglages...........................................................................................................................................................35
3.3.4 Schéma de synthèse......................................................................................................................................................35
3.3.5 Fichiers de configuration et scripts.............................................................................................................................36
4 ANNEXES............................................................................................................................................................................37
4.1 ANNEXE 1 : CODE DU LOGICIEL « VLC_CLIENT »....................................................................................................................37
4.2 ANNEXE 2 : FICHIER « REMOTE_VLC_LIGHT.INI ».................................................................................................................38
Introduction
Durant la période de stage, plusieurs projets ont été réalisés. Le dossier technique présenté ci-après a pour
but de fournir à l’entreprise d’accueil les informations nécessaires à la compréhension du fonctionnement
en vue de l’utilisation, de la maintenance et des modifications ultérieures des produits.
Le dossier sera décomposé en une partie distincte pour chaque projet. En fin de dossier se trouvent les
annexes.
Il est à noter que ces programmes sont appelés à être utilisés dans d'autres établissements (collèges et
lycées du Maine et Loire), certaines remarques de ce dossier sont donc liées à cette réalité.
1 Projet ALCASAR
1.1 Description générale du produit
1.1.1 Mission
L’objectif de ce projet était d’installer un portail captif dans le CEFOC. Pour cela, on utilise ALCASAR
(Application Libre pour le Contrôle d’Accès Sécurisé et Authentifié au Réseau). ALCASAR est une
solution logicielle libre et gratuite qui protège, authentifie, contrôle et impute les accès des usagers d'un
réseau de consultation Internet. En France, ALCASAR permet aux responsables d'un réseau de
consultation de décliner à leurs niveaux les exigences que la loi impose aux opérateurs. Il constitue un
portail captif authentifiant et sécurisé.
Le projet ALCASAR a été initié fin 2007. Il est indépendant et libre (licence GPLV3). Il est suivi
actuellement par : Richard REY, Franck BOUIJOUX, Pascal LEVANT et Stéphane WEBER.
Concrètement, un utilisateur lambda voulant se connecter au réseau via son ordinateur portable et
possédant un compte créé par l’administrateur, 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 d’utilisateur et un mot de passe. Une fois ces données saisies,
l’utilisateur peut naviguer sur internet. Une autre fenêtre est à sa disposition pour déconnecter sa session.
Les sessions sont paramétrables par l’administrateur réseau : durée d’une session, durée journalière,
durée hebdomadaire, nombre de sessions simultanées, etc. A aucun moment, l’utilisateur n’a à configurer
sa machine (adresse IP, masque, clé WEP ou WPA, etc.)
Ces exigences consistent à produire, au niveau du portail, une trace précise des activités de chaque usager.
Ces traces doivent pouvoir être exploitées dans le cadre d'une enquête judiciaire. Alcasar produit ces traces
sous forme de fichiers pouvant être aisément archivés sur supports externes.
Afin d'être en mesure de corréler les journaux d'événements d'Alcasar avec ceux des différents systèmes
présents sur le réseau, un serveur de temps a été intégré à la solution.
Le contrôle des connexions implémenté dans Alcasar permet, par exemple, de définir pour un usager ou
pour un groupe d'usagers des dates de fin de validité de compte, des créneaux de connexion hebdomadaire
ainsi que des durées maximales de connexion affectées à une session, une journée ou un mois.
➢ Sécuriser …
… le réseau de consultation
Alcasar intègre un pare-feu spécifiquement paramétré afin de protéger les équipements du réseau de
consultation des menaces externes directes. En outre, ce pare-feu permet de camoufler le réseau de
consultation et d'anonymiser les connexions.
Les mises à jour automatiques de sécurité des équipements de consultation (antivirus et patch) sont
rendues possibles à travers la déclaration d'une liste de sites pouvant être joints directement sans
authentification préalable.
… le portail
La sécurité du portail a été élaborée comme pour un système bastion devant résister à différents types de
menaces :
• utilisation et sécurisation d'un système d'exploitation minimaliste (Mandriva Linux LSB) ;
• protection du portail vis-à-vis d'une attaque interne (durcissement et anticontournement) ;
• les logiciels utilisés sont reconnus par la communauté comme des valeurs sûres et éprouvées ;
• concernant l'accès à l'interface de gestion : chiffrement des trames, authentification et comptabilité
des accès, séparation entre les fonctions d'archivage et les fonctions de gestion (deux profils
d'administrateurs).
… les usagers
Afin de protéger les usagers, il a été décidé d'inclure nativement dans le portail un dispositif permettant de
filtrer (bloquer) l'accès aux sites dont le contenu peut être répréhensible. Ce dispositif est entièrement
paramétrable (activation, désactivation, ajout ou retrait de site, etc.).
➢ Universalité
Alcasar est compatible avec tous les types d'équipements de consultation (PC fixes, PC portables, PDA,
smartphones, etc.), tous les types de systèmes d'exploitation (Windows, Linux, Palm-OS, Blackberry,
Symbian OS, etc.) et tous les types de réseaux (LAN filaire, LAN WIFI, LAN CPL, PAN bluetooth, etc.).
Le portail se comporte comme un sas d'accès pour l'ensemble des services Internet. Ainsi, il n'apporte pas
de restriction par rapport aux protocoles exploités. En d'autres termes, une fois l'authentification de
l'usager réalisée, tous les protocoles pouvant être exploités par une station de consultation sont autorisés et
tracés : consultation WEB, transfert de fichiers ftp ou d'égal à égal (P2P), messagerie, messagerie
instantanée (chat), discussion (news), jeux en réseau, multimédia (radio, tv, musique), etc.
C'est à l'OSSI/RSSI, responsable du réseau de consultation de définir la configuration des équipements
(logiciels installés, droit d'accès, etc.).
➢ Indépendance et intégration
La solution respecte les standards. Elle ne dépend ni d'une technologie propriétaire ni d'un prestataire
particulier. Le système d'exploitation et les logiciels exploités sont protégés par des licences libres ; les
développements réalisés spécifiquement pour Alcasar se trouvent eux-mêmes sous licence libre.
Dans les organismes, l'accès au réseau Internet est géré par un FAI qui fournit et administre ses
équipements (Modem xDSL + Routeur + commutateur). Cette architecture peut évoluer en fonction des
marchés et des contextes géographiques. La solution proposée est donc totalement indépendante des
équipements fournis par les FAI.
Les usagers peuvent utiliser n'importe quel équipement du réseau de consultation.
Les équipements de consultation peuvent être mis à jour de manière automatique sans authentification
préalable (patch de sécurité, antivirus, etc.).
ALCASAR étant une solution libre, le seul « support technique » reste la communauté ayant créé et
développant la solution.
En outre, à ce jour (version v1.7-rc3), un inconvénient peut être souligné : il n'y a pas possibilité de lier les
comptes LDAP à ALCASAR. Cependant, on peut voir cet inconvénient comme un avantage … en effet,
les étudiants souhaitant se connecter en WiFi doivent d'abord faire une demande de compte, ce qui crée
une certaine sécurité. Il n'y pas pas de compte « passe-partout » mais un compte par personne.
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 à intégrer la synchronisation des comptes ALCASAR avec l'AD ou le
LDAP.
Enfin, on peut penser à associer l'authentification des usagers avec le contrôle d'accès au média avec le
802.1x mais cela implique la mise en place d'un serveur d'authentification de type RADIUS ou TACACS
par exemple.
Voici la procédure d’installation de Linux Mandriva 2009, système d’exploitation sur lequel on va ensuite
installer ALCASAR :
On choisit le français.
On crée 5 partitions :
/ : 1Go
swap : 1Go
/tmp : 1Go
/home : 1Go
/var : tout le reste
ALCASAR a été conçu pour pouvoir être intégré dans un seul système (un seul PC). Il est bâtit autour
d'une quinzaine d'éléments constituant ainsi un portail captif authentifiant complet, sécurisé et géré
graphiquement. Ce portail est positionné en coupure entre les deux réseaux à cloisonner.
Nous allons maintenant voir comment installer ALCASAR sur le serveur Linux.
L’installation d’ALCASAR est terminée. Nous allons maintenant voir comment l’utiliser.
1.3.3 Utilisation
→ Côté utilisateur
Les équipements de consultation peuvent être de tous types (MAC, PC, PDA, smartphone, iPhone, etc.).
Les systèmes 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.).
Au lancement d'un navigateur WEB (que ce soit sur un ordinateur [Figure 2], sur un PDA [Figure 3] ou
sur un smartphone [Figure 4] par exemple), une page d'authentification lui est présentée :
Une fois l'authentification effectuée, le navigateur affiche la première page de consultation [Figure 5] ainsi
qu'une fenêtre supplémentaire permettant à l'usager de se déconnecter [Figure 6]. En fonction de la
configuration des postes de consultation, toutes les applications et tous les protocoles réseau sont alors
disponibles pour l'usager (ftp, courrier électronique, discussion, P2P, etc.).
Pour se déconnecter, l'usager utilise la fenêtre de déconnexion dédiée [Figure 6 et 7].
→ Côté administrateur
La gestion d’ALCASAR est possible à partir d’une machine située dans le réseau de consultation (ce que
nous avons appelé « Réseau WiFi étudiant » dans la [Figure 1] (page 7). Pour accéder à l’interface de
gestion graphique, on tape dans la barre d’adresse du navigateur l’adresse https://192.168.182.1/ (dans
notre cas).
A noter que cette page est visible par tous. En revanche, pour accéder aux différents items du menu de
gauche, il faudra se logguer avec les identifiants et mot de passe d’un des deux comptes configurés lors de
l’installation.
A noter que cette page est visible par tous. En revanche, pour accéder aux différents items du menu de
gauche, il faudra se logguer avec les identifiants et mot de passe d’un des deux comptes configurés lors de
l’installation.
Figure 11 : statistiques
de récupérer pour archivage les différents fichiers journaux devant être présentés en cas
d'enquête judiciaire. Ces fichiers contiennent les traces de toutes les connexions, de tous les
protocoles et de toutes les adresses consultées. Elles constituent ainsi les preuves de l'activité du
réseau de consultation. Ces fichiers peuvent être chiffrés :
d'activer, de désactiver [Figure 14], de modifier ou de mettre à jour les listes des sites filtrés
(blacklists) [Figure 15] et des sites de confiance [Figure 16] :
Figure 16 : whitelist
L’administrateur peuvent intervenir sur le portail directement ou à distance via un tunnel chiffré SSH
(VPN).
Après une période de tests, on peut récupérer les fichiers log du serveur. Ainsi, on peut étudier les
connexions et le trafic sur le réseau.
Les testeurs ont été mis à contribution afin de naviguer sur le réseau comme ils l'auraient fait chez eux. Le
but est de voir si les blacklists sont bien efficaces. On peut également voir grâce à ces fichiers de log si
certains sites sont très visités alors qu'ils ne devraient pas l'être, auquel cas on la rajouterait à la blacklist.
Figure 1 (rappel)
1.3.6 Plan
Ci-après, le plan du CEFOC [Figure 17]. Dans la salle 3 se trouvent le serveur ALCASAR ainsi que la
borne Wifi, suffisante pour fournir un accès sans fil à tout le bâtiment.
2.1.1 Mission
Remote VLC Light est un logiciel créé par M. Olivier Le Grand, administrateur réseau du lycée Sacré
Cœur d'Angers, et Mickaël Loussouarn, un ancien stagiaire.
Cet utilitaire a pour but de simplifier l'utilisation du lecteur multimédia VLC pour le personnel enseignant
du lycée. Il permet de diffuser en multicast des supports audio ou vidéo.
Le but de ce projet est de faire évoluer le logiciel en ajoutant une partie diffusion vidéo en temps réel des
flux « télévision à la demande » proposés par Orange, FAI de l'établissement.
Pour utiliser Remote VLC Light, on a besoin d'un poste serveur et d'autant de postes client que l'on désire.
Remote VLC Light fonctionne sous Windows 2000 et Windows XP. Il est développé avec AutoIT. Des
enceintes ou des casques audio peuvent être utilisés, car la vidéo et le son sont encodés.
Les postes client sont dans le même réseau que le poste maître (et dans la même salle). Les postes client
possèdent tous le logiciel Client_VLC. Ce dernier lit le flux réseau à l'adresse udp://@239.255.0.1:1234 .
A la situation initiale, les seules vidéos diffusables par le poste serveur étaient les vidéos enregistrées sur
un disque réseau. Cela impliquait tout un travail en amont : trouver la vidéo sur Internet, la copier, la
réencoder, l'enregistrer dans le répertoire prévu à cet effet.
Il faut savoir que les élèves n'ont pas accès à tous les sites, notamment les sites de type YouTube ou
DailyMotion (protection du proxy). Il revenait donc au professeur de trouver la vidéo utile à son cours et à
l'administrateur de ré-encoder la vidéo 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 à appréhender pour des utilisateurs novices que peuvent être les
enseignants, qui n'ont pas forcément tous des notions de client/serveur, de flux vidéo, etc.
S'il est vrai que la « TV à la demande » est un outil appréciable en terme de simplicité d'utilisation, il reste
néanmoins qu'il s'agit de télé en direct, et la console ne possède pas les même fonctionnalités que les
« box » que proposent les FAI pour les particuliers (enregistrement d'un programme, possibilité de mettre
« en pause » un programme télévisé, etc.). Il faut donc que l'horaire de l'émission que le professeur
souhaite montrer à ses élèves concorde à l'horaire de son cours … De ce fait, les anciennes fonctionnalités
de Remote_VLC_Light sont toujours intéressantes.
Sur un autre plan, on a pu observer, lors des phases de test, des diffusions parfois saccadées 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 proposés par Orange.
Dans la continuité du problème que l'on vient d'évoquer, on pourrait penser à ajouter des fonctions plus
poussées au menu « TV à la demande » comme la fonction « pause » par exemple. Pour ce qui est de
l'enregistrement des émissions, ce n'est pas forcément la meilleure idée, puisque tous les professeurs ne
possèdent pas forcément VLC chez eux, et de surcroît, ne savent pas forcément le configurer ...
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 guère plus compliquée puisqu'ils n'ont qu'à lancer un exécutable.
Pour reprendre notre précédent exemple, lors d'un cours, le professeur souhaite montrer une vidéo ou faire
écouter une bande son. Tous les élèves lancent l'application Client_VLC et n'ont rien d'autre à faire à part
attendre que de son côté, le professeur lance Remote_VLC_Light et choisisse le média qu'il souhaite
diffuser. Nous allons voir justement plus en détail le fonctionnement de Remote_VLC_Light dans le point
suivant (2.3.2).
L'installation de Remote_VLC_Light se fait également par un package MSI. Voici comment utiliser les 5
menus de Remote_VLC_Light :
VLC se lance ensuite sur le poste serveur lorsqu'on appuie sur le bouton « Diffuser » [Figure 21] :
➢ Lecture d'un CD :
On insère le CD dans le lecteur, on sélectionne le bouton radio « CD » et ce message apparaît, VLC
se lance ensuite sur le poste serveur. VLC se lance ensuite sur le poste serveur lorsqu'on appuie sur
le bouton DIFFUSER.
➢ 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 apparaît. VLC se lance ensuite sur le poste serveur
lorsqu'on appuie sur le bouton « Diffuser ».
➢ Vidéo à la demande :
Même principe pour la vidéo.
➢ TV à la demande :
On clique sur le menu déroulant, puis on choisit la chaîne 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
l'interface graphique et qu'on clique sur le bouton radio [Figure 25], VLC va ouvrir un flux réseau dont
l'adresse correspond à la chaîne dans le fichier « Ch_Adr.txt ».
Passée la phase de développement (où on teste le fonctionnement à proprement parler du logiciel), les
phases de test concernent majoritairement des caractéristiques comme le format de la vidéo après
encodage ou encore l'ergonomie du programme pour l'utilisateur lambda (verrouillage d'un bouton radio
par exemple). On teste le logiciel en se mettant à la place de l'utilisateur, en faisant des manipulations
hasardeuses et on règle le programme, on édite le code en fonction de cela.
3.1.1 Mission
La Console de restauration à distance Synchro Parc a été créée dans le but d'éviter les déplacements
« inutiles ». Dans la situation initiale (donc avant la création de la Console Synchro Parc), l'administrateur
est obligé de se déplacer 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-après (point 3.3.2) le fonctionnement de Synchro Parc XP.
On peut noter que ce logiciel est développé avec le langage AutoIT, donc pour les personnes qui
souhaiteraient modifier le code pour l'utiliser, il faut disposer du logiciel AutoIT (logiciel gratuit).
Le programme Console Synchro Parc permet à l'administrateur réseau, à partir de son bureau, d'allumer
les postes d'une salle à distance grâce au protocole Wake On Lan. Il peut ensuite choisir les postes à
restaurer.
Figure 27 : Console_SPARC
Le produit permet à l'administrateur, depuis son bureau, de choisir autant de postes qu'il désire, dans autant
de salles qu'il le souhaite, en vue d'une restauration. Néanmoins, on ne peut pas choisir deux postes dans
deux salles différentes pour une restauration simultanée. Concrètement, on restaure salle par salle.
Cette console, développée autour du réseau du lycée Sacré Cœur est utilisable uniquement au sein du
lycée, pour le moment. En effet, le code se base sur l'architecture du réseau. Dans d'autres établissements,
les noms de postes ne sont certainement pas les mêmes, les salles ne sont pas organisées de la même
façon. Il est possible également que dans d'autres réseaux, les postes ne soient pas dotés de matériel
compatible Wake On Lan (dans ce cas, l'utilisation de la console Synchro Parc n'est pas forcément
judicieuse …). Néanmoins, en fournissant le code commenté du programme, il est possible pour tout
administrateur d'adapter le programme à son réseau et de ce fait, d'utiliser tout de même la Console
Synchro Parc.
L'interface, bien que déjà modifiée en cours de développement (voir [Figure 28] : version antérieure de la
Console Synchro Parc) pourrait être encore améliorée. 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 allumés et
en noir les postes éteints. Dans la version actuelle, on ne sait pas quels postes sont éteints ou non ; on les
allume systématiquement.
Sans aller forcément jusqu'au plan de chaque salle, on peut garder l'idée de la représentation des postes en
vert ou noir.
Synchro Parc XP est un logiciel créé par le CRDP (Centre Régional de Documentation Pédagogique) de
Champagne-Ardennes. Il permet de sauvegarder un ensemble d'ordinateurs sur le disque dur d'un
ordinateur du réseau. Chaque sauvegarde est composée d'un fichier (extension ASB) contenant la liste des
fichiers sauvegardés et l'endroit (dans le répertoire DATAXP) où chaque fichier est sauvegardé. Avec cette
technique, un même 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 oubliée. Les fichiers qui ont été supprimés sont replacés,
les fichiers qui ont été modifiés sont restaurés, les fichiers qui ont été ajoutés sont supprimés.
Synchro Parc XP permet également une restauration partielle bien utile si on vient de supprimer un fichier
ou un répertoire par erreur et que l'on souhaite seulement restaurer ce fichier ou ce répertoire. Cette
restauration partielle ne supprime pas de fichiers.
Remarque : La comparaison de deux fichiers se fait en comparant le nom, le répertoire, la taille et la date
à la seconde près. Il est donc théoriquement possible que deux fichiers soient différents et considérés
comme identiques par Synchro Parc XP, mais la probabilité est tellement faible qu'en pratique elle peut
être considérée comme nulle. En effet, dès qu'un fichier est modifié, sa taille a de grandes chances de
changer et la date change pour indiquer le moment précis de l'enregistrement, d'autant plus que c'est
l'heure UTC des fichiers qui est utilisée. (UTC : Universal Time Coordinated, heure absolue,
indépendante du fuseau horaire et de l'heure d'été.)
Synchro Parc XP peut être comparé à Norton Ghost au niveau des fonctionnalités. C'est une solution
moins complète, certes, mais moins lourde, et surtout moins coûteuse, élément non négligeable pour un
établissement scolaire. A titre informatif, le montant de la licence Synchro Parc XP s'élève à 245€ (Licence
établissement – Prix Éducation Nationale) contre environ 2000€ pour 100 licences Norton Ghost (plus le
logiciel à 79,99€). De plus, la licence Synchro Parc XP est valable pour toutes les machines du réseau
alors qu'il faut une licence par poste avec Norton Ghost. Il y a au Sacré Cœur plus de 400 machines …
→ Côté client
Pour les postes clients, nous avons développé 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, grâce au programme
« Install» (Annexe 11, page 62).
Le « Client_SPARC » cherche la présence du nom du poste client dans le fichier « jesuisla.txt ». Ensuite,
on teste la présence sur le PC d'un fichier nommé « INIT_OK ». Ce fichier indique si le poste a déjà été
initialisé une fois ou non, en d'autres termes, s'il a déjà été restauré. S'il n'est pas présent, on le crée, sinon
on passe à l'étape de restauration à proprement parler.
La première é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.
→ Côté administrateur
Nous allons voir maintenant comment fonctionne plus précisément la Console Synchro Parc, utilisable par
l'administrateur. Le code de la Console est visible dans l'Annexe 8, page 52. Avant le lancement de la
Console, plusieurs étapes sont effectuées par le programme.
➢ Wake On Lan :
Vient l'étape de Wake On Lan. Avant toute chose, il faut savoir qu'on possède un fichier nommé
« Wake_on_line.txt » (Annexe 19, page 64). Celui-ci est généré grâce, en partie grâce au logiciel « Angry
IP Scan », qui effectue un scan réseau d'une plage d'adresse IP donnée [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 façon à 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 création 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 sélectionnés, sachant que si on lance une telle commande sur un poste déjà allumé, il
n'y a pas de conséquence néfaste, il n'y a en fait, rien qui se passe. Les postes sont allumés 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 démarrage Wake On Lan, le PC doit se connecter avec un
compte SPARC (situation dans le lycée Sacré Cœur). Pour ne par laisser apparaître le login et le mot de
passe de ce compte, on va crypter les informations.
Pour cela, on utilise le Module de Cryptage (Configuration / Génération de login/mot de passe) [Figure
31].
Concrètement, du côté administrateur, on va choisir un login, un mot de passe [Figure 32], et une
« passphrase » est codée en dur dans le programme. Le login et le mot de passe sont cryptés en tenant
compte de cette « passphrase ». Ces données cryptées sont inscrites dans un fichier « cle.reg » (Annexe
21, page 67). Ce fichier .reg sera fusionné au moment de lancer « Install.exe » (Annexe 11, page 62). De
cette façon, on n'écrit pas les données dans le fichier « Config_SPARC.ini », et l'utilisateur du réseau ne
peut pas voir ces identifiants., ceci pour la sécurité.
Ainsi, même si on récupère les chaînes (login / mot de passe) en crypté, on ne peut pas les décrypter, à
moins de connaître justement cette « passphrase ».
Du côté du client, on va lire dans la base de registres les login et mot de passe en crypté, que l'on stocke,
que l'on décrypte, puis qu'on utilise pour se connecter.
Comme nous l'avons vu précédemment, les tests et les réglages de la Console Synchro Parc sont valides
dans le lycée Sacré Cœur. 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
spécificités de l'établissement (nombre de PC par salle, format de nom de poste, etc.)
Voici un schéma [Figure 34] qui récapitule les dépendances entre les fichiers :
4 Annexes
4.1 Annexe 1 : Code du logiciel « VLC_Client »
; ###########################################################################################################
; ######################################## F O N C T I O N S ################################################
; ###########################################################################################################
; ###########################################################################################################
[Main]
Titre="VLC REMOTE MULTICAST - Olegrand 2007 / Mikael LOUSSOUARN/ Dang-Khoa HA"
Version="1.5.4"
Chemin_VLC="C:\Program Files\VideoLAN\VLC\vlc.exe"
IP_UDP = "239.255.0.1"
Source_Fichier_m3u = "C:\"
[Client]
TailleEcran="--fullscreen"
;TailleEcran=""
[TV]
TV = "OUI"
#EXTM3U
#EXTINF:1,2424 Video
mms://onlinetv-fr-streamer-prod.otv.cvf.fr/VODBarker-700/KEYMTI0MDgxNTk2ODAwMCpWSURFT0MtMTA...
#EXTINF:3,France 3
mms://onlinetv-fr-streamer-prod.otv.cvf.fr/France3-700/KEYMTI0MDgxNTk2ODAwMCpWSURFT0MtMTA...
#EXTINF:5,France 5
mms://onlinetv-fr-streamer-prod.otv.cvf.fr/France5- 700/KEYMTI0MDgxNTk2ODAwMCpWSURFT0MtMTA...
#EXTINF:7,Arte
mms://onlinetv-fr-streamer-prod.otv.cvf.fr/Arte-700/KEYMTI0MDgxNTk2ODAwMCpWSURFT0MtMTA...
#EXTINF:8,Direct 8
mms://onlinetv-fr-streamer-prod.otv.cvf.fr/Direct8-700/KEYMTI0MDgxNTk2ODAwMCpWSURFT0MtMTA...
Remarque : Tout ce « bloc » tient en fait sur une seule et unique ligne
Liste qui fait correspondre une adresse à une chaîne, créée 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...
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GuiComboBox.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <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
Copy_Orange_TV()
Else
EndIf
list()
CorresChAdr()
GUISetCursor(0)
GUISetBkColor(0xFFFFFF)
GUISetIcon("vlc.ico")
; Création des icônes 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))
$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 chaîne à chaque | pour avoir une seule chaîne
$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()
; 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, "Sélectionnez une musique sur votre disque dur")
GUICtrlSetTip($SelectVOD, "Sélectionnez une vidéo sur votre disque dur")
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 <> "Sélectionnez une chaîne" Then
GUICtrlSetState($Source_TV, $GUI_enABLE)
EndIf
Case $Source_DVD
If StringLen($Menu_Read) > 3 Then
Case $Source_CD
If StringLen($Menu_Read) > 3 Then
Message($INFO, "Vous avez sélectionné le CD sur le CDROM " & $lettre_CDROM_CD
& ".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 sélectionné 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 sélectionné la musique à la demande", $Temps, 60)
Case $Source_VOD
Message($INFO, "Vous avez sélectionné la vidéo à la demande", $Temps, 60)
Case $Source_TV
If $TV = "OUI" Then
GUICtrlSetState($Select_TV, $GUI_DISABLE)
Message($INFO, "Vous avez sélectionné la télé à 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()
GUICtrlSetState($Source_TV, $GUI_UNCHECKED)
ElseIf $version_VLC > "0.8.7" Then
SelectSource_091()
GUICtrlSetState($Source_TV, $GUI_UNCHECKED)
Else
EndIf
EndSwitch
WEnd
; ###########################################################################################################
; ######################################## F O N C T I O N S ################################################
; ###########################################################################################################
Run($Chemin_VLC & " --ttl 8 -vvv dvdsimple://" & $lettre_CDROM_DVD & "
:sout=#duplicate{dst=display,dst=std{access=udp,dst=" & $Add_UDP_Court & "}}:sout-keep")
ElseIf $Source_CD And BitAND(GUICtrlRead($Source_CD), $GUI_CHECKED) = $GUI_CHECKED Then
Run($Chemin_VLC & " --ttl 8 -vvv --extraintf http cdda://" & $lettre_CDROM_CD & "
:sout=#duplicate{dst=display,dst=std{access=udp,mux=ts,url=" & $Add_UDP_Court & "}}")
ElseIf $Source_TV And BitAND(GUICtrlRead($Source_TV), $GUI_CHECKED) = $GUI_CHECKED Then
Run($Chemin_VLC & " --ttl 8 -vvv --extraintf http " & $Chaine & "
:sout=#transcode{vcodec=DIV3,vb=2048,scale=1,acodec=mp3,ab=128,channels=2}:duplicate{dst=dis
play,dst=std{access=udp,mux=ts,dst=" & $Add_UDP_Court & "}}")
EndIf
EndFunc ;==>SelectSource_086
; ###########################################################################################################
EndFunc ;==>LabelDVD
; ###########################################################################################################
$version_VLC = FileGetVersion($Chemin_VLC)
EndFunc ;==>Version_VLC
; ###########################################################################################################
; Test de présence
$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")
;
; ######################## Créer fichier de correspondance "chaîne,adresse" ==> ChAdr.txt ###################
Func CorresChAdr()
Dim $index_corres
Dim $liste_orange
Dim $maChaineAdr
Dim $nbLignes
Dim $j
Dim $maLigne
$index_corres = FileOpen("Ch_Adr.txt", 2)
$liste_orange = FileOpen("Orange_TV.m3u", 0)
; ###########################################################################################################
Func VLC_Unique()
$PID = ProcessExists("vlc.exe") ; Retourne le numéro 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
répertoire de travail
Message($INFO, "Mise à jour des paramètres en cours...", 2000, 60)
EndFunc ;==>Copy_Orange_TV
; ###########################################################################################################
#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 décrypte 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 décrypte 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 #############################################
; ###########################################################################################################
Else
Restauration()
EndIf
EndFunc ;==>Init
; ###########################################################################################################
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; Infobulles
GUICtrlSetTip($Select1, "Permet de sélectionner une ou plusieurs stations")
GUICtrlSetTip($SelectAll, "Permet de sélectionner toutes les stations")
GUICtrlSetTip($Deselect1, "Permet de désélectionner une ou pluesieurs stations")
GUICtrlSetTip($DeselectAll, "Permet de désélectionner toutes les stations")
GUICtrlSetTip($Restaurer, "Permet de restaurer les stations sélectionnées")
GUICtrlSetTip($Combo, "Sélection d'une salle")
GUICtrlSetTip($Vider, "Vide la liste des stations sélectionnées")
GUICtrlSetTip($Changer, "Permet de sélectionner 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 restaurés", 2000, 70)
Run("notepad.exe " & $chemin & "\" & "jesuisla.txt")
SplashTextOn("info", "Importation des adresses MAC générées par IPscan en cours." & @CRLF &
"Scan de la plage :" & @CRLF & $IPdebut & " -> " & $IPfin & @CRLF & @CRLF & "Veuillez patienter
...", 250, 160, -1, -1, 1)
RunWait($Module_Import, @WorkingDir, @SW_MINIMIZE)
SplashOff()
Case $config_INI
Message("", "Edition du fichier de configuration", 2000, 65)
Run("notepad.exe " & $chemin & "\" & "Config_SPARC.ini")
Case $Cryptage
Run($chemin & "\Cryptage.exe")
WinWaitActive("Module Cryptage")
WinWaitClose("Module Cryptage")
Case $Version
Message("", "Version de la Console Synchroparc : " & FileGetVersion("Console_SPARC.exe") &
@CRLF & "Version du module d'import des adresses MAC : " & FileGetVersion("Module_Import.exe")
& @CRLF & "Version du module de cryptage : " & FileGetVersion("Cryptage.exe") & @CRLF &
"Version du module de préparation de console : " & FileGetVersion("Prepa_Console.exe"), 9000,
190)
Case $Combo ; On lit ce que l'utilisateur a choisi dans la combobox (autrement dit, la salle choisie)
GUICtrlSetData($ListBoxIn, "") ; On vide la liste de gauche (au cas où il y aurait quelque
chose dedans)
Lister()
If Not _GUICtrlListBox_GetListBoxInfo($ListBoxIn) = 0 Or Not
_GUICtrlListBox_GetListBoxInfo($ListBoxOut) = 0 Then ; Si l'une des 2 listes n'est pas vide,
GUICtrlSetState($Combo, $GUI_DISABLE) ; on ne peut pas utiliser la combobox
EndIf
Case $Vider
DeselectionTOUS()
If _GUICtrlListBox_GetListBoxInfo($ListBoxIn) = 0 And
_GUICtrlListBox_GetListBoxInfo($ListBoxOut) = 0 Then
GUICtrlSetState($Combo, $GUI_enABLE) ; On réactive la combobox si les 2 listes sont
vides
EndIf
Case $Changer
If Not _GUICtrlListBox_GetListBoxInfo($ListBoxIn) = 0 Or Not
_GUICtrlListBox_GetListBoxInfo($ListBoxOut) = 0 Then
_GUICtrlListBox_ResetContent($ListBoxIn) ; On vide la liste de gauche
_GUICtrlListBox_ResetContent($ListBoxOut) ; et celle de droite
$PCselect = "" ; On "vide" la variable $PCselect
GUICtrlSetState($Combo, $GUI_enABLE) ; et on réactive la combobox
Message("", "Les postes précédemment sélectionnés ne seront pas restaurés", 2700, 85)
Else
Message("", "Aucune salle n'est sélectionnée pour le moment", 2000, 65)
EndIf
Case $Restaurer
$demande = MsgBox(4, "Console Synchro Parc", "Confirmez vous la commande de restauration ?")
If $demande = 6 Then
RESTAURATION()
Else
EndIf
Exit
EndSwitch
WEnd
; ###########################################################################################################
; ####################################### F O N C T I O N S #################################################
; ###########################################################################################################
; ################# Afficher les postes pouvant être restaurés dans la liste de gauche ######################
Func Lister()
; on lit la salle choisie, et on affiche les postes qui peuvent être restaurés
$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 présente 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
FileClose($chemin & "\" & $salleChoisie & "\" & $salleChoisie & ".txt")
EndFunc ;==>Lister
; ###########################################################################################################
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
; ###########################################################################################################
GUICtrlSetData($ListBoxIn, $deselection)
EndIf
EndFunc ;==>DeselectionUn
; ###########################################################################################################
$monPoste = $unPC[$v]
For $x = 1 To $nbLignes3
$ligne = FileReadLine($chemin & "\Wake_On_Line.txt", $x)
$donnees = StringSplit($ligne, ",") ; On splite chaque ligne du fichier $Wake_On_Line pour
obtenir :
$PC = $donnees[1] ; un nom de PC : PC01S321
$cmd = $donnees[2] ; la commande pour allumer ce PC par le réseau :
C:\SPARC\WakeUpCmd.exe /mac:00-19-DB-44-20-80
$cmd = String($cmd) ; Fonction inverse de "Eval" : retourne la représentation d'une
chaîne de caractères d'une expression
If $monPoste = $PC Then ; Si la ligne lue dans "PostesARestaurer.txt" est égale au nom de
PC dans la ligne lue de "Wake_On_Line.txt",
Run($cmd, @WorkingDir, @SW_MINIMIZE) ; on lance la commande de Wake On Lan
correspondante
FileWrite($PCdemarre, $PC & @CRLF) ; on écrit le nom du poste allumé en WOL dans
$PCdémarré
EndIf
Next
Next
FileClose($PostesARestaurer)
FileClose($Wake_On_Line)
FileClose($PCdemarre)
EndFunc ;==>WOL
; ###########################################################################################################
ToutesLesSalles.txt
$n = 1 ; Pour chaque nom de salle (dans ToutesLesSalles.txt, entre deux "|"), on crée un dossier portant le
nom de cette salle
While 1
$maLigne = FileReadLine($lesSalles, 1) ; On lit la ligne
$uneSalle = StringSplit($maLigne, "|") ; On récupère le nom d'une salle
DirCreate($chemin & "\" & $uneSalle[$n]) ; On crée un dossier portant ce nom
$n = $n + 1
If $uneSalle[$n] = "" Then ExitLoop
WEnd
FileClose($lesSalles)
; ###########################################################################################################
RunWait($ipscan & " -s -h " & $IPdebut & " " & $IPfin & " -f:csv " & $chemin & "\Toutes_les_adresses.txt")
If Not FileExists($chemin & "\Fichier_Type.txt") Then $test = _FileCreate($chemin & "\Fichier_Type.txt")
If Not FileExists($chemin & "\Wake_On_Line.txt") Then $test = _FileCreate($chemin & "\Wake_On_Line.txt")
$file = FileOpen($chemin & "\Toutes_les_adresses.txt", 0)
If $file = -1 Then MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier 'Toutes_les_adresses.txt'.")
; ===========================================================================================================
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]
[Main]
Titre = "Console Synchroparc version :"
chemin="\\peda\LOGICIEL\SPARC"
IPdebut="172.20.0.1"
IPfin="172.20.0.254"
Chemin_SynchroParcXP="\\172.18.0.2\SPARC2K0\"
PC11S322
PC01S322
PC01S321
PC03S321
S322|S321|S129|S127|S118|S111|S101|S222|S201|S130
Liste des postes qu'on veut restaurer (à ne pas confondre avec le fichier « jesuisla.txt »):
PC01S323|PC02S323|PC04S323|PC05S323|PC07S323|PC11S323|
Liste des postes ayant été démarrés en Wake On Lan (fichier de log) :
PC01S321
PC02S321
PC03S321
PC05S321
PC08S321
PC22S321
Fichier qui fait correspondre à une adresse IP, un nom de poste et une adresse MAC, généré à l'aide de
Angry IP Scan :
172.20.0.1,0 ms,PC13S508,00-16-EC-91-35-A2
172.20.0.8,0 ms,PC01SCDI,00-15-F2-EC-9C-7B
172.20.0.11,0 ms,PC08SCDI,00-15-F2-EC-9C-1F
172.20.0.15,0 ms,PC07SCDI,00-15-F2-EC-9E-25
172.20.0.18,0 ms,PC15S508,00-16-EC-91-92-F0
172.20.0.19,0 ms,N/A,N/A
172.20.0.25,0 ms,PC06SCDI,00-15-F2-EC-9C-E6
172.20.0.31,0 ms,PC16S508,00-16-EC-91-34-DD
172.20.0.36,0 ms,PC04S319,00-15-F2-EC-9C-9B
172.20.0.40,0 ms,PC14S129,00-15-F2-EC-9C-77
172.20.0.42,0 ms,PC10S508,00-16-EC-91-36-62
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
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
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
Case $Vider
GUICtrlSetData($1, "")
GUICtrlSetData($2, "")
GUICtrlSetData($3, "")
GUICtrlSetData($4, "")
EndSwitch
WEnd
; ###########################################################################################################
; ########################################## F O N C T I O N S ##############################################
; ###########################################################################################################