Tutoriel Powershell pour les débutants
⚡ Résumé intelligent
PowerShell Scripting est un moteur d'automatisation orienté objet basé sur le framework .NET. Il combine des cmdlets, des scripts et un langage de script pour aider les administrateurs informatiques à automatiser les tâches. Windows, gérer les services et se connecter à des machines distantes à partir d'une seule ligne de commande.

Qu'est-ce que PowerShell?
Windows PowerShell est un moteur d'automatisation orienté objet et un langage de script. Il est conçu pour les professionnels de l'informatique et les administrateurs système qui ont besoin de contrôler et d'automatiser l'administration de Windows et d'autres applications. PowerShell étend les concepts appris dans Windows Invite de commande et Windows Script Host avec de nouveaux objets, cmdlets et un pipeline puissant.
Il combine la flexibilité des scripts, la rapidité de la ligne de commande et la richesse d'un outil d'administration graphique. Grâce à lui, les administrateurs peuvent résoudre les problèmes efficacement et gagner un temps précieux. Ce tutoriel vous présente les notions essentielles pour apprendre PowerShell, même sans connaissances préalables.
Pourquoi utiliser PowerShell ?
Les principales raisons d'utiliser PowerShell sont :
- Offre une expérience de ligne de commande bien intégrée au système d'exploitation.
- Offre un accès complet à tous les types du framework .NET.
- Approuvé par les administrateurs système de nombreuses entreprises.
- Permet de manipuler les composants du serveur et du poste de travail en quelques lignes.
- Conçu pour les administrateurs système, avec une syntaxe verbe-nom claire.
- Plus sûr que la course à pied VBScript ou d'autres langages de script anciens.
Historique de PowerShell
PowerShell 1.0 a été lancé en 2006. PowerShell en est aujourd'hui à la version 7.2 et suivantes. Au fil des mises à jour, ses fonctionnalités et ses environnements d'hébergement se sont considérablement développés.
Historique des versions de PowerShell :
- PowerShell 1.0 — a soutenu l'administration locale de Windows 2003 Server.
- PowerShell 2.0 — intégré à Windows 7 et Windows Server 2008 R2. Ajout de la communication à distance, des transactions, des tâches en arrière-plan, des événements et du débogage.
- PowerShell 3.0 — expédié avec Windows 8 et Windows Server 2012 dans le cadre de Windows Cadre de gestion. Ajout de tâches planifiées, de la connectivité de session et du chargement automatique des modules.
- PowerShell 4.0 — expédié avec Windows 8.1 et Windows Server 2012 R2. Ajout de la configuration d'état souhaité, du débogage amélioré et des diagnostics réseau.
- PowerShell 5.0 — partie de Windows Management Framework 5. Ajout du débogage à distance, des définitions de classes et des énumérations .NET.
- PowerShell 7.2 — Basé sur .NET 6.0. Ajoute de nouveaux opérateurs, des vues d'erreur dynamiques et des notifications de version automatiques.
Fonctionnalités de PowerShell
- Accès à distance PowerShell : invoquer des scripts et des cmdlets sur une machine distante.
- Emplois en arrière-plan : Exécuter des scripts ou des pipelines de manière asynchrone sur la machine locale ou sur plusieurs machines distantes.
- Transactions: Permettre aux cmdlets et aux développeurs d'effectuer des opérations groupées qui peuvent être validées ou annulées ensemble.
- Concours complet : Écouter, transmettre et réagir aux événements de gestion et de système.
- Transfert de fichiers réseau : prise en charge native du transfert de fichiers prioritaire, asynchrone et limité entre machines via le service de transfert intelligent en arrière-plan (BITS).
Comment lancer PowerShell
PowerShell est préinstallé sur toutes les versions récentes de WindowsLancez-le comme suit.
Étape 1) Rechercher PowerShell dans WindowsSélectionnez-le, puis cliquez dessus.
Étape 2) La fenêtre PowerShell s'ouvre.
Applet de commande et commande
A applet de commande Une cmdlet (prononcée « command-let ») est une commande légère utilisée dans l’environnement PowerShell. PowerShell exécute les cmdlets à l’invite de commande, et vous pouvez créer les vôtres à l’aide des API PowerShell. Les cmdlets diffèrent des commandes shell traditionnelles de la manière suivante :
- Les applets de commande sont . NET Framework Les objets de classe ne peuvent pas être exécutés comme des exécutables autonomes.
- Les cmdlets peuvent être écrites en une douzaine de lignes de code seulement.
- L'analyse syntaxique, la mise en forme de la sortie et la présentation des erreurs sont gérées par l'environnement d'exécution, et non par l'applet de commande elle-même.
- Les cmdlets fonctionnent avec des objets, donc les flux de texte et les objets peuvent tous deux circuler dans les pipelines.
- Les cmdlets sont basées sur les enregistrements et traitent un seul objet à la fois.
La plupart des fonctionnalités de PowerShell sont fournies par le biais d'applets de commande, qui utilisent toujours un modèle de nommage verbe-nom (toujours au singulier). Les applets de commande renvoient des objets, et non du texte. scénario — à ne pas confondre avec une cmdlet — est une série de commandes stockées dans un fichier texte avec le .ps1 extension.
Voici quelques verbes courants que vous utiliserez pour apprendre PowerShell :
- Prendre — récupérer quelque chose.
- Commencer — lancer quelque chose.
- de stock — produire quelque chose.
- Arrêter — arrêter quelque chose qui est en cours d'exécution.
- complet » — définir quelque chose.
- NOUVEAU — créer quelque chose.
Commandes PowerShell importantes
Obtenir de l'aide: Consultez l'aide relative aux commandes et aux sujets PowerShell.
Exemple : afficher l’aide pour Format-Table commander.
Get-Help Format-Table
Obtenir la commande : obtenir des informations sur tout ce qui peut être invoqué.
Exemple : générer une liste des cmdlets et des fonctions installées sur la machine.
Get-Command
Obtenir le service : trouve tous les services sur la machine.
Exemple : obtenir tous les services dont le nom commence par « vm ».
Get-Service "vm*"
Get-Member : montrer ce qu'il est possible de faire avec un objet.
Exemple : lister les membres des services de machine virtuelle renvoyés par Get-Service.
Get-Service "vm*" | Get-Member
Autres cmdlets utiles :
Get-Module— afficher les paquets de commandes installés.Get-Content— lire un fichier et traiter son contenu.Get-*caractère générique — liste toutes les cmdlets qui commencent par « Get- ».
Exemple : créer un dossier.
New-Item -Path 'X:\Guru99' -ItemType Directory
Sortie :
Types de données PowerShell
PowerShell prend en charge les types de données .NET standard, ce qui vous permet de stocker n'importe quelle valeur proprement dans une variable.
Variables spéciales
PowerShell propose plusieurs variables spéciales intégrées. Les plus utiles sont listées ci-dessous.
| Variable spéciale | Description |
|---|---|
| $Erreur | Un tableau d'objets d'erreur représentant les erreurs les plus récentes. |
| $Hôte | Affiche le nom de l'application hôte actuelle. |
| $Profil | Enregistre le chemin complet du profil utilisateur pour l'interpréteur de commandes par défaut. |
| $PID | Stocke l'identifiant du processus. |
| $PSUICulture | Contient le nom de la culture d'interface utilisateur actuelle. |
| $NULL | Contient une valeur vide ou nulle. |
| $Faux | Contient la valeur booléenne FAUX. |
| $Vrai | Contient la valeur booléenne TRUE. |
Scripts PowerShell
Les scripts PowerShell sont stockés dans .ps1 Par défaut, vous ne pouvez pas exécuter un script en double-cliquant dessus ; cette mesure de sécurité protège le système contre toute action accidentelle. Pour exécuter un script, cliquez dessus avec le bouton droit et choisissez « Exécuter avec PowerShell ».
Une stratégie d'exécution contrôle les scripts autorisés à s'exécuter. Consultez la stratégie actuelle avec Get-ExecutionPolicyLes valeurs possibles sont :
- Limité — Aucun script n'est autorisé. Il s'agit du paramètre par défaut.
- ToutSigné — Seuls les scripts signés par un développeur de confiance sont exécutés, et chacun nécessite une confirmation.
- Signé à distance — vos propres scripts s'exécutent, ainsi que les scripts signés provenant de sources fiables.
- Libre — n'importe quel script peut être exécuté (à utiliser avec parcimonie).
Étapes pour modifier la politique d'exécution :
Étape 1) Ouvrez une invite PowerShell avec privilèges élevés en cliquant avec le bouton droit sur PowerShell et en sélectionnant Exécuter en tant qu'administrateur.
Étape 2) Exécutez les commandes ci-dessous.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- Entrer
Yà l'invite de confirmation. Get-ExecutionPolicy
Premier script PowerShell
Ouvrez le Bloc-notes et tapez :
Write-Host "Hello, Guru99!"
Enregistrez le fichier avec un .ps1 extension — par exemple, FirstScript.ps1.
Dans PowerShell, exécutez le script avec :
& "X:\FirstScript.ps1"
Qu’est-ce que PowerShell ISE ?
Le Windows Environnement de script intégré PowerShell (ISE) ISE est l'éditeur par défaut de PowerShell. Dans ISE, vous pouvez exécuter des commandes, écrire des tests et déboguer des scripts dans un environnement graphique à fenêtres. Il prend en charge l'édition multiligne, la coloration syntaxique, la complétion automatique, l'exécution sélective et bien plus encore.
PowerShell ISE propose également un volet console permettant d'exécuter directement les commandes, tandis que des volets latéraux affichent le code source de vos scripts et les outils connectés à ISE. Vous pouvez ouvrir plusieurs fenêtres de script simultanément, ce qui s'avère utile pour déboguer des scripts dépendant de fonctions définies dans d'autres scripts ou modules.
Recréez le script précédent dans ISE :
- Collez le code dans l'éditeur.
- Enregistrez le script.
- Appuyez sur F5 pour l'exécuter.
- Observez la sortie dans le volet de la console.
Échantillon 2: Le script suivant affiche des informations gratuites la mémoire virtuelle sur la machine.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
Les concepts suivants constituent le vocabulaire du travail quotidien avec PowerShell.
| Concept | Description |
|---|---|
| Applets de commande | Commandes intégrées écrites en langages .NET tels que VB ou C#. Les développeurs étendent cet ensemble en chargeant ou en écrivant des composants logiciels enfichables PowerShell. |
| Les fonctions | Commandes écrites directement dans le langage PowerShell, sans nécessiter d'IDE tel que Visual Studio. |
| Scripts | Fichiers texte sur disque avec le .ps1 extension. |
| Applications | Existant Windows programmes invoqués depuis le shell. |
| Et si | Indique à l'applet de commande de ne pas s'exécuter, mais de décrire ce qui se passerait si elle le faisait. |
| Confirmer | Indique à l'applet de commande d'afficher une invite avant l'exécution. |
| Verbeux | Fournit un niveau de détail opérationnel plus élevé. |
| Déboguer | Indique à l'applet de commande d'émettre des informations de débogage. |
| ErreurAction | Définit le comportement de l'applet de commande en cas d'erreur. Valeurs autorisées : continuer, stop, silentlycontinue, inquire. |
| Variable d'erreur | Nomme la variable qui contient les informations d'erreur. |
| Variable de sortie | Indique à l'applet de commande de stocker sa sortie dans une variable spécifique. |
| de stockBuffer | Contient un nombre précis d'objets avant de les envoyer dans le pipeline. |
Avantages de l'utilisation des scripts PowerShell
- Les scripts PowerShell sont puissants et concis : vous pouvez accomplir beaucoup en quelques lignes seulement.
- Les variables sont déclarées avec
$<variable>syntaxe. - Les variables peuvent contenir la sortie de commandes, des objets et des valeurs primitives.
- Il n'est pas nécessaire de spécifier explicitement le type de variable.
PowerShell contre l'invite de commandes
| PowerShell | Invite de commandes |
|---|---|
| Profondément intégré à WindowsOffre une interface de ligne de commande interactive et un langage de script complet. | Interface de ligne de commande par défaut fournie par MicrosoftUne application Win32 simple qui communique avec d'autres objets Win32. |
| Utilise des cmdlets pouvant être invoquées de manière interactive ou via des scripts d'automatisation. | Aucune cmdlet. |
| Traite la sortie comme des objets afin qu'elle puisse être transmise à une autre cmdlet via le pipeline. | Le résultat est un flux de texte brut, et non des objets. |
| Doté de fonctionnalités, de capacités et d'une architecture interne avancées. | Shell basique, adapté aux tâches batch traditionnelles. |
Applications de PowerShell
PowerShell est devenu le choix standard des administrateurs informatiques car il réduit considérablement les efforts sur les grands réseaux d'entreprise. Imaginez gérer plus de quatre cents serveurs et déployer une nouvelle solution de sécurité qui dépend d'un service spécifique exécuté sur chaque hôte.
Se connecter manuellement à chaque serveur est long et source d'erreurs. Un simple script PowerShell permet d'analyser chaque serveur en quelques minutes, d'identifier les hôtes sur lesquels le service est déjà installé et même de l'activer sur les autres. Le script capture l'intention une seule fois et l'applique de manière fiable à l'ensemble du parc informatique.
















