Laboratoire virtuel via RDP
IsThereAnyFreeDesktop a été développé lors des confinements causés par la pandémie, et se veut être une solution à la fois simple, open source et libre de droits pour rendre disponible à distance les postes physiques d’un laboratoire informatique.
Il existe bien entendu de nombreuses autres solutions, comme reproduire cet environnement dans une infrastructure VDI ou DaaS qui gère déjà nativement la disponibilité des postes et l’attribution aléatoire de places dès qu'un usager accède au service. Cependant, l’objectif ici est de rendre disponible à distance une infrastructure déjà existante, à coût nul ou moindre. Néanmoins, IsThereAnyFreeDesktop peut être déployé dans un environnement de postes virtuels ou hybride (postes physiques et virtuels).
Avec la fin du confinement, IsThereAnyFreeDesktop a évolué pour permettre de définir des plages durant lesquelles les postes sont disponibles à distance ou exclusivement en présentiel (ex. : accès à distance désactivé de 8h à 22h en semaine, et disponible 24/7 les fins de semaine).
IsThereAnyFreeDesktop repose sur 2 composantes :
- L’activation du Bureau à distance (RDP) sur les postes du laboratoire.
- Un site web sur lequel est affichée une liste des postes disponibles.
IsThereAnyFreeDesktop repose sur un environnement simple et très courant, c’est-à-dire :
- L’utilisation du langage PHP et d’une base de données MySQL pour le site web affichant la liste des postes.
- Un script Batch de "service" qui s’exécute en tâche de fond au démarrage du poste qui :
- Renseigne périodiquement la base de données du statut du poste (disponible, occupé, ou indisponible).
- Peuple ou dépeuple le groupe local « Utilisateurs du Bureau à distance » avec un groupe du domaine des utilisateurs autorisés à se connecter.
Pour l’installation sur votre serveur :
- Décompressez le contenu du dossier
Serveur
dans l’emplacement de votre choix dans la structure de votre site web hébergé sur votre serveur. - Créez un compte utilisateur et une base de données dans MySQL (vous pouvez importer le fichier
INSTALL.sql
pour créer la structure de la table). - Ajoutez dans votre table les noms des postes de travail de votre laboratoire à rendre disponible sur le site web.
- Configurez la ligne de connexion MySQL
$bdd
et les autres variables disponibles dans le fichierLAB_config.php
.
- Configurez les scripts du dossier
Station
:set ServerURL
(dansIsThereAnyFreeDesktop_service.bat
etIsThereAnyFreeDesktop_stop.bat
) : inscrivez l’URL vers lestatut.php
du serveur web.set RDPusers
(dansIsThereAnyFreeDesktop_service.bat
) : le nom du groupe du domaine des utilisateurs autorisés à se connecter à ajouter dans le groupe standardUtilisateurs du Bureau à distance
.set RDPLocalGroup
(dansIsThereAnyFreeDesktop_service.bat
) : si vous utilisez des postes dans une autre langue que le français, inscrivez le nom du groupe équivalent àUtilisateurs du Bureau à distance
.set endRDPTime[i]
etset startRDPTime[i]
(dansIsThereAnyFreeDesktop_service.bat
) :- inscrivez l’heure de fin et de début de l’accès à distance pour l’accès exclusif en présentiel dans le format
hhmm
, oùhh
est en format 24h (ex.2200
). Pour les postes disponibles 24/24, mettre la même date (ex. 0000). - Et où
i
est le numéro du jour (1=lundi, 2=mardi).
- inscrivez l’heure de fin et de début de l’accès à distance pour l’accès exclusif en présentiel dans le format
- Sur chaque poste :
- Activez le service Bureau à distance.
- Copiez les scripts configurés précédemment dans un dossier des postes (ex.
C:\program files (x86)\IsThereAnyFreeDesktop
). - Inscrivez le script Batch de "service" dans le Planificateur de tâche à l’aide du script
_install.bat
. - Activez les scripts événementiels via les GPO domaine ou local (
gpedit.msc
) suivants :- Si ce n’est déjà fait, désactivez le délai pour l’exécution des scripts.
Configuration de l'ordinateur\Paramètres Windows\Scripts (démarrage/arrêt)\Démarrage
: exécuter_IsThereAnyFreeDesktop_startup.bat
.Configuration de l'ordinateur\Paramètres Windows\Scripts (démarrage/arrêt)\Arrêt du système
: exécuter_IsThereAnyFreeDesktop_shutdown.bat
.
Quelques recommandations supplémentaires, mais facultatives :
- Mettez en place un mécanisme pour fermer automatiquement les sessions abandonnées, par exemple avec Lithnet Idle Logoff.
- Mettez en place un mécanisme pour redémarrer les postes éteints (Wake-On-Lan ou planifiez un démarrage automatique par le BIOS sur les appareils HP).
- Configurez le menu Démarrer pour masquer les options
Arrêter
,Redémarrer
etDéconnecter
(pour ne laisser que l’option de fermeture de sessionSe déconnecter
). Par GPO, ces modifications correspondent aux options suivantes :Configuration de l’ordinateur\Modèles d’administration\Menu Démarrer et barre des tâches\Supprimer et empêcher l’accès aux commandes Arrêter, Redémarrer, Mettre en veille et Mettre en veille prolongée
.Configuration de l’ordinateur\Modèles d’administration\Composants Windows\Services Bureau à distance\Hôte de la session Bureau à distance\Environnement de session à distance\Supprimer l’élément « Déconnecter » de la boite de dialogue Arrêt
.
Cette étape consiste à vous assurer que votre réseau permettra à vos utilisateurs de rejoindre les postes de travail dans votre intranet, par exemple à l’aide d’une connexion sécurisée VPN.
Vous pouvez vous inspirer de la documentation à l'intention de nos utilisateurs.
Ce projet vous a été utile et vous souhaitez nous remercier? Contribuez aux Bourses aux étudiants de l'EBSI ou au fonds des Amis de l'EBSI. Merci à l’avance!
Merci aux différentes personnes qui ont apporté des corrections de bogues et idées à intégrer au projet : Simon Lefrançois (FAS, géographie), Djamel Hadjeres (Faculté de médecine), etc.