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
.

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.

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
.

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.

Lorsqu’un processus se fige et ralentit ton ordinateur, arrête le processus en redirigeant la cmdlet
Get-Process
vers la cmdletStop-Process
. Par exemple : exécuteGet-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.

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écutezGet-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.

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

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.

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.
Vous pouvez voir dans l’invite que C:\Users\hp\Desktop est maintenant le répertoire de travail.

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.
Ci-dessous, vous pouvez voir que la commande a renvoyé une valeur True car le chemin existe. Sinon, vous obtiendrez une sortie False.

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

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*
).

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

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/