Les 10 commandes PowerShell de base que vous devez connaître

Avez-vous déjà essayé d’écrire du code PowerShell et vous êtes bloqué ? Ne vous inquiétez plus ! L’une des meilleures façons de devenir bon en PowerShell est de comprendre les bases. Connaître quelques commandes de base PowerShell peut vous rendre professionnel, et vous automatiserez les tâches administratives plus efficacement.

Dans ce tutoriel, vous apprendrez les cmdlets de base PowerShell que vous devez connaître pour rendre votre expérience PowerShell plus intéressante.

Prérequis

Ce tutoriel sera une démonstration pratique, mais il n’a pas beaucoup de prérequis. Si vous souhaitez suivre, n’importe quel système (Windows ou Linux) avec PowerShell 5.1 ou supérieur fonctionnera. Bien que les commandes soient présentées avec Windows PowerShell, les exemples ci-dessous fonctionnent dans PowerShell 7+ multiplateforme.

Obtention d’informations d’aide sur les commandes avec Get-Help

Avez-vous déjà écrit du code comme un pro sans obtenir d’aide ? Eh bien, il y aura toujours besoin d’aide lorsque vous écrivez du code. Que vous exécutiez du code ou des commandes dans un environnement de ligne de commande, la cmdlet Get-Help est pratique.

Commençons ce tutoriel en apprenant comment fonctionne la cmdlet Get-Help.

Le cmdlet Get-Help vous offre les guides nécessaires pour utiliser efficacement n’importe quelle commande sans rencontrer d’erreurs. Voyez-le comme une documentation pour chacune des commandes PowerShell.

Ouvrez PowerShell en tant qu’administrateur, et exécutez la commande Get-Help ci-dessous pour afficher des informations détaillées (-Detailed) sur une commande, telles que le cmdlet Get-ExecutionPolicy.

Get-Help -Name Get-ExecutionPolicy -Detailed
Getting Detailed Information of Commands

Plutôt que simplement des informations détaillées, peut-être souhaitez-vous afficher des informations complètes sur un cmdlet. Si c’est le cas, ajoutez le paramètre -Full dans la commande Get-Help à la place.

Exécutez le code ci-dessous pour obtenir les informations complètes (-Full) sur le cmdlet Get-Help lui-même.

Get-Help Get-Help -Full
Getting Full Information of Commands

Peut-être avez-vous encore besoin de plus d’exemples pour éviter les erreurs lors de l’exécution de la commande. Dans ce cas, ajoutez le paramètre -Examples pour voir des exemples d’écriture d’une commande.

Exécutez la commande Get-Help ci-dessous pour obtenir des exemples (-Examples) sur la manière dont vous pouvez utiliser le cmdlet Get-Process.

 Get-Help Get-Process -Examples
Applying -Examples to get help for Get-Process

Obtention des processus informatiques avec Get-Process

Tu te souviens du Gestionnaire des tâches Windows qui affiche tous tes processus, services, applications, et tout ça ? Bien ! La cmdlet Get-Process est une cmdlet de base mais essentielle qui te donne accès à tous les processus de ton ordinateur en quelques étapes sans ouvrir le Gestionnaire des tâches.

Exécute la commande suivante pour obtenir une liste de tous les processus système dans un format de tableau.

Get-Process
Getting All Windows Processes

Lorsqu’un processus se fige et ralentit ton ordinateur, arrête le processus en redirigeant la cmdlet Get-Process vers la cmdlet Stop-Process. Par exemple : exécute Get-Process -Id 1252 | Stop-Process, où -Id 1252 spécifie l’ID du processus que tu veux arrêter.

Obtenir l’historique de session PowerShell avec Get-History

Il pourrait y avoir besoin de vérifier vos commandes récentes, comme la vérification de l’exactitude de la commande que vous avez exécutée ou si vous avez réellement exécuté une commande. Mais PowerShell a-t-il un historique des commandes? Oui! La cmdlet Get-History renvoie un objet contenant toutes vos commandes récentes dans votre session PowerShell actuelle.

Exécutez la commande ci-dessous pour obtenir une liste de toutes les commandes récemment exécutées dans votre session actuelle.

Get-History
Getting the commands history of the current session

Si vous préférez afficher des commandes spécifiques de l’historique, ajoutez le paramètre -Id suivi du numéro ID de la commande dans l’historique. Par exemple, exécutez Get-History -Id 2 pour voir la deuxième commande dans l’historique.

Affichage des services système avec Get-Service

Tout comme la cmdlet Get-Process, PowerShell vous permet également de voir tous les services s’exécutant sur votre système. La cmdlet Get-Service vous permet de voir tous les services, tels qu’un serveur de base de données ou une application qui contrôle automatiquement la luminosité de l’écran de votre ordinateur.

Exécutez la commande ci-dessous pour obtenir une liste de tous les services sur votre système au format tableau. Avec cette commande, vous pouvez même afficher les services arrêtés.

Get-Service
Getting all available services on the local computer

Peut-être que vous cherchez des services qui commencent par un caractère spécifique. Si c’est le cas, ajouter un caractère générique (*) fera l’affaire.

Exécutez la commande Get-Service ci-dessous, en passant la première lettre et l’astérisque (A*) des services que vous souhaitez voir. Ajouter le caractère générique vous permet de filtrer tous les services qui ne commencent pas par la lettre ‘A’.

Get-Service A*
Getting all services that start with the letter ‘A’

Exécution de tâches en arrière-plan avec Start-Job

Écrire du code peut être ennuyeux s’il reste encore beaucoup à écrire, mais qu’une seule commande prend une éternité à écrire. Pas de problème ! PowerShell fournit une cmdlet pour exécuter des tâches en arrière-plan dans votre session. La cmdlet Start-Job offre un environnement PowerShell pour exécuter du code ou des commandes en tant que tâche en arrière-plan sans interaction utilisateur.

Exécutez la commande Start-Job ci-dessous pour démarrer une tâche en arrière-plan pour la cmdlet Get-Command. Démarrer une tâche en arrière-plan exécute la cmdlet Get-Command sans afficher la sortie dans votre ligne de commande.

Start-Job -ScriptBlock {Get-Command}
Starting a background job for Get-Command

Comme vous travaillez avec des tâches en arrière-plan, comment vérifier si une tâche est toujours en cours d’exécution ou terminée ? Exécutez la cmdlet Get-Job pour obtenir toutes les tâches de votre session.

Changement de répertoires de travail avec Set-Location

Il y a des moments où vous devez changer de répertoires, comme lorsque vous exécutez un script ou un programme depuis un emplacement spécifique. Mais comment changez-vous de répertoires? Laissez la commande Set-Location vous aider avec cela. La commande Set-Location définit le répertoire de travail actuel sur le répertoire que vous spécifiez dans une commande.

Exécutez le code ci-dessous pour définir le répertoire de travail actuel sur C:\Users\hp\Desktop. Changez hp avec le nom d’utilisateur de votre ordinateur.

Set-Location C:\Users\hp\Desktop

Vous pouvez voir dans l’invite que C:\Users\hp\Desktop est maintenant le répertoire de travail.

Changing Working Directory

Vérification de l’existence des chemins via Test-Path

PowerShell peut afficher un bogue si vous essayez d’accéder à un fichier qui n’existe pas. Comment éviter cela? La commande Test-Path vous permet de vérifier si un chemin existe ou non, avec sa syntaxe intuitive.

Maintenant, créez un dossier sur le bureau, en l’appelant NouveauDossier.

Exécutez la commande Test-Path ci-dessous, suivie du chemin que vous préférez tester. Pour cet exemple, la commande teste si le chemin C:\Users\hp\Desktop\NouveauDossier existe.

Test-Path C:\Users\hp\Desktop\NewFolder

Ci-dessous, vous pouvez voir que la commande a renvoyé une valeur True car le chemin existe. Sinon, vous obtiendrez une sortie False.

Testing if the path exists

Conversion d’objet PowerShell en HTML avec ConvertTo-HTML

Si vous préférez une forme organisée pour vos données, convertissez vos données en HTML avec la cmdlet ConvertTo-Html. Fondamentalement, la commande prend en entrée le fichier de sortie que vous souhaitez convertir et le nom de fichier avec lequel vous souhaitez l’enregistrer.

Exécutez la commande ci-dessous pour collecter la liste de toutes les commandes PowerShell (Get-Command) en mémoire et convertissez (ConvertTo-Html) la liste en un fichier HTML nommé Command.html.

Le fichier HTML est enregistré sur votre bureau puisque vous avez précédemment changé le répertoire de travail. Pour enregistrer le fichier HTML dans un autre emplacement, spécifiez le chemin complet. Par exemple : Get-Command | ConvertTo-HTML > C:\Temp\Commands.html

# Crée un fichier Commands.html contenant toutes les commandes PowerShell
Get-Command | ConvertTo-Html > Commands.html

Exportation d’objets PowerShell au format CSV avec Export-CSV

Si vous pensez qu’un rapport au format CSV serait préférable plutôt qu’en HTML, utilisez la commande Export-CSV. Similaire à la commande ConvertTo-Html, la commande Export-CSV vous permet d’exporter des données vers un fichier CSV.

Exécutez la commande ci-dessous pour collecter une liste de commandes PowerShell (Get-Command) et exportez la liste sous forme de fichier CSV (Export-CSV) nommé Commands.csv.

Get-Command | Export-CSV Commands.csv

Tout comme avec la commande ConvertTo-Html, vous pouvez également spécifier un chemin d’exportation pour le fichier CSV comme ceci : Get-Command | Export-CSV C:\Temp\Commands.csv

Ouvrez le fichier Commands.csv, et vous verrez quelque chose de similaire à ce qui suit. Pas mal, non ?

Opening Exported Commands.csv in Microsoft Excel

Visualisation de toutes les commandes PowerShell disponibles avec Get-Command

La dernière commande PowerShell de la liste est la commande Get-Command. La commande Get-Command liste essentiellement toutes les commandes PowerShell disponibles que vous pouvez exécuter sous forme de tableau. Mais comme vous l’avez vu dans les exemples précédents, vous savez que ce n’est pas tout ce que la commande Get-Command peut faire.

Peut-être souhaitez-vous répertorier sélectivement les cmdlets ou les alias. Si tel est le cas, ajoutez le paramètre -CommandType à la commande Get-Command pour filtrer la sortie par le type de commande que vous spécifiez. La valeur du paramètre -CommandType peut être Alias, Cmdlet ou Fonction.

Exécutez la commande Get-Command ci-dessous pour répertorier uniquement les cmdlets (-CommandType Cmdlet) dont les noms commencent par ‘G’ (-Name G*).

Get-Command -Name G* -CommandType Cmdlet
Getting all cmdlets that start with the letter ‘G’

Une autre façon de filtrer la sortie de Get-Command est de la rediriger vers la commande Select-Object. Comme vous le savez, l’objet retourné par la commande Get-Command est sous forme de tableau. Dans ce tableau, les noms de colonnes représentent les propriétés que vous pouvez sélectionner à partir de l’objet.

Exécutez la commande Get-Command ci-dessous pour recueillir une liste de toutes les commandes PowerShell et filtrer l’affichage pour montrer la propriété de définition de chaque commande (Select-Object -Property Definition).

Get-Command | Select-Object -Property Definition
Property Definition

Conclusion

Ce tutoriel vous a donné un guide complet sur l’exécution des commandes PowerShell de base. À présent, vous devriez savoir comment rediriger de manière extensive et exécuter des commandes et éviter de rester bloqué en codage à tout moment.

Maintenant, comment pourriez-vous développer cette connaissance nouvellement acquise? Peut-être apprendre à écrire des commandes multi-lignes dans des scripts PowerShell sans tout mélanger?

Source:
https://adamtheautomator.com/basic-powershell-commands/