PowerShell s’agit d’une plate-forme de ligne de commande et de script conçue pour aider les administrateurs système à gérer et à automatiser des tâches dans un environnement Windows.
Basé sur le .NET Framework, PowerShell dispose de meilleures fonctionnalités que la ligne de commande traditionnelle. Il prend en charge les applets de commande, les objets et les pipelines, qui permettent aux utilisateurs d’effectuer facilement des tâches complexes.
PowerShell est un outil très important dans l’administration de Windows. Avec les fonctionnalités existantes, les administrateurs peuvent :
- Gérez les systèmes plus efficacement sans avoir besoin d’utiliser d’interfaces graphiques.
- Automatisez les tâches de routine telles que la gestion des services, la configuration du système ou la surveillance des performances.
- Réduisez les risques d’erreur humaine en utilisant des scripts standardisés.
PowerShell augmente non seulement la productivité, mais offre également plus de flexibilité pour résoudre directement les problèmes, même dans des environnements système vastes et complexes. Cela en fait un outil incontournable pour les administrateurs modernes qui ont besoin d’une solution rapide et précise.
Qu’est-ce que les applets de commande ?
Les applets de commande sont de petits programmes créés pour effectuer des tâches spécifiques dans PowerShell. Ils servent d’outil pour gérer et automatiser divers aspects du système d’exploitation Windows.
Les applets de commande sont écrites sous la forme de classes .NET, généralement à l’aide du C. Les applets de commande peuvent être incluses dans PowerShell ou faire partie d’autres applications et services, tels que les fonctionnalités VMware ou Windows Server. Avec les applets de commande, les utilisateurs peuvent facilement récupérer des informations, modifier les paramètres et effectuer diverses autres opérations.
Exemples de commandes populaires
Voici deux exemples d’applets de commande couramment utilisées :
1. Get-Process
Ces applets de commande sont utilisées pour obtenir des informations sur tous les processus en cours d’exécution sur le système. Par exemple, l’exécution de la commande suivante affichera une liste de tous les processus actifs :
Get-Process2. Get-Service
Ces applets de commande sont utilisées pour obtenir des informations sur tous les services répertoriés dans le système. Avec cette commande, l’utilisateur peut voir l’état du service (en cours d’exécution ou arrêté) :
Get-ServiceAvantages de l’utilisation de la syntaxe nom-verbe dans les applets de commande
L’une des caractéristiques les plus remarquables des applets de commande est l’utilisation stricte de la syntaxe noun-verb. Cela signifie que chaque applet de commande est nommée avec un modèle clair, où la première partie (nom) indique l’objet géré et la seconde partie (verbe) indique l’action effectuée sur l’objet. Exemples:
- Get : Récupération d’informations.
- Set : Modifiez la configuration.
- Remove : Supprimer un objet.
Les avantages de cette syntaxe sont les suivants :
- Les utilisateurs peuvent facilement trouver d’autres applets de commande pertinentes en comprenant le modèle de nommage.
- Une syntaxe cohérente permet aux nouveaux utilisateurs d’apprendre et d’utiliser les applets de commande plus rapidement.
- Des noms d’applets de commande clairs facilitent la lecture et la compréhension des scripts.
Objets dans PowerShell
Dans PowerShell, un objet est une structure de données qui décrit une entité spécifique dans un système, telle qu’un fichier, un processus ou un service. Chaque objet comporte des properties (attributs) et des methods (méthodes) qui fournissent des informations et des fonctions liées à cette entité.
Les propriétés sont les caractéristiques d’un objet, tandis que les méthodes sont des actions qui peuvent être effectuées sur un objet. Par exemple, un objet de processus peut avoir des propriétés telles que le nom du processus, l’utilisation du processeur et l’état.
Comment Get-Process génère des objets avec des propriétés telles que l’utilisation du processeur
Lorsque vous exécutez l’applet de commande Get-Process, PowerShell génère un objet qui représente tous les processus actifs sur le système. Chacun de ces objets de processus possède diverses propriétés, notamment :
- Name : Le nom du processus.
- Id : Identification unique du processus.
- CPU : Utilisation du processeur par les processus.
Exemple de commande :
Get-ProcessCette commande vous fournit une liste d’objets de processus, et si vous souhaitez afficher plus d’informations sur l’un des objets, vous pouvez utiliser l’applet de commande Get-Member pour trouver les propriétés et les méthodes qui existent :
Get-Process | Get-Member

Cela affichera toutes les propriétés et méthodes de l’objet généré par le Get-Process, y compris l’utilisation du processeur.
Avantages des objets pour l’automatisation des tâches administratives
L’utilisation d’objets dans PowerShell présente de nombreux avantages pour l’automatisation des tâches administratives :
- Avec les objets, les administrateurs peuvent facilement accéder aux données et les modifier sans avoir à effectuer de traitement de texte complexe. Cela accélère la gestion de l’information et améliore la précision.
- Les objets rendent les scripts PowerShell plus clairs et plus faciles à comprendre. Les administrateurs peuvent utiliser directement les propriétés des objets dans le script pour effectuer des actions spécifiques.
- PowerShell permet aux utilisateurs de connecter des applets de commande via des pipelines, où la sortie d’une applet de commande peut être utilisée comme entrée pour d’autres applets de commande. Cela facilite le traitement séquentiel et efficace des données.
- Étant donné que PowerShell est basé sur .NET, chaque objet dans PowerShell est un objet .NET. Il permet d’accéder à une large gamme de méthodes et de propriétés, élargissant ainsi les capacités de gestion du système.
Avantages des objets pour l’automatisation des tâches administratives
L’utilisation d’objets dans PowerShell présente de nombreux avantages pour l’automatisation des tâches administratives :
1. Facilité de manipulation des données
Vous pouvez filtrer, trier ou modifier les données facilement. Par exemple:
Get-Process | Where-Object {$_.CPU -gt 5}Cette commande n’affichera que les processus dont l’utilisation du processeur est supérieure à 5 %.
2. Intégration avec d’autres applets de commande
Les objets peuvent être transmis à d’autres applets de commande via le pipeline, ce qui permet de créer des scripts complexes. Exemple:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5Cette commande affiche les 5 processus avec l’utilisation la plus élevée du processeur.
3. Efficacité du script
Avec les objets, vous pouvez créer des scripts plus précis et plus efficaces, réduisant ainsi le risque d’erreurs fréquentes dans l’analyse du texte brut.
Utilisation des pipelines pour l’automatisation
Pipeline s’agit d’une fonctionnalité intéressante dans PowerShell qui vous permet de diffuser les résultats d’une applet de commande à une autre. Ce concept utilise le symbole | (pipe) pour connecter des applets de commande, afin de créer un processus d’automatisation plus efficace et plus flexible.
En PowerShell, les pipelines servent à faire circuler objects from d’une applet de commande à une autre. Symbole | Séparez les applets de commande et transmettez les résultats de la première applet à la deuxième applet de commande sans stocker de données temporaires.
Un exemple simple :
Get-Process | Sort-Object CPU -Descending- Get-Process : Récupère la liste de tous les processus actifs sur le système.
- Sort-Object CPU -Descending : Trie les processus en fonction de l’utilisation du processeur à partir du plus élevé.
Le résultat est une liste de processus qui ont été triés en fonction de l’utilisation du processeur.
Regroupement des processus en fonction de l’utilisation de la mémoire virtuelle
Par exemple, supposons que vous souhaitiez savoir quelles applications utilisent le plus Virtual Memory (VM) et regrouper les processus par l’entreprise qui les a créés. Voici les étapes à suivre :
- Utilisez Get-Process pour exécuter tous les processus.
- Triez les processus en fonction de l’utilisation de la machine virtuelle.
- Prenez un nombre spécifique de processus, tels que les 10 premiers.
- Regroupez les processus par propriétés Company.
Le code complet :
Get-Process |
Sort-Object VM -Descending |
Select-Object -First 10 |
Group-Object Company- Sort-Object VM -Descending : Trie les processus en fonction de l’utilisation Virtual Memory du plus élevé.
- Select-Object -First 10 : Sélectionnez les 10 processus les plus utilisés par les machines virtuelles.
- Group-Object Company : Regroupez les processus par le nom de l’entreprise qui les a créés.
La sortie affichera les Company mana yang memiliki proses dengan penggunaan Virtual Memory.
Comment combiner des applets de commande pour des solutions plus complexes
Les pipelines facilitent la combinaison d’applets de commande et la création de solutions plus complexes sans avoir à écrire de code difficile. Par exemple, si vous souhaitez rechercher un processus qui utilise un processeur élevé et l’arrêter, vous pouvez utiliser le pipeline suivant :
Get-Process |
Where-Object {$_.CPU -gt 50} |
Stop-Process- Where-Object {$_.CPU -gt 50} : Filtre les processus dont l’utilisation du processeur est supérieure à 50 %.
- Stop-Process : Arrête le processus filtré.
Ce pipeline vous permet d’automatiser les tâches avec des étapes claires et organisées. Vous pouvez également ajouter des paramètres pour rendre la solution plus spécifique, comme l’envoi d’un rapport des résultats :
Get-Process |
Where-Object {$_.CPU -gt 50} |
Export-Csv -Path “HighCPUProcesses.csv”Ce pipeline stockera les données du processus gourmand en ressources processeur dans un fichier CSV.
Automatisation avec PowerShell
Une applet de commande très utile dans PowerShell est Get-WindowsOptionalFeature. Cette applet de commande permet aux utilisateurs d’afficher les fonctionnalités facultatives disponibles dans Windows, y compris leur état (activé ou désactivé). À l’aide de ces applets de commande, les administrateurs peuvent facilement gérer et auditer les fonctionnalités existantes.
Pour afficher toutes les fonctionnalités facultatives dans Windows, vous pouvez exécuter la commande suivante :
Get-WindowsOptionalFeature -OnlineCette commande génère une liste d’objets qui représentent chaque fonctionnalité facultative, avec des propriétés telles que FeatureName, State et une description de la fonctionnalité.
Étapes de création d’un script simple pour l’automatisation
Voici les étapes à suivre pour créer un script simple qui utilise Get-WindowsOptionalFeature pour auditer et activer automatiquement certaines fonctionnalités :
- Exécutez PowerShell avec des privilèges d’administrateur pour vous assurer que vous disposez des autorisations nécessaires.
- Utilisez l’applet de commande Get-WindowsOptionalFeature pour obtenir la liste de toutes les fonctionnalités facultatives.
$features = Get-WindowsOptionalFeature -En ligne- Par exemple, si vous souhaitez vérifier si la fonction « TelnetClient » est activée ou non, vous pouvez filtrer les résultats.
$telnetFeature = $features | Objet-Où { $_. FeatureName -eq 'TelnetClient' }- Si la fonctionnalité n’est pas active, vous pouvez l’activer à l’aide de l’applet de commande Enable-WindowsOptionalFeature.
if ($telnetFeature.State -eq 'Disabled') {
Enable-WindowsOptionalFeature -Online -FeatureName 'TelnetClient' -All
Write-Host “TelnetClient feature has been enabled.”
} else {
Write-Host “TelnetClient feature is now active.”
}- Enregistrez ce script en tant que fichier .ps1, par exemple, EnableTelnet.ps1, et exécutez-le dans PowerShell.

