Contexte

Le support aux utilisateurs est une activitée importante de notre Si. 

En effet, plus de 500 utilisateurs nous sollicitent via notre outil de ticketing GLPI pour leurs problèmes informatiques.

Cela peut aller de la configuration d'une nouvelle imprimante, de la mise à jour d'un logiciel, la perte de fichiers, etc...
Nous devons également gérer les comptes Active Directory de ces utilisateurs, leurs droits, mot de passes, les migrations de données quand ils changent d'ordinateurs...

Certaines de ces tâches m'ont vite fais comprendre qu'un besoin d’automatisation s'imposer car la perte de temps était trop importante.


J'en ai discuté avec mon tuteur qui m'a dit qu'effectivement, automatiser certaines tâches peut-être très intéressant.
C'est pourquoi je me suis mis à apprendre le PowerShell pour pouvoir réaliser des scripts permettant de gagner un temps précieux et éviter les erreurs humaines.
Être force proposition

Ces connaissances en Powershell me permettront par le suite de réaliser des scripts pour d'autres problématiques au sein de notre SI...

De la création à la mise en production

Voulant une progression continue et un support sur lequel m'appuyer, je me suis tourné vers le livre "Learn Windows Powershell in A Month of Lunches"
Ce livre est très plébiscité sur Reddit et notamment sur les les subreddit sysadmin et Powershell. De plus il est en anglais ce qui m'obligera à m'améliorer dans cette langue. Enrichir les bases de connaissances : personnelle, de l’entreprise, et de la communauté

J'ai commencé par apprendre les bases, me familiariser avec la syntaxe et les Cmdlets les plus utilisées.

J'ai débuté par créer des scripts assez simple comme la récupération des groupes auxquelles appartient un utilisateur, la réinitialisation de mots de passes, la suppression de documents non modifiés depuis une certaine date.

La création de scripts plus complexes se fit naturellement par la suite.

En effet, plus le temps avance et plus je développe des scripts pour l'automatisation des tâches non liées au support. Je pense notamment à la sauvegarde de nos bases de données sur un NAS ou aux transferts de données utilisateurs lors de migrations, l'automatisation de la préparation de nos postes (droits, installation logiciels)

Je développe et test toujours mes scripts dans mon lab. Si je dois interagir avec un Active Directory je le fais en test dans un réseau privé, avec un AD que j'ai monté.
De même pour un serveur SQL, j'en installe un dans mon lab.
Une fois le script fonctionnelle dans mon lab, je fais des essais en heures creuses en prod et je le fais tester à mes collègues pour voir si je n'ai pas oublié de prendre en compte un paramètre liée à la production.

Je m'efforce d'appliquer certaines règles:

- Documenter au maximum mes scripts, commenter ce qui doit l'être et faire une documentation à côté sur le fonctionnement du script et son but. 
Documenter des actions individuelles dans une logique de groupe