Maîtriser PowerShell : Guide du débutant pour un scripting puissant
Commençons l'apprentissage des leçons PowerShell. D'abord, nous allons apprendre :
Qu'est-ce que PowerShell ?
Windows PowerShell est un moteur d'automatisation orienté objet et un langage de script. Il est conçu principalement pour les professionnels IT et les administrateurs système pour contrôler et automatiser l'administration de Windows OS et d'autres applications. Il fournit de nouveaux concepts convaincants pour étendre les connaissances que vous avez acquises et les scripts que vous avez créés dans les environnements Windows Command Prompt et Windows Script Host.
Il combine la flexibilité du scripting, la vitesse de la ligne de commande et la puissance d'un outil d'administration basé sur GUI. Il vous permet de résoudre les problèmes efficacement en aidant l'administrateur système à éliminer des heures de travail manuel futures. Nous passerons en revue tous les aspects importants que vous devriez connaître pour apprendre PowerShell.
Dans ce tutoriel PowerShell pour débutants, vous apprendrez les bases de PowerShell comme :
- Qu'est-ce que PowerShell ?
- Pourquoi utiliser PowerShell ?
- Histoire de PowerShell
- Fonctionnalités de PowerShell
- Comment lancer PowerShell
- Cmdlet PowerShell
- Cmdlet vs Commande :
- Types de données PowerShell :
- Variables spéciales
- Scripts PowerShell
- Premier script PowerShell
- Qu'est-ce que PowerShell ISE ?
- Concepts PowerShell
- PowerShell vs Invite de commandes
- Applications de PowerShell
Ceci est un guide complet sur les bases du scripting PowerShell… commençons !
Pourquoi utiliser PowerShell ?
Voici quelques raisons importantes d'utiliser PowerShell :
- PowerShell offre une expérience en ligne de commande bien intégrée pour le système d'exploitation
- PowerShell permet un accès complet à tous les types du framework .NET
- Approuvé par les administrateurs système.
- PowerShell est un moyen simple de manipuler les composants serveur et poste de travail
- Il est orienté vers les administrateurs système en créant une syntaxe plus facile
- PowerShell est plus sécurisé que l'exécution de VBScript ou d'autres langages de script
Histoire de PowerShell
La première version 1.0 de PowerShell a été publiée en 2006. Aujourd'hui, PowerShell est à la version 7.2. Au fil des années et des versions, les capacités et environnements d'hébergement de PowerShell ont considérablement grandi.
Voyons l'historique version par version de PowerShell :
- PowerShell version 1 supportait l'administration locale de Windows Server 2003
- PowerShell 2.0 était intégré à Windows 7 et Windows Server 2008 R2. Cette version supporte l'exécution à distance et améliore les capacités de PowerShell comme les transactions, travaux en arrière-plan, événements, débogage, etc.
- PowerShell 3.0 a été publié en tant que partie interne du framework de gestion Windows. Il était installé sur Windows 8 et Windows Server 2012. Vous pouvez ajouter des travaux planifiés, connectivité de session, chargement automatique de modules, etc.
- PowerShell 4.0 était livré avec Windows 8.1 et Windows Server 2012 R2. Cette version a ajouté le support pour la configuration d'état souhaité, débogage amélioré, diagnostics réseau.
- PowerShell 5.0 a été publié en tant que partie interne du framework de gestion Windows 5. Les fonctionnalités offertes dans cette version sont le débogage à distance, définitions de classes, énumérations .NET, etc.
- PowerShell 7.2 a été publié. Il est construit sur .NET 6.0. Cette version offre de nouveaux opérateurs, vue d'erreur simplifiée et dynamique, notifications automatiques de nouvelle version, etc.
Fonctionnalités de PowerShell
- PowerShell Remoting : PowerShell permet d'invoquer des scripts et cmdlets sur une machine distante.
- Travaux en arrière-plan (Background Jobs) : Il aide à invoquer un script ou pipeline de manière asynchrone. Vous pouvez exécuter vos travaux soit sur la machine locale, soit sur plusieurs machines distantes.
- Transactions : Activer les cmdlets et permettre aux développeurs d'effectuer...
- Événements (Events) : Cette commande aide à écouter, transférer et agir sur les événements de gestion et système.
- Transfert de fichiers réseau : PowerShell offre un support natif pour le transfert de fichiers priorisé, asynchrone, limité, entre machines en utilisant la technologie Background Intelligent Transfer Service (BITS).
Comment lancer PowerShell
Dans ce tutoriel de script PowerShell, nous apprendrons comment lancer PowerShell sur Windows OS.
PowerShell est préinstallé dans toutes les dernières versions de Windows. Nous devons lancer PowerShell pour cela nous devons suivre les étapes données :
Étape 1) Rechercher PowerShell dans Windows. Sélectionner et Cliquer
Étape 2) La fenêtre PowerShell s'ouvre
Cmdlet PowerShell
Un cmdlet (command-let) est une commande légère utilisée dans l'environnement PowerShell basé sur Windows. PowerShell invoque ces cmdlets dans l'invite de commande. Vous pouvez créer et invoquer des commandes cmdlets en utilisant les API PowerShell.
Cmdlet vs Commande :
Les cmdlets sont différents des commandes dans d'autres environnements de shell de commande de la manière suivante :
- Les cmdlets sont des objets de classe .NET Framework. Ils ne peuvent pas être exécutés séparément.
- Les cmdlets peuvent être construits à partir de quelques douzaines de lignes de code.
- L'analyse, le formatage de sortie et la présentation d'erreurs ne sont pas gérés par les cmdlets.
- Les cmdlets fonctionnent sur des objets. Donc flux de texte et objets ne peuvent pas être passés en sortie pour le pipelining.
- Les cmdlets sont basés sur des enregistrements, donc ils traitent un seul objet à la fois.
La plupart des fonctionnalités PowerShell proviennent des Cmdlets qui sont toujours au format verbe-nom et non au pluriel. De plus, les Cmdlets retournent des objets, pas du texte. Un cmdlet est une série de commandes, qui est plus d'une ligne, stockée dans un fichier texte avec une extension .ps1.
Un cmdlet consiste toujours en un verbe et un nom, séparés par un tiret. Certains verbes utilisés pour apprendre PowerShell sont :
- Get — Pour obtenir quelque chose
- Start — Pour exécuter quelque chose
- Out — Pour sortir quelque chose
- Stop — Pour arrêter quelque chose qui tourne
- Set — Pour définir quelque chose
- New — Pour créer quelque chose
Commandes PowerShell
Voici une liste des commandes PowerShell importantes :
Get-Help : Aide sur les commandes et sujets PowerShell
Exemple : Afficher les informations d'aide sur la commande Format-Table
Get-Help Format-Table
Get-Command : Obtenir des informations sur tout ce qui peut être invoqué
Exemple de script PowerShell : Pour générer une liste de cmdlets, fonctions installées sur votre machine
Get-Command
Get-Service : Trouve tous les cmdlets avec le mot 'service' dedans.
Exemple : Obtenir tous les services qui commencent par « vm »
Get-Service "vm*"
Get-Member : Montre ce qui peut être fait avec un objet
Exemple : Obtenir les membres des processus vm.
Get-Service "vm*" | Get-Member
Autres commandes :
- Get-Module : Affiche les packages de commandes
- Get-Content : Ce cmdlet peut prendre un fichier et traiter son contenu et faire quelque chose avec
- Get- : Trouve tous les cmdlets commençant par le mot 'get-'
Exemple : Créer un dossier
New-Item -Path 'X:\Guru99' -ItemType Directory
Sortie
Types de données PowerShell :
Variables spéciales
| Variable spéciale | Description |
|---|---|
$Error | Un tableau d'objets d'erreur qui affiche les erreurs les plus récentes |
$Host | Affiche le nom de l'application hôte actuelle |
$Profile | Stocke le chemin complet d'un profil utilisateur pour le shell par défaut |
$PID | Stocke l'identifiant de processus |
$PSUICulture | Contient le nom de la culture UI actuelle |
$NULL | Contient une valeur vide ou NULL |
$False | Contient la valeur FAUX |
$True | Contient la valeur VRAI |
Scripts PowerShell
Les scripts PowerShell sont stockés dans des fichiers .ps1. Par défaut, vous ne pouvez pas exécuter un script en double-cliquant simplement sur un fichier. Cela protège votre système contre les dommages accidentels. Pour exécuter un script :
Étape 1 : clic droit et cliquer « Exécuter avec PowerShell »
De plus, il y a une politique qui restreint l'exécution de scripts. Vous pouvez voir cette politique en exécutant la commande Get-ExecutionPolicy.
Vous obtiendrez l'une des sorties suivantes :
- Restricted — Aucun script n'est autorisé. C'est le paramètre par défaut, donc il s'affichera la première fois que vous exécuterez la commande.
- AllSigned — Vous pouvez exécuter des scripts signés par un développeur de confiance. Avec ce paramètre, un script demandera confirmation avant d'exécuter.
- RemoteSigned — Vous pouvez exécuter vos scripts ou ceux signés par un développeur de confiance.
- Unrestricted — Vous pouvez exécuter n'importe quel script que vous voulez
Étapes pour changer la politique d'exécution
Étape 1) Ouvrir une invite PowerShell élevée. Clic droit sur PowerShell et « Exécuter en tant qu'administrateur »
Étape 2) Entrer les commandes suivantes
- Get-ExecutionPolicy
- Set-ExecutionPolicy unrestricted
- Entrer Y dans l'invite
- Get-ExecutionPolicy
Premier script PowerShell
Dans un bloc-notes, écrivez la commande suivante
Write-Host "Hello, Guru99!"
Les scripts PowerShell ont une extension ps1. Enregistrez le fichier sous FirstScript.ps1
Dans PowerShell, appelez le script en utilisant la commande
& "X:\FirstScript.ps1"
Qu'est-ce que PowerShell ISE ?
L'Environnement de Scripting Intégré Windows PowerShell (ISE) est l'éditeur par défaut pour Windows PowerShell. Dans cet ISE, vous pouvez exécuter des commandes, écrire des tests et déboguer des scripts dans un environnement GUI fenêtré. Vous pouvez faire de l'édition multi-lignes, coloration syntaxique, complétion par tabulation, exécution sélective et bien d'autres choses.
Windows PowerShell ISE vous permet aussi d'exécuter des commandes dans un volet de console. Cependant, il supporte aussi des volets que vous pouvez utiliser pour visualiser simultanément le code source de votre script et d'autres outils que vous pouvez brancher dans l'ISE.
Vous pouvez même ouvrir plusieurs fenêtres de script en même temps. C'est spécifiquement utile quand vous déboguez un script qui utilise des fonctions définies dans d'autres scripts ou modules.
Le même script que nous avons créé dans le bloc-notes peut être créé dans ISE
- Coller le code dans l'éditeur
- Enregistrer le script
- Utiliser F5 pour exécuter le script
- Observer la sortie dans la console
Exemple 2 :
Le code suivant donnera la mémoire virtuelle libre dans votre machine
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
Concepts PowerShell
Dans ce tutoriel PowerShell pour débutants, nous apprendrons les concepts importants de PowerShell :
Cmdlets : Les cmdlets sont des commandes intégrées écrites dans des langages .NET comme VB ou C#. Elles permettent aux développeurs d'étendre l'ensemble des cmdlets en chargeant et écrivant des snap-ins PowerShell.
Fonctions : Les fonctions sont des commandes écrites dans le langage PowerShell. Elles peuvent être développées sans utiliser d'autres IDE comme Visual Studio.
Scripts : Les scripts sont des fichiers texte sur disque avec une extension .ps1
Applications : Les applications sont des programmes Windows existants.
WhatIf : Dit au cmdlet de ne pas exécuter, mais de dire ce qui se passerait si le cmdlet s'exécutait.
Confirm : Demande au cmdlet de demander confirmation avant d'exécuter la commande.
Verbose : Donne un niveau de détail plus élevé.
Debug : Instruit le cmdlet à fournir des informations de débogage.
ErrorAction : Instruit le cmdlet à effectuer une action spécifique quand une erreur se produit. Actions autorisées : continue, stop, silently-continue et inquire.
ErrorVariable : Spécifie la variable qui contient les informations d'erreur.
OutVariable : Dit au cmdlet d'utiliser une variable spécifique pour contenir les informations de sortie.
OutBuffer : Instruit le cmdlet de retenir le nombre spécifique d'objets avant d'appeler le prochain cmdlet dans le pipeline.
Avantages de l'utilisation de scripts PowerShell
- Les scripts PowerShell sont vraiment puissants et peuvent faire beaucoup de choses en moins de lignes.
- Les variables sont déclarées sous la forme $<variable>
- Les variables peuvent être utilisées pour contenir la sortie de commande, objets et valeurs.
- Le « Type » d'une variable n'a pas besoin d'être spécifié.
PowerShell vs Invite de commandes
| PowerShell | Invite de commandes |
|---|---|
| PowerShell s'intègre profondément avec Windows OS. Il offre une interface en ligne de commande interactive et un langage de script. | L'invite de commandes est une interface en ligne de commande par défaut fournie par Microsoft. C'est une simple application win32 qui peut interagir et parler avec n'importe quels objets win32 dans le système d'exploitation Windows. |
| PowerShell utilise ce qu'on appelle des cmdlets. Elles peuvent être invoquées soit dans l'environnement d'exécution, soit dans les scripts d'automatisation. | Aucune telle fonctionnalité n'est offerte par l'invite de commandes. |
| PowerShell les considère comme des objets. Donc la sortie peut être passée en entrée à d'autres cmdlets via le pipeline. | L'invite de commandes ou même le shell *nix, la sortie générée par un cmdlet n'est pas juste un flux de texte mais une collection d'objets. |
| PowerShell est très avancé concernant les fonctionnalités, capacités et fonctionnement interne. | L'invite de commandes est très basique. |
Applications de PowerShell
Aujourd'hui, PowerShell est devenu un choix idéal pour les administrateurs IT car il facilite les opérations de gestion et l'effort dans les grands réseaux d'entreprise. Par exemple, supposons que vous gérez un grand réseau contenant plus de quatre cents serveurs. Maintenant, vous voulez implémenter une nouvelle solution de sécurité. Cette solution de sécurité dépend d'un certain service qui doit s'exécuter sur ces serveurs.
Vous pouvez certainement vous connecter à chaque serveur et voir s'ils ont ce service installé et en cours d'exécution ou non. Cependant, cela prend certainement beaucoup d'erreurs humaines car votre personnel doit passer beaucoup de temps sur ce processus non productif.
Cependant, si vous utilisez PowerShell, vous pourriez accomplir cette tâche en quelques minutes. C'est parce que l'opération entière est faite avec un seul script qui recueille des informations sur les services en cours d'exécution sur les serveurs.
Résumé
- Windows PowerShell est un moteur d'automatisation orienté objet et un langage de script
- PowerShell offre une expérience en ligne de commande bien intégrée pour le système d'exploitation
- PowerShell première version 1.0 a été publiée en 2006
- PowerShell permet aux scripts et cmdlets d'être invoqués sur une machine distante
- PowerShell est préinstallé dans toutes les dernières versions de Windows
- Un cmdlet est une commande légère utilisée dans l'environnement PowerShell basé sur Windows
- Get, Start, Out, Stop, Set, New sont des commandes PowerShell importantes
- Booléen, Octet, Char, Décimal, Long sont des types de données importants de PowerShell
- $Error, $Host, $Profile, $PID, $PSUICulture, $NULL sont quelques variables spéciales utilisées dans PowerShell
- L'Environnement de Scripting Intégré Windows PowerShell (ISE) est l'éditeur par défaut pour PowerShell
- PowerShell s'intègre profondément avec Windows OS alors que l'invite de commandes est une interface en ligne de commande par défaut fournie par Microsoft
- PowerShell est devenu un choix idéal pour les administrateurs IT car il facilite les opérations de gestion et l'effort dans les grands réseaux d'entreprise
Langue C
- Installation de Windows 10 IoT Core sur Raspberry Pi 3 Model B+ : Guide Étape par Étape
- Construire un robot évitant les obstacles avec Raspberry Pi – Guide débutant
- Fraiseuses CNC pour débutants : maîtrisez le marché avec une précision sans effort
- Installation de Visual Studio 2019 Community Edition pour le Développement C# sur Windows
- Top 10 des IDE C# pour Windows, macOS et Linux – Revue 2021
- Guide ultime des meilleurs IDE C pour Windows, macOS et Linux (2021)
- Maîtriser la programmation C : Tutoriel PDF complet pour débutants
- Maîtriser le fraisage CNC : 4 conseils essentiels pour débutants
- Fabrication métallique 101 : guide clair pour les débutants