PowerShell, un outil à la puissance méconnue


Temps de lecture : 3 minutes
Share Button
powershell

PowerShell

L’outil de lignes de commande de Windows simplifie la vie des administrateurs et des développeurs. En une ou deux lignes de code, ils peuvent gérer un parc de machines à distance ou automatiser leurs développements. Notre expert Gaël Marot* rappelle tout son potentiel.

PowerShell a fait parler de lui cet été. Le 18 août, Microsoft annonçait qu’il passait sous licence libre son outil de lignes de commande de Windows et interpréteur de langage de scripts. La firme de Redmond a aussi mis à disposition sur GitHub des versions alpha de PowerShell Core pour Linux et Mac OS X. Un geste salué par la communauté open source.

Ces annonces ont été toutefois polluées par un autre fait d’actualité, cette fois involontaire. Microsoft a « cassé » son propre outil. La dernière mise à jour de Windows 10, après l’Anniversary Update, a, en effet, oublié au passage un fichier important rendant inopérante la création de scripts pour les administrateurs sous Windows. Un correctif était attendu le 30 août dernier selon le blog dédié de l’éditeur.

Cette actualité montre en tout cas l’importance prise par PowerShell, ex Microsoft Command Shell. Depuis Windows 7, l’outil est inclus dans tous nos PC. Fini l’invite de commandes sous DOS, il se présente sous forme d’écran bleu ou d’environnement graphique (PowerShell ISE).

PowerShell : récupérer toutes les adresses IP d’un parc

Consultant informatique, chef de projet informatique et formateur chez ORSYS, Gaël Marot met en avant tout le potentiel de l’outil. « On peut faire des choses très puissantes avec une seule ligne de code, sans passer par des langages complexes ».

reseau-e1363250516321

Réseau : parc informatique

PowerShell simplifie le travail de l’administrateur système qui, rappelle-t-il, n’est pas un développeur. Il permet, par exemple, de récupérer toutes les adresses IP des machines d’un parc informatique, de redémarrer tous les serveurs d’une organisation qui n’ont pas encore reçu de mise à jour, de connaître tous les utilisateurs qui n’ont pas ouvert de session depuis plus de 6 mois ou de recevoir les alertes systèmes. Sur son blog, Gaël Marot liste un nombre impressionnant de cas d’usage. Dans le cadre professionnel, il utilise notamment PowerShell pour créer, gérer, migrer des messageries sous Microsoft Exchange.

La version 4 de PowerShell introduit aussi la gestion des configurations des services logiciels selon l’état désiré des machines (Desired State Configuration, DSC). « Je souhaite que ces deux serveurs aient tels fichiers, telles clés de registres, tels services au démarrage, telles applications… et si la configuration n’est pas correcte, mets-la à jour », illustre Gaël Marot.

L’administrateur peut écrire ses propres modules ou puiser dans la cinquantaine déjà développés. Les commandes de PowerShell sont constituées d’un verbe ou préfixe et d’un nom séparés par un tiret. On les nomme les « commandlets ».  Elles peuvent être suivies d’arguments. Il existe environ 2500 commandlets sur 2012R2 !

PowerShell : une puissance à double tranchant

L’autre population ciblée, ce sont les développeurs. Surtout depuis la version 5 qui a amené la notion de « classes ». Là encore, PowerShell simplifie le travail du développeur. Il peut créer des formulaires très riches avec XAML, faire de la géolocalisation par adresse IP. Mais aussi analyser des flux XML ou coder en HTML.

Egalement enseignant en école d’ingénieurs, Gaël Marot conseille à ses étudiants de s’intéresser à PowerShell même si, dans un premier temps, « cela peut leur paraître compliqué et barbare et qu’ils sont rebutés par l’interface. ». « Il suffit que je ferme d’un coup toutes leurs sessions sans connaître leurs machines ni leurs adresses IP pour les convaincre de la force de l’outil. »

Une puissance à double tranchant. PowerShell peut être utilisé à de mauvais desseins. Il permet notamment de prendre la main sur un poste, de trouver un mot de passe. PowerShell permet également de verrouiller l’ensemble des comptes sous Active Directory. Pour éviter ce type d’attaque, « il est possible d’empêcher l’exécution d’un script ou d’exiger des scripts signés », tempère Gaël Marot.

marot

Gaël MAROT

*Gaël Marot dirige sa société de consulting administration systèmes et réseaux depuis plus de 12 ans, il anime des formations sur Powershell toutes versions, Lotus notes domino, Windows, Navision…Il est aussi chef de projet et pour cette raison anime aussi des formations gestion de projet, management de projet et ce depuis 2000.

 

Découvrir les formations :

–   PowerShell 3.0, automatiser l’administration Windows

n PowerShell 3.0, perfectionnement

–   PowerShell 5/4, automatiser l’administration Windows

n PowerShell 5/4, perfectionnement

–   PowerShell Desired State Configuration

Share Button

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *