
Un lundi matin pluvieux à Rennes, vers la mi-novembre, je me suis retrouvé face à une liste de quarante nouveaux arrivants à créer manuellement dans l'Active Directory. C'était le genre de tâche répétitive qui me donnait envie de tout lâcher. Cliquer quarante fois sur 'Nouvel utilisateur', remplir les champs, cocher les cases de groupes de sécurité... C'est là que j'ai décidé qu'il me fallait une autre solution que le traditionnel PowerShell que j'utilisais à tâtons.
Pourquoi j'ai choisi Python pour mon AD
Au support, on nous vend souvent PowerShell comme l'outil ultime pour Windows. Mais en discutant avec un collègue qui touche un peu plus au code, il m'a suggéré de regarder du côté de Python. J'avais déjà suivi quelques cours en ligne le soir pour générer des rapports de tickets plus vite, et j'aimais bien la syntaxe. C'est plus lisible, presque comme de l'anglais simplifié.
Je me suis donc lancé dans une formation Python axée sur l'automatisation système. Ce qui m'a plu, c'est qu'on n'était pas dans les délires de 'data scientist' avec des graphiques compliqués. On parlait de manipuler des fichiers, de se connecter à des serveurs et de gérer des comptes. C'est exactement ce qu'il me fallait pour mon 'annuaire' géant, cette base de données qui contient tous les accès de la boîte.

Le passage à la pratique : LDAP et Python 3.12
Quand on commence à vouloir toucher à l'Active Directory avec Python, on tombe vite sur un terme un peu barbare : LDAP. Pour faire simple, c'est le langage que parle l'Active Directory pour qu'on puisse lui poser des questions ou lui donner des ordres. La formation utilisait la version standard du protocole LDAP, la version 3, qui est la norme actuelle pour la communication avec les services d'annuaire.
J'ai installé la version stable de Python utilisée dans le cours, la 3.12. Ce qui est génial avec Python, c'est que c'est comme une boîte à outils modulaire. Pour l'AD, on utilise une 'bibliothèque' appelée ldap3. Imaginez que c'est une sorte de traducteur universel : vous lui dites en Python ce que vous voulez faire, et elle le traduit en commandes que le serveur comprend parfaitement. Le gros avantage de ldap3, c'est qu'elle est en 'pure Python', donc pas besoin d'installer des trucs compliqués sur votre poste Windows pour que ça marche.
Fin janvier, j'ai passé plusieurs soirées à essayer de faire mon premier 'Bind' (c'est le terme technique pour dire 'se connecter') au contrôleur de domaine. La formation insistait beaucoup sur la sécurité, et j'ai appris à utiliser le port sécurisé par défaut pour LDAPS, le 636. Si vous essayez de faire ça sur le port 389 en clair, c'est comme si vous criiez les mots de passe dans l'open-space : tout le monde peut les entendre.
Mes galères de débutant (et comment j'en suis sorti)
Je ne suis pas ingénieur, et ça s'est vu. J'ai eu un moment de frustration intense, un soir vers la fin janvier, en voyant mon script planter systématiquement. J'avais une erreur de syntaxe que je n'arrivais pas à voir. C'était la frustration de voir mon script planter parce que j'avais oublié les deux-points à la fin d'une boucle 'for', une erreur de débutant qui m'a pris une heure à repérer. En Python, ces deux-points sont comme le 'alors' dans une phrase : 'Pour chaque utilisateur dans ma liste, ALORS fais ceci'. Sans ça, l'ordinateur est perdu.
Après trois semaines de pratique, j'ai enfin compris comment structurer mon fichier CSV (un bête tableau Excel enregistré en texte) pour que mon script le lise ligne par ligne. C'est là que le déclic a eu lieu. J'ai arrêté de voir le code comme une montagne insurmontable pour le voir comme une recette de cuisine. Si les ingrédients sont bien préparés et que l'ordre est respecté, ça marche tout seul.

Le moment de vérité au bureau
Courant mars, j'ai enfin osé lancer mon script sur le réseau de test au boulot. C'était un après-midi calme. Le silence du bureau en fin de journée, seulement rompu par le clic mécanique de mon clavier quand le premier compte s'est affiché dans la console AD, est un souvenir que je garde précieusement. Voir quarante noms apparaître avec leurs dossiers personnels créés et leurs bons groupes de sécurité en moins de deux secondes, c'est une sensation de puissance assez incroyable pour un technicien support.
C'est d'ailleurs un bon complément si vous avez déjà l'habitude de gérer le WiFi en entreprise ou d'autres équipements réseaux : savoir automatiser la partie utilisateur vous libère un temps fou pour les vrais problèmes techniques.
Ce que la formation ne vous dit pas
Attention quand même, tout n'est pas rose. La formation que j'ai suivie était très bien, mais elle passait sous silence un cauchemar bien de chez nous : les caractères accentués. Travaillant près de Rennes, j'ai pas mal de collègues avec des noms bretons ou des prénoms avec des cédilles et des accents. Python gère bien l'Unicode, mais si votre fichier CSV est mal encodé, vous allez vous retrouver avec des noms bizarres dans l'AD. J'ai dû chercher pas mal sur les forums pour comprendre comment forcer l'encodage en UTF-8.
Un autre point important : l'automatisation totale via Python est une erreur stratégique. Au début, on a envie de faire un script qui fait tout, de la création à l'envoi du mail de bienvenue. C'est risqué. Privilégiez des scripts granulaires pour éviter de propager des erreurs humaines à l'ensemble de votre annuaire en une seconde. Si vous faites une erreur dans votre script de suppression, vous pouvez effacer 500 comptes au lieu d'un seul avant même d'avoir eu le temps de dire 'zut'.

Faut-il se lancer ?
Si vous êtes technicien et que vous en avez marre des tâches répétitives, oui, mille fois oui. Pas besoin de viser une certification d'expert tout de suite. Commencez par des petites choses. La formation m'a donné la base, mais c'est en faisant mes propres erreurs que j'ai vraiment appris.
Ce n'est pas magique, ça demande de la patience et quelques soirées de 'casse-tête', mais le gain de temps et la satisfaction de voir un script travailler à votre place en valent la peine. Et puis, entre nous, c'est quand même plus gratifiant de dire 'j'ai codé un outil d'automatisation' que 'j'ai fait de la saisie de données toute la journée'.
Si vous hésitez encore, rappelez-vous que Python est aujourd'hui l'un des langages les plus populaires pour l'automatisation. Ce n'est pas pour rien. C'est accessible, puissant et terriblement efficace pour nous, les gens du support qui voulons juste que le boulot soit fait proprement.