Le scripting (powershell)
PowerShell est un framework de ligne de commande et de script puissant conçu par Microsoft pour automatiser les tâches d'administration système, de gestion de serveurs et d'applications.
Il est basé sur le .NET Framework et offre une capacité d'administration bien plus avancée que l'invite de commande classique (cmd.exe).
Concepts de base de PowerShell
Cmdlets
Les cmdlets sont des commandes en PowerShell, spécialement conçues pour accomplir des tâches spécifiques.
Par exemple,
Get-Processpermet de lister les processus en cours.Les cmdlets suivent une convention
Verbe-Nom, par exempleGet-Help(obtenir de l'aide) ouSet-Item(modifier un élément).
Pipeline (|)
Le pipeline (
|) est un élément clé de PowerShell qui permet de passer la sortie d'une commande comme entrée à une autre commande.Exemple :
Get-Process | Where-Object { $_.CPU -gt 100 }affiche les processus utilisant plus de 100 unités de CPU.
Objets
Contrairement aux scripts batch, PowerShell travaille avec des objets .NET au lieu de simples chaînes de caractères. Cela permet une manipulation plus précise des données.
Exemple :
Get-Servicerenvoie des objets de typeService, qui contiennent des propriétés commeStatusetDisplayName.
Variables
En PowerShell, les variables commencent par
$.Exemple :
$nom = "OpenAI"crée une variablenomcontenant la valeur "OpenAI".
Scripts
Les scripts PowerShell ont l'extension
.ps1. Vous pouvez écrire des scripts pour automatiser des tâches répétitives et les exécuter avec la commande. om_du_script.ps1.Pour exécuter des scripts, il faut parfois modifier la politique d'exécution avec
Set-ExecutionPolicypour permettre l'exécution de scripts non signés.
Alias
PowerShell permet d'utiliser des alias pour simplifier les commandes. Par exemple,
lsest un alias deGet-ChildItem.Vous pouvez créer vos propres alias avec
Set-Alias.
Exemples de commandes courantes
Lister les fichiers d'un répertoire :
Arrêter un processus :
Trouver des services en cours d'exécution :
Lire un fichier :
Avantages de PowerShell
Flexibilité : Grâce à son intégration avec .NET, PowerShell permet une manipulation poussée des objets, ce qui facilite les tâches d'administration.
Automatisation : Les scripts PowerShell permettent d'automatiser des tâches complexes de manière plus intuitive et efficace qu'avec les scripts batch.
Gestion à distance : PowerShell permet de gérer des ordinateurs distants via
PowerShell Remoting, simplifiant la gestion de grands réseaux.
PowerShell est particulièrement utile pour les administrateurs système et réseau, mais il est aussi adapté aux développeurs qui veulent automatiser des tâches sur leurs machines locales.