Interview de David Clément

David, pourrais-tu te présenter ?

J’ai eu mon premier ordinateur à l’âge de 9 ans. Un superbe MO5 avec 48 Koctets de RAM.

A l’époque, c’était vraiment peu commun d’avoir un ordinateur chez soi. Mon professeur a vite compris que ça me plaisait beaucoup ; il m’a fait faire du logo tortue et a indiqué à mes parents que j’en ferai sûrement mon métier car j’avais la logique. Il ne s’était pas trompé !

Mon père m’a toujours poussé dans cette voie-là, il travaillait à France Télécom. On a eu notre première connexion internet en 92. J’avais désormais un Atari 1040 STF et je faisais des connexions sur internet avec un câble RS232 connecté sur un minitel. Je créais aussi des services RTC pour le minitel. C’était amusant d’héberger un « site » minitel sur son numéro de téléphone.

J’ai embrayé sur le développement avec de l’assembleur et du BASIC. Cette passion m’a poussé vers des études d’informatique généraliste : DEUG/ Licence/Maîtrise/DESS en développement.

Ce qui m’a conduit vers le système, c’est l’envie d’aller fouiller dans les ordinateurs. Ce sont aussi mes premiers jobs, dans de petites entreprises. J’étais « l’informaticien », celui qui touchait à tout : du développement aux imprimantes, de Windows à GNU/Linux, du code aux petits tracas quotidiens. La partie administration système m’a beaucoup plu.

Après plusieurs expériences, l’évolution logique aurait été de passer chef de projet. On me l’a proposé mais j’ai préféré la formation, une façon pour moi de récolter les fruits de mon travail.

J’ai appris à former sur le tas. Le désir de transmettre aidant, je suis encore là avec la même envie. Je suis aujourd’hui un des plus anciens de Dawan.

Dans mon entreprise, je m’occupe de tout ce qui a trait aux technologies Windows: Windows Server, Active Directory, Exchange, Hyper V, Windows 7/8/10, VMWare. J’assure aussi des formations Linux et côté développement, j’enseigne des langages orientés web. Il m’est même arrivé de donner des cours de bureautique.

Former sur des logiciels variés, pour lesquels je ne porte pas forcément un intérêt égal, m’apporte énormément. Je côtoie un autre public et j’adapte mon vocabulaire. C’est extrêmement enrichissant.

Peux-tu nous dire ce qu'est POWERSHELL ?

Powershell est un système de ligne de commande qui est destiné à remplacer l’ancien interpréteur de commande cmd (descendant de MS DOS) de Windows. Il est apparu en 2004, mais il est vraiment opérationnel depuis la version Windows Server 2008 R2. Au tout départ, c’était plus un Proof Of Concept qu’autre chose mais depuis Windows 8/Server 2012, tout a changé. On peut toucher à 90 % du système en ligne de commande avec Powershell dorénavant. Cela ouvre de nouvelles possibilités pour les administrateurs système par le biais du développement. Une façon pour moi de faire cohabiter mes 2 domaines de compétences que sont le système et le développement.

On n’a de fait plus besoin d’écran pour un serveur Windows, on gagne en performance et on lâche cet effet boîte noire ou « syndrôme du cliquodrôme » qu’on pouvait reprocher aux serveurs Windows.

Ça permet donc d’administrer une machine mais aussi de scripter d’autres choses. On peut parler des techniques DevOps qui ont le vent en poupe en ce moment. Windows a sorti son propre outil : Desired State Configuration qui permet de pousser relativement facilement une même configuration sur un parc de machine. Pour faire des clusters ou du cloud, c’est particulièrement pratique. Windows rattrape son retard ; ils devraient d’ailleurs proposer SSH dès la fin 2016.

Le langage du Powershell ressemble énormément à du PHP, du JavaScript avec des éléments empruntés au PERL. C’est un langage assez polymorphe. On retrouve une syntaxe de langage moderne a contrario du BASH ou du CMD qui sont des langages très puissants mais empiriques qui ont plus 20 ans. C’est un bonheur de pouvoir écrire en Powershell.

Powershell est particulièrement efficace dans deux domaines : le reporting et le traitement par lot.

Avec une interface graphique, les possibilités ayant trait à la génération de rapports sont extrêmement limitées. On peut générer un csv avec ce qui est présent sur l’écran, mais si on demande ne serait-ce que d’ajouter une colonne qui n’est pas présente dans la liste des colonnes préétablies, ce n’est pas possible. Si l’on souhaite croiser ces données avec une autre source d’information, ce n’est pas possible non plus. Avec Powershell, on y arrive facilement.

En ce qui concerne le traitement par lot, on a beaucoup plus de liberté. Si par exemple, dans l’Active Directory, j’ai besoin de modifier une propriété sur un ensemble de groupe de sécurité, j’ai 150 groupes à changer. En graphique, il va falloir que je modifie groupe par groupe, avec le potentiel d’erreurs que cela peut générer alors qu’en Powershell, une ligne de commande peut venir à bout de cette problématique.

Powershell peut être implémenté dans toutes les technologies Windows dont j’ai parlé tout à l’heure, on peut le même le faire sur du VMWare, dans SQL Server… On va aussi pouvoir faire des boucles sur des serveurs et des ensembles de machines. Si j’ai envie d’installer un site web sur 25 serveurs web, je peux le faire facilement avec Powershell. On rejoint encore une fois le DevOps dans cette problématique.

Il y a aujourd’hui une certaine réticence de la part des administrateurs Windows à utiliser Powershell car ils n’ont pas été motivés à coder auparavant. Mais on ne peut pas se permettre de rater le train des évolutions techniques, surtout aussi importantes, sans être mis de côté par la suite. C’est une avancée technologique qu’il ne faut pas manquer même si on est allergique au code. Windows met clairement la priorité là-dessus et incite plus que fortement les administrateurs à utiliser Powershell. C’est maintenant la deuxième icône épinglée dans la barre des tâches et quand on recherche des manipulations avancées sur le site de Microsoft, ils présentent des commandes Powershell.

Aujourd’hui, dans quasiment toutes mes formations, j’apporte un peu de Powershell, tant cette technologie me semble indispensable.

Que fais-tu pendant ta formation ?

Dans la formation Powershell, on va commencer par un peu de théorie, histoire de comprendre le langage et sa syntaxe mais on va partir de cas concrets pour amener ces concepts.

On débute souvent par l’administration des postes clients avec la gestion des drivers (qui est largement simplifiée avec Windows 10 !), de la base de registre pour rentrer des clés produits par exemple, ou encore du nettoyage automatique de dossier.

On part ensuite sur les problématiques liées à l’Active Directory car 80% des entreprises ont un annuaire Active Directory.

Puis on voit Exchange, VMWare… Ce sont les cas pratiques les plus demandés.

J’ai eu récemment le cas typique d’un stagiaire qui gérait des parcs informatiques pour des écoles. Il avait besoin de créer des dossiers partagés par élèves, certains par groupes, classes, professeurs, matières avec des droits spécifiques à chaque groupe et certains dossiers plus ouverts que d’autres. C’est une problématique assez commune que l’on trouve en Powershell entre l’Active Directory et le système de fichier.

J’ai pris l’habitude, pendant mes cours, d’étudier les problématiques plus particulières de chacun, ce qui pousse encore plus loin dans la découverte du langage.

Il m’arrive enfin d’évoquer le nouveau système de package de Windows, comparable aux Apt-get ou Yum de Linux, qui s’appelle Chocolatey. Il permet d’installer des logiciels en une seule ligne de commande. Un simple « choco install jre8 » permettra par exemple d’installer la dernière version de la machine virtuelle de Java.

Le code se rapproche de nouveau de l’administration système, et ce n’est pas pour me déplaire.

Pour en savoir plus sur nos formations :
- nos formations Powershell
- nos formations réseaux Windows
- nos formations virtualisation