Lors de mon stage chez Assurinco, deux projets m’ont été confiés, dont l’un consistait à mettre en place un système automatisé de déploiement de postes. Cette initiative est motivée par la croissance rapide du nombre d'employés au sein de l'entreprise, ce qui rend la configuration des postes de travail redondante. Ainsi, ma mission consistait à créer des stratégies de groupe (GPO) qui permettront notamment d'automatiser l'installation des logiciels essentiels via un script.

Cependant, je ne me suis pas arrêté là pour ce projet. Après avoir effectué des recherches, j'ai découvert l'existence du Microsoft Deployment Toolkit (MDT), une solution permettant d'automatiser la création, la maintenance et le déploiement de configurations personnalisées du système d'exploitation.

Contexte

Assurinco* est le 1er courtier en assurance en Midi-Pyrénées et leader national sur le courtage depuis plus de 30 ans. C’est une entreprise de taille moyenne comptant environ 70 employés et qui possède deux sites à Toulouse, situés à seulement 5 minutes à pied l'un de l'autre.

Assurinco est une entreprise de services financiers spécialisée dans le domaine de l'assurance. Fondée il y a plus de 30 ans, elle compte parmi les leaders du secteur et possède une présence nationale. Son siège social est situé dans la ville de Toulouse, en France. Assurinco offre une gamme complète de produits d'assurance pour les particuliers et les entreprises, couvrant différents domaines tels que l'immobilier, la santé, le voyage, etc.

En raison de la croissance de l’entreprise et du nombre d’employés qui ne cessait d’augmenter, le service informatique devait configurer de nombreux postes à chaque nouvelle arrivée. Cependant, cela prenait beaucoup de temps. On m’a alors confié une mission qui consistait à mettre en place une solution permettant d’automatiser le déploiement de postes informatiques.

*Entre temps, une partie d’Assurinco a été rachetée par le groupe Finaxy

Besoins, objectifs et attentes

Avant d'entrer dans les détails, je vais vous expliquer comment la configuration des postes de travail est actuellement réalisée pour chaque collaborateur au sein d'Assurinco. Le service informatique d'Assurinco intervient dans de nombreux pôles. Ces pôles peuvent accueillir régulièrement de nouveaux arrivants, et chaque pôle a des besoins spécifiques en termes de systèmes et de logiciels. Dans mon cas, j'ai configuré de nombreux postes de travail.

Le besoin était d’automatiser l’installation des applications sur les postes, comme par exemple la suite Office, Slack pour la communication interne entre les collaborateurs, Dialog pour les communications internes et externes, l'antivirus Sophos, les navigateurs Chrome et Firefox avec des favoris renvoyant à des sites utiles pour chacun des services, ainsi que notre système de prise en main à distance en cas de problème.

En partant de ce besoin, j’ai établi deux objectifs à atteindre. Le premier objectif était de concevoir un script qui installerait les applications sur les postes. Le deuxième était la configuration du serveur Windows afin de déployer une autre partie des logiciels ainsi que le script. De plus, au cours de la mise en place de ce projet, j’ai découvert l’outil MDT que j’ai tenté de mettre en place, devenu ainsi mon troisième objectif.

En résumé, les attentes de mon DSI portaient principalement sur le déploiement des logiciels, afin d’éviter au service informatique de perdre du temps sur des tâches trop redondantes et chronophages.

Rôle et équipe

L’équipe pour ce projet était composée de Denis LAMOUROUX, directeur du service informatique et co-gérant d’Assurinco, et de moi-même. Pour ma part, je me suis chargé de toute la partie technique du projet, et Denis LAMOUROUX supervisait. Nous avons effectué plusieurs réunions afin de nous assurer de la bonne mise en place de la solution.

Projet

Gestion de budget

Avant d’installer quoi que ce soit sur les machines, il a été question de savoir s’il n’était pas nécessaire de changer les ordinateurs des collaborateurs par des clients légers ou par des ordinateurs portables. Afin que nous puissions choisir, j’ai réalisé un tableau de comparaison permettant de déterminer quel budget devrait être alloué pour ce remplacement des ordinateurs.

Suite à cela, nous nous sommes rendu compte que cela nécessitait un coût trop élevé pour remplacer tous les PCs. La conclusion était donc de garder le système actuel, puis, lorsque cela serait nécessaire, acheter des PC portables pour les personnes concernées.

Mise en place des stratégiques de groupe (GPO)

Dans un premier temps, j'ai réalisé des recherches sur Internet pour comprendre la mise en place de GPO (objets de stratégie de groupe), afin de permettre l'installation automatique de logiciels ainsi que leur mise à jour dans notre parc informatique. Dans le cas où nous aurions besoin d’installer une application ou lorsqu’une mise à jour de sécurité sort pour une application déjà installée, cela facilitera grandement le processus.

J'ai découvert que pour déployer des logiciels via des GPO, il est préférable d'avoir les fichiers d'installation au format Microsoft, c'est-à-dire en ".msi". Toutefois, il est également possible de le faire avec des fichiers au format habituel ".exe", mais cela nécessite la création d’un script d'installation.

Toutes les étapes décrites ci-dessous ont été réalisées sur une machine de test.

Configuration du serveur

Sur le serveur, avant de commencer à mettre en place les différents GPO, j'ai créé un dossier partagé contenant tous les fichiers d'installation des applications. J’y ai également attribué les droits nécessaires. Cette étape est cruciale pour assurer que les fichiers d’installation soient accessibles aux utilisateurs ciblés lors du déploiement.

Ce partage de dossier est maintenant créé et accessible sur le chemin : \\Nom-de-la-machine\Apps$, soit \\WIN-IVCO2JJPC5O\Apps$ dans mon exemple. J’ajoute maintenant dans le dossier mes .msi et plus tard mes .exe. On peut notamment voir les applications Dialog (application téléphonique), Firefox, Chrome et Slack, par exemple.

Une fois cela fait, j'ai procédé à la configuration des paramètres de déploiement des logiciels via les GPO.

Installation d'un fichier MSI en GPO

Dans un premier temps, j’ai configuré les paramètres de déploiement des logiciels via les GPO sur mon serveur Windows. J'ai ouvert la console de “Gestion de stratégie de groupe”, créé une nouvelle GPO nommée Slack, et modifié cette GPO. Dans l'éditeur de gestion des stratégies de groupe, j'ai navigué jusqu'à « Configuration de l'ordinateur » → « Stratégies » → « Paramètres du logiciel », ajouté le fichier « .msi » de Slack et défini les options de déploiement. J'ai choisi le mode « Attribué » pour que le logiciel s'installe automatiquement sur les postes des utilisateurs.

Nous devons maintenant lier la GPO à l’unité d’organisation qui sera concernée. Dans mon exemple, je l’applique directement au domaine, pour m’occuper de cette gestion par groupe plus tard. J’effectue donc un clic droit sur le nom de mon domaine et je sélectionne “Lier un objet de stratégie de groupe existant…”. Il ne reste plus qu’à sélectionner la GPO que nous venons de créer.

Notre GPO est maintenant prête. L’application Slack s’installera automatiquement sur les ordinateurs présents sur le réseau.

Une fois cela fait, j’ai effectué les mêmes actions pour le reste des logiciels en MSI, puis j’ai créé une machine virtuelle sous Windows 10 qui va jouer le rôle d’un collaborateur. Comme nous pouvons le voir ci-dessous, les applications Slack, Chrome et Firefox se sont bien installées.

Installation d'un fichier EXE en GPO

Étant donné que tous les ordinateurs des collaborateurs sont sous Windows 10, nous pouvons exécuter des scripts PowerShell. Cela signifie que j’ai conçu un fichier comprenant un ensemble de commandes permettant l’installation d’un logiciel.

Pour résumer, ce script utilise plusieurs variables pour définir les chemins réseau des exécutables, un dossier temporaire local, et les versions cibles des applications.

Il commence par vérifier la disponibilité du chemin réseau et crée un dossier temporaire local pour copier les fichiers nécessaires.

Ensuite, il copie les exécutables depuis le partage réseau vers ce dossier temporaire et lance leur installation via la commande Start-Process avec l'option -Wait, garantissant ainsi que l'installation est complète avant de passer à l'étape suivante.

Après l'installation, les fichiers temporaires sont supprimés. La fonction CheckVersion compare la version installée d'un exécutable avec la version cible pour déterminer si une mise à jour est nécessaire. Une boucle for permet de parcourir la liste des exécutables, de vérifier leur version et de décider si une mise à jour ou une installation est nécessaire.

Le script affiche des messages pour indiquer le statut des mises à jour. Si aucune mise à jour n'est requise, il informe que tous les exécutables sont déjà à jour. Des conditions supplémentaires vérifient la validité des chemins réseau et l'existence du dossier temporaire, et procèdent à leur création ou affichent des avertissements en cas d'erreur.

Voici le script réalisé :

Mise en place MDT

Un peu trop tard dans le projet, j’ai découvert le Microsoft Deployment Toolkit. J’ai donc étudié la solution et commencé à travailler sur son déploiement. Cependant, par manque de temps, je n’ai pas pu terminer sa mise en place. La mise en place d'une solution MDT permet de gérer le déploiement des systèmes d'exploitation et des applications au sein d'une infrastructure informatique.

Dans un premier temps, j’ai mis en place l'infrastructure requise pour le MDT. Cela comprend l'installation d'un serveur dédié sur lequel le MDT sera installé, ainsi que la configuration d’un autre composant nécessaire : le service de déploiement Windows (WDS). L’architecture mise en place est donc la suivante :

Une fois l'infrastructure en place, la prochaine étape consiste à créer une image de référence personnalisée. Cette image sert de base pour le déploiement des postes de travail. Elle inclut le système d'exploitation Windows, les pilotes matériels, les applications standards utilisées dans l'organisation, ainsi que les paramètres et les configurations spécifiques. L'utilisation de l'outil Microsoft Deployment Workbench facilite la création et la personnalisation de cette image de référence.

Une fois les tests terminés, la solution MDT peut être déployée à grande échelle. Cela implique de configurer les options de déploiement, telles que la méthode de déploiement (par exemple, en utilisant WDS ou une clé USB), les paramètres réseau, les règles de nommage des postes de travail, etc. Le MDT offre également des fonctionnalités avancées, telles que le déploiement multicast, qui permet de réduire la charge du réseau lors du déploiement simultané de plusieurs postes.

Mon retour d'expérience

Mon expérience dans l’automatisation du déploiement de postes au sein d’Assurinco a été une expérience enrichissante. En intégrant la configuration de GPO, la réalisation de scripts PowerShell et la mise en place du MDT, j’ai pu mettre en place une solution efficace pour le déploiement des postes informatiques.

Bien que Denis Lamouroux m'ait fourni les grandes lignes du projet, j'ai principalement travaillé de manière autonome. J'ai mené une analyse approfondie des besoins de l'entreprise pour garantir le déploiement de la solution la plus complète possible. J'ai effectué des recherches sur les solutions existantes et les méthodes de mise en place de celles-ci.

Concernant les GPO et les scripts PowerShell, j'avais déjà des connaissances pour les créer et les mettre en œuvre. Toutefois, ce projet m'a permis d'acquérir de nouvelles compétences, notamment avec la solution MDT. En intégrant ces technologies, j'ai pu centraliser et automatiser le processus de déploiement, réduisant ainsi les interventions manuelles et augmentant l'efficacité opérationnelle.

Ce projet a renforcé mes compétences techniques, mais également des compétences plus diverses comme l’organisation, la gestion de projet, et bien d’autres. En revanche, je pense que j’aurais pu pousser la solution un peu plus loin si j’avais eu plus de temps pour la mettre en place.

Conclusion

Pour conclure sur ce projet, j’ai apprécié travailler dessus, bien que j’aie manqué de temps pour sa réalisation. J’ai eu l’occasion d’approfondir de nombreuses compétences préexistantes, mais j’ai également pu en acquérir de nouvelles, qu’il s’agisse de compétences techniques ou transversales.

Une fois que cette solution a été mise en place, elle a eu un impact significatif sur l’efficacité de l’entreprise. Elle a notamment permis de faire gagner beaucoup de temps au service informatique dans le déploiement des postes. Avant sa mise en place, nous avions évalué la configuration d’un poste à une demi-journée, ce qui représentait une perte de temps considérable. Désormais, la mise en place de ces postes ne prend plus que quelques minutes.

Automatisation du déploiement de PC