J’ai commencé à automatiser des tâches il y a quelques années en utilisant vSphere CLI, mais PowerCLI s’est vite imposé car plus complet et plus souple.
Cependant je ne suis pas développeur, donc je n’écris pas des programmes complets mais de simples scripts. Des ensembles de commandes qui permettent d’automatiser, de faciliter ou d’accélérer des opérations.
Les scripts que je propose ici ne sont probablement pas aussi optimisés qu’ils pourraient l’être, mais ils restent simples et facilement compréhensibles pour qui a quelques bases de PowerShell et des commandes PowerCLI.
Ils pourraient aussi parfois se condenser en scripts d’une seule ligne, que certains préfèrent car plus facilement manipulables par copier-coller dans la fenêtre de commande PowerCLI, cependant je les trouve plus difficiles à comprendre pour les modifier et les adapter. C’est aussi dans cet esprit de simplicité que j’essaie d’éviter les alias et que j’utilise au maximum les noms complets des commandes. Ainsi je m’astreins à écrire Foreach-Object {…} et non simplement %{…}.
A noter aussi que je les ai écrits selon mes besoins. Tous les scripts ici ont été testés, mais je ne garantis pas qu’ils s’appliquent à tous les cas de figure et répondent à tous les besoins.
J’espère ne pas avoir fait d’erreur de frappe en les reproduisant ici, notamment en supprimant certaines informations liées aux clients chez qui ces scripts étaient utilisés en prod.
Donc avant d’utiliser un de mes scripts pour l’exécuter sur l’ensemble de votre prod, essayez de le comprendre et testez-le sur un environnement peu critique.
Pour l’instant, je ne souhaite pas faire un cours PowerShell/PowerCLI, donc je ne vais pas détailler le fonctionnement de chaque ligne.
Si vous ne comprenez rien à PowerShell et PowerCLI, abstenez-vous. Certains scripts sont inoffensifs, mais d’autres peuvent provoquer des dégâts s’ils sont mal utilisés ou mal modifiés.