PowerShell vous donne tout le contrôle dont vous avez besoin sur votre PC Windows, et il est facile à apprendre. Laissez tomber l’invite de commande et utilisez les commandes Windows PowerShell pour automatiser les tâches administratives répétitives.
Apprendre PowerShell vous apprendra également à gérer la plupart des tâches administratives de Linux à l’intérieur du shell bash. PowerShell est similaire à ce que vous trouvez dans la plupart des distributions Linux.
Table des matières
Qu’est-ce que PowerShell ?
Windows PowerShell est une interface de ligne de commande et un langage de script développé par Microsoft pour les administrateurs système. Mais il n’est pas nécessaire d’être administrateur ou programmeur pour l’utiliser car il est beaucoup plus simple que les autres langages de programmation. Il est similaire à l’anglais ordinaire, et tout le monde peut le comprendre et l’utiliser pour administrer ses ordinateurs.
Les commandes utilisées dans Windows PowerShell sont appelées "cmdlets". Elles vous permettent d’activer une action spécifique, ou une série d’actions, sur votre ordinateur. Ces actions peuvent être simples, comme la connexion à un réseau sans fil, ou plus complexes, comme l’automatisation de tâches répétitives spécifiques.
Pour ouvrir PowerShell, appuyez sur le bouton Démarrer, tapez "powershell" dans la boîte de recherche, puis sélectionnez Windows PowerShell. L’interface de ligne de commande s’ouvre alors, et vous pouvez commencer à taper des commandes.
Dans cet article, nous allons passer en revue dix des commandes PowerShell les plus utiles et les plus simples.
1. Get-Help
La cmdlet Get-Help est un excellent point de départ dans PowerShell. Elle donne un aperçu de ce que vous pouvez faire et est également très utile lorsque vous avez besoin de plus d’informations sur une cmdlet particulière.
Il suffit d’ouvrir la fenêtre PowerShell et de taper Get-Help. Cela ouvrira un aperçu complet qui vous apprendra ce qu’est PowerShell et vous permettra de comprendre ses fonctionnalités et sa structure. Vous pouvez également accéder au Web pour des fichiers d’aide plus avancés directement à travers l’interface. Vous pouvez télécharger ces fichiers pour une utilisation ultérieure.
Mais ce n’est pas la fin de la commande get-help. Type:
Get-Help *
PowerShell affichera la liste de tous les cmdlets que vous pouvez utiliser à ce moment-là. La liste sera probablement énorme, et vous n’avez pas besoin d’apprendre toutes les cmdlets affichées. Mais n’hésitez pas à les lire et à explorer toutes les possibilités qui s’offrent à vous.
Type :
Get-Help
Vous n’avez pas besoin des parenthèses, tapez simplement le nom de la commande qui vous intéresse et cette cmdlet vous donnera les informations de base la concernant. Pour une explication encore plus détaillée d’une commande, tapez :
Get-Help -Full
Si vous avez besoin d’un exemple de l’utilisation d’un certain type de commande :
Get-Help -Exemple
2. Get-Command
Vous souhaitez récupérer rapidement des informations sur une commande spécifique ou un ensemble de commandes ? Le cmdlet Get-Command s’en chargera pour vous. Il existe de nombreuses options dans Get-Command, mais vous, en tant qu’utilisateur de base de PowerShell, n’avez pas besoin de la plupart d’entre elles. Voici quelques cmdlets de base qui vous seront utiles, notamment pour naviguer parmi les commandes disponibles.
Si vous voulez une liste de cmdlets spécifiques du même type :
Get-Command –
Par exemple, cette phrase complexe ordonnera à votre ordinateur d’afficher une liste de toutes les commandes de type cmdlet disponibles et de les trier par ordre alphabétique du nom dans leur nom :
Get-Command -Type Cmdlet | Sort-Object -Property Noun| Format-Table -GroupBy Noun
Il s’agit d’un excellent exemple de commande plus complexe qui permet à PowerShell d’exécuter une tâche compliquée. Une fois que vous aurez compris la syntaxe, vous verrez que l’utilisation de PowerShell est souvent le moyen le plus rapide et le plus simple d’effectuer certaines tâches sur votre ordinateur.
Si vous voulez trouver une commande spécifique par son nom, tapez simplement :
Get-Command -Name
Si vous ne connaissez pas le nom exact de la commande que vous recherchez, mais que vous en connaissez une partie, vous pouvez taper :
Get-Command -Name -UseFuzzyMatching
Cette cmdlet demandera à votre ordinateur de trouver les commandes qui correspondent étroitement à ce que vous avez tapé dans le champ . Vous pouvez également utiliser cette cmdlet si vous êtes enclin aux fautes d’orthographe et que vous ne voulez pas vous embêter à vous corriger en permanence.
3. Get-Content
Si vous voulez voir le contenu d’un fichier, utilisez la cmdlet Get-Content. Vous devrez spécifier l’emplacement exact dudit fichier afin que votre ordinateur puisse le trouver.
Dans l’exemple ci-dessus, vous pouvez voir le contenu d’un fichier texte de test créé à cet effet. Il s’agit d’une commande simple, mais si vous savez ce qu’elle fait, vous pouvez la combiner avec d’autres commandes et effectuer des tâches vraiment puissantes via Windows PowerShell.
4. Get-Process
La cmdlet Get-Process vous donnera des informations sur les processus en cours d’exécution sur votre ordinateur. Vous pouvez voir l’utilisation de la mémoire, les cycles CPU, l’ID du processus et d’autres attributs.
Si vous ajoutez le nom du processus à cette cmdlet, vous pouvez voir les informations sur un processus spécifique. Par exemple, si vous souhaitez obtenir des informations sur le processus d’application Discord, il vous suffit de taper Get-Process Discord.
Vous pouvez démarrer ou arrêter des processus via PowerShell en remplaçant simplement le préfixe "Get" de la syntaxe. Pour démarrer un processus, tapez :
Démarrer le processus
Pour arrêter un processus, tapez :
Arrêter le processus
5. Get-Service
En tant qu’administrateur système, vous pouvez trouver la cmdlet Get-Service très utile. Cette simple cmdlet affiche tous les services en cours d’exécution sur votre système et vous permet de les contrôler. Cela signifie que vous pouvez voir tous les programmes qui travaillent actuellement pour faire fonctionner votre ordinateur.
Vous pouvez maintenant utiliser le nom du service pour le contrôler. Utilisez des commandes telles que Restart-Service pour décoller ceux qui sont gelés, Stop-Service pour les arrêter complètement, et Start-Service pour les redémarrer.
6. Get-Item
Si vous avez besoin d’un élément spécifique, il peut être plus rapide de le trouver via PowerShell qu’en utilisant une barre de recherche intégrée à votre système d’exploitation. C’est particulièrement pratique si vous connaissez l’emplacement du fichier dont vous avez besoin. Il suffit d’utiliser la commande de cette manière :
Get-Item C :
Vous obtiendrez ainsi la liste des fichiers présents sur le disque dur "C :". Vous pouvez être encore plus spécifique et rechercher dans tous les répertoires sous le profil de l’utilisateur ou aller plus loin dans les répertoires "documents" ou "téléchargements". Pour ce faire, tapez :
Get-Tem C:\N-users\N-N-{i1}.
Si vous devez récupérer un élément enfant d’un conteneur, tel qu’un répertoire système, vous pouvez utiliser la cmdlet Get-ChildItem. Cette commande vous montrera tous les fichiers et répertoires contenus dans ce conteneur. Comme avec la cmdlet Get-Item, vous devrez spécifier le chemin d’accès du conteneur.
Pour supprimer des éléments, vous pouvez remplacer le suffixe "Get" par "Remove". Cela vous permettra de tout supprimer, des fichiers et des dossiers aux clés de registre et aux fonctions. Tapez Remove-Item . Vous pouvez élaborer cette cmdlet et supprimer uniquement les fichiers cachés et en "lecture seule" ou supprimer des éléments de dossiers et sous-dossiers spécifiques.
7. ConvertTo-Html
Cette commande vous aidera à convertir un objet .NET en un fichier HTML qui pourra être affiché dans les navigateurs Web. Il s’agit d’une cmdlet de sortie, ce qui signifie qu’elle fonctionne parfaitement avec d’autres cmdlets. Il suffit de l’ajouter à la fin d’autres cmdlets et d’inclure un chemin de fichier spécifique.
Par exemple, si vous voulez créer un fichier HTML qui affiche le nom, le chemin et la société de tous les processus en cours d’un ordinateur local, tapez:
Get-Process | ConvertTo-Html -Property Name, Path, Company -Title "Process Information" | Out-File filename.htm
Remplacez nomfichier.htm par le nom de fichier de votre choix.
Pour ouvrir le fichier créé, utilisez le cmdlet Invoke-Item plus . Le contenu devrait ressembler à l’image ci-dessous.
8. Set-Executionpolicy
Si vous souhaitez exécuter des scripts PowerShell locaux, vous devez modifier la politique d’exécution de PowerShell lui-même. Sur les ordinateurs Windows, la politique d’exécution est toujours restreinte, et vous devrez la changer en RemoteSigned ou Unrestricted. Sur les ordinateurs non Windows, tels que Linux ou Mac, la politique d’exécution est généralement définie sur Unrestricted et ne peut être modifiée.
Si vous voulez en savoir plus sur la politique d’exécution de PowerShell, tapez simplement :
aide Set-ExecutionPolicy
Le PowerShell affichera les fichiers d’aide concernant la politique d’exécution sur votre ordinateur ou vous avertira s’il n’y en a pas. Mais il vous fournira également un lien que vous pourrez suivre et lire en ligne.
Pour définir la politique sur RemoteSigned, il suffit de taper :
Politique d’exécution à distance (RemoteSigned)
Pour le régler sur le type "Unrestricted" :
Politique d’exécution sans restriction (Set-Executionpolicy Unrestricted)
Pour vérifier le paramètre actuel de la politique d’exécution, tapez :
Get-Executionpolicy
Comme les politiques d’exécution font partie des stratégies de sécurité de PowerShell, il vous demandera de confirmer la modification. Tapez Y uniquement si vous êtes sûr de vouloir continuer.
9. Select-Object
Cette commande est utilisée pour sélectionner des objets et des ensembles d’objets, des objets uniques et des objets situés à une position spécifique dans un tableau. Il existe différents paramètres que vous pouvez utiliser pour spécifier les objets que vous souhaitez sélectionner. Parmi eux, on trouve les propriétés, les valeurs numériques et les objets d’entrée spécifiques.
Pour sélectionner des objets par attribut de propriété, vous devez spécifier les attributs tels que le nom, l’ID ou le CPU. Vous pouvez même regrouper les attributs, mais vous devez les séparer par des virgules lorsque vous tapez la commande. Pour voir la cmdlet Select-Object en action, tapez :
Get-Process | Select-Object -Property ProcessName, Id, CPU
Le PowerShell va lister tous les processus en cours et leurs attributs, comme indiqué ci-dessous.
Vous pouvez maintenant utiliser la commande -EpandProperty pour obtenir des informations détaillées sur l’attribut spécifique. Si vous voulez des détails sur la propriété Modules de l’attribut ProcessName’s type :
Get-Process Chrome | Select-Object -Property ProcessName -ExpandProperty Modules | Format-list
La sortie "Format-list" de la commande est là pour rendre les résultats formatés et lisibles.
10. Export-CSV
Parfois, les commandes PowerShell produisent de longues listes, comme nous l’avons vu avec la cmdlet Get-Command. Les longues listes et les nombreuses informations sont difficiles à lire, et vous voudrez les présenter de manière plus organisée. Pour ce faire, exportez toutes les données dans un fichier CSV. Vous pouvez le faire directement dans PowerShell en utilisant la fonction Export-CSV.
Par exemple, nous avons vu que la cmdlet Get-Command nous donne une longue liste de toutes les cmdlets disponibles que nous pouvons utiliser dans PowerShell à ce moment-là. Vous pouvez combiner la commande Get-Command et Export-CSV pour créer une liste détaillée avec des valeurs séparées par des virgules, telles que le nom, la source et la version, que des applications comme Excel peuvent reconnaître.
Pour ce faire, tapez la commande suivante dans l’invite de commande PowerShell. Notez que vous pouvez définir le chemin d’accès de votre choix et que vous pouvez nommer votre fichier différemment :
Get-Command | Select Name, Source, Version | export-csv D:AllCommands.csv
Vous pouvez maintenant ouvrir la liste dans Excel, et vous devriez voir quelque chose de similaire à l’image suivante.