420-1Q1-AA Help

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-Process permet de lister les processus en cours.

  • Les cmdlets suivent une convention Verbe-Nom, par exemple Get-Help (obtenir de l'aide) ou Set-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-Service renvoie des objets de type Service, qui contiennent des propriétés comme Status et DisplayName.

Variables

  • En PowerShell, les variables commencent par $.

  • Exemple : $nom = "OpenAI" crée une variable nom contenant 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-ExecutionPolicy pour permettre l'exécution de scripts non signés.

Alias

  • PowerShell permet d'utiliser des alias pour simplifier les commandes. Par exemple, ls est un alias de Get-ChildItem.

  • Vous pouvez créer vos propres alias avec Set-Alias.

Exemples de commandes courantes

Lister les fichiers d'un répertoire :

Get-ChildItem -Path "C:\Users" # Equivalent de `dir` en batch

Arrêter un processus :

Stop-Process -Name "notepad"

Trouver des services en cours d'exécution :

Get-Service | Where-Object { $_.Status -eq "Running" }

Lire un fichier :

Get-Content -Path "C:\temp\monfichier.txt"

Avantages de PowerShell

  1. Flexibilité : Grâce à son intégration avec .NET, PowerShell permet une manipulation poussée des objets, ce qui facilite les tâches d'administration.

  2. Automatisation : Les scripts PowerShell permettent d'automatiser des tâches complexes de manière plus intuitive et efficace qu'avec les scripts batch.

  3. 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.

Last modified: 16 October 2024