Utilisation de PowerShell pour les particuliers - Guide du débutant

Qui ne souhaite pas pouvoir être un sorcier et prononcer quelques mots pour que des choses magiques se produisent ? Eh bien(Well) , nous ne sommes pas en mesure de vous montrer comment devenir un sorcier, mais nous pouvons vous montrer comment faire un peu de magie informatique.

Si vous avez un ordinateur Windows avec Windows 7 dessus, vous avez PowerShell . De plus, si vous avez un ordinateur avec Windows 7 , veuillez le mettre à jour pour des raisons de sécurité.

Mais cet article n'est pas réservé aux utilisateurs de Windows . La dernière version de PowerShell est gratuite et peut être installée et utilisée sur les ordinateurs Mac et Linux .

C'est important car ce que vous apprenez sur PowerShell peut maintenant être utilisé sur presque tous les ordinateurs. Qui sait? Vous pourriez faire passer cette compétence au niveau supérieur et vous lancer dans une carrière en technologie(Information Technology) de l'information .

Qu'est-ce que PowerShell ?

La réponse high-tech de Microsoft est qu'il s'agit d'un "shell de ligne de commande" conçu spécialement pour les administrateurs système. « Cela semble(” Sounds) intimidant. Mais ce n'est pas le cas. Prenez-vous soin de votre ordinateur ? Oui, alors vous êtes l'administrateur système de votre maison.

Dites-vous à votre ordinateur quoi faire avec les clics et les frappes ? Oui, alors considérez le shell de ligne de commande comme une autre fenêtre dans laquelle vous tapez des choses pour dire à votre ordinateur quoi faire. Tu peux le faire.

PowerShell est comme un langage de programmation, mais pas aussi crypté que la plupart. Il se lit vraiment beaucoup comme l' anglais(English) normal , ce que Microsoft s'efforçait de faire pour qu'il puisse être repris par des non-programmeurs.

C'est une façon d'écrire quelques lignes de commandes, appelées script, pour que le système d'exploitation Windows fasse ce que vous voulez qu'il fasse. Ensuite, vous pouvez enregistrer ces lignes dans un fichier et l'exécuter en un clic ou le programmer pour qu'il s'exécute périodiquement.

Que pouvez-vous faire avec PowerShell ?

Le point de haut niveau de PowerShell est de pouvoir automatiser les tâches, de sorte que vous n'ayez pas à perdre votre temps à faire des choses banales à plusieurs reprises. Pour un administrateur système(Systems Administrator) professionnel , cela pourrait être quelque chose comme créer de nouveaux utilisateurs, générer des mots de passe pour eux et envoyer un e-mail avec les détails à leur nouveau superviseur.

Effectué manuellement, avec des clics et en tapant, ce processus peut prendre de 5 minutes à une heure ou plus. Avec les bons scripts, l' administrateur système(Systems Administrator) peut même ne pas avoir à faire quoi que ce soit.

Mais vous voulez savoir ce que vous pouvez faire avec PowerShell à la maison. À peu près tout ce que vous n'aimez pas faire encore et encore. Utilisez-le pour libérer de l'espace sur votre disque dur en supprimant les fichiers temporaires et journaux dont vous n'avez pas besoin.

Mettez un couvre-feu sur l'ordinateur de votre enfant. Renommez(Rename) ou organisez un tas de fichiers. C'est la beauté de PowerShell . Presque(Almost) tout ce que vous pouvez faire sur votre ordinateur, vous pouvez créer un script PowerShell pour automatiser et exécuter en un clic ou selon un calendrier.

Comment utiliser PowerShell ?

La façon la plus simple de travailler avec PowerShell est dans l' environnement de script intégré PowerShell (ISE)(PowerShell Integrated Scripting Environment (ISE)) . Vous pouvez le trouver en cliquant sur Démarrer(Start) et en tapant powershell ise dans la barre de recherche de Windows 10 . Vous devriez le voir comme indiqué ci-dessous.

Pour la première fois que nous l'utilisons, nous allons l'exécuter en tant qu'administrateur(Administrator) . Pour ce faire, vous devez d'abord disposer des droits d'administrateur sur votre ordinateur. Dans votre menu Démarrer(Start Menu) , faites un clic droit sur PowerShell ISE , puis cliquez sur Exécuter en tant qu'administrateur(Run as Administrator) .

Vous pouvez obtenir une fenêtre contextuelle d'avertissement de contrôle d'accès utilisateur(User Access Control) ( UAC ) vous demandant si vous êtes sûr de vouloir le faire. Cliquez sur Oui(Yes) .

Vous regardez maintenant l' IDE PowerShell(PowerShell IDE) . Le volet supérieur de la fenêtre (1) est le volet de script. C'est ici que vous écrirez votre script. Le volet inférieur de la fenêtre (2) est la zone de la console. Lorsque vous testez votre script, vous verrez la sortie dans ce volet.

C'est également là que vous verrez des messages d'erreur et autres qui vous aideront à corriger et à améliorer vos scripts. Le volet sur le côté droit de la fenêtre (3) est le module complémentaire de commande. Considérez-le comme un dictionnaire de toutes les commandes PowerShell à votre disposition.

PowerShell est configuré pour n'exécuter aucun script autre que ceux qui font déjà partie de Windows . Vous devrez le modifier pour pouvoir exécuter vos propres scripts.

Dans la fenêtre de script, copiez et collez ce qui suit :

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

La partie Set-ExecutionPolicy de celui-ci s'appelle une applet de commande (commandlet prononcé). Les cmdlets sont des choses puissantes. Considérez(Think) -les comme de courtes commandes que vous pouvez donner à Windows , et Windows fera un tas de choses plus compliquées pour satisfaire votre commande.

Une analogie serait de dire à votre enfant de nettoyer sa chambre. Court(Short) et précis. Si votre enfant connaît bien le nettoyage des chambres, il ira faire son lit, mettra son linge dans le panier, rangera ses jouets et ses livres, et peut-être même passera l'aspirateur sur le sol. Ils comprennent que l'applet de commande Clean-YourRoom(Clean-YourRoom) signifiait tout cela.

En haut de la fenêtre, vous verrez une pointe de flèche verte. Cliquez(Click) dessus pour exécuter la commande.

La partie -ExecutionPolicy indique à (-ExecutionPolicy)Set-ExecutionPolicy quelle politique définir. C'est un paramètre. Il dit : « Je veux que vous travailliez dans le cadre de ces directives et que vous fassiez spécifiquement ceci. Il lui dit d'utiliser la politique spécifique de RemoteSigned .

La politique RemoteSigned stipule que PowerShell ne peut pas exécuter ou exécuter un script téléchargé à partir d' Internet à moins qu'il n'ait été signé par un éditeur de confiance.

D'une manière détournée, il indique à PowerShell qu'il est possible d'exécuter n'importe quel script créé localement, car ceux-ci n'ont pas besoin d'être signés par un éditeur de confiance distant. Désormais, votre script PowerShell pourra exécuter n'importe quel script que vous écrivez sur votre ordinateur.

Regardons un script pour supprimer les fichiers temporaires. Il n'est pas aussi puissant ou complet que CCleaner , mais CCleaner est livré avec son propre ensemble de problèmes.

Utilisez PowerShell(Use PowerShell) pour créer de l'espace(Create Space) sur votre disque dur(Your Hard Drive)

Nous décomposerons ce script, ligne par ligne, afin que vous puissiez voir comment cela fonctionne. À la fin, le script sera affiché complètement afin que vous puissiez le copier et le coller si vous le souhaitez.

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

Tout ce qui est précédé d'un signe dollar est un nom de variable. Considérez-le comme un portefeuille dans lequel mettre des objets de valeur. Le portefeuille(Wallet) nous rappelle le signe du dollar, les objets de valeur sonnent comme des variables, nous nous en souviendrons également. Nous créons un portefeuille, ou variable, nommé $TempFileLocation . Le signe égal indique à PowerShell ce qu'il faut mettre dans cette variable.

Dans ce cas, nous mettons à l'emplacement d'un emplacement de fichiers temporaires de Windows - C:\Users\username\AppData\Local\Temp\* . Nous faisons cela pour deux raisons ; c'est un emplacement où il est toujours sûr de supprimer des fichiers, et nous allons l'utiliser pour dire à PowerShell où il doit aller pour supprimer des fichiers.

Là où il est écrit nom d'utilisateur à cet endroit, remplacez-le par votre nom d'utilisateur. C'est le nom d'utilisateur que vous utilisez pour vous connecter à votre ordinateur. L'astérisque (*) à la fin est un joker. Ce qu'il représente, c'est tout ce qui se trouve dans le dossier Temp , car tout ce qui se trouve dans le dossier Temp est temporaire et nous voulons le supprimer.

Les guillemets autour de l'emplacement sont également importants. Cela indique à PowerShell que ce qu'il y a dedans est une chaîne. Considérez(Think) la chaîne comme une chaîne de lettres et de caractères. S'il s'agissait de nombres ordinaires, nous n'utiliserions pas les guillemets.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Nous créons une autre variable. Cette fois, nous allons utiliser une commande pour trouver quelque chose à mettre dans la variable $TempFile .

Get-ChildItem 

Une autre chose que vous remarquerez à propos des applets de commande comme Get-ChildItem est qu'elle est totalement lisible. Voyez comment le premier mot est un verbe? Les applets(Cmdlets) de commande commencent toutes par des mots d'action, vous savez donc immédiatement ce qu'elles font. ChildItem est composé de deux noms.

La deuxième partie de l'applet de commande va toujours nous dire à quoi PowerShell va appliquer l'action. ChildItem désigne tous les enfants d'un emplacement parent. Cela revient à dire obtenir tous les fichiers qui se trouvent dans un dossier, les fichiers étant les enfants et le dossier étant le parent.

De quoi l'applet de commande obtient-elle les éléments enfants ? Tout dans la variable $TempFileLocation . PowerShell va aller à l'emplacement que nous avons mis dans $ TempFileLocation plus tôt et obtenir tous les éléments enfants qui s'y trouvent. Ensuite, il les placera dans la variable $TempFile .

Alors, qu'en est-il de la partie -Recurse ? Cela dit à Get-ChildItem de parcourir tout ce qui se trouve à cet endroit. Ne vous contentez pas d'aller chercher les fichiers immédiatement dans le dossier parent. S'il y a des dossiers dans ce dossier, récupérez également tous leurs enfants, ainsi que leurs enfants et ainsi de suite. Nous allons tous les avoir.

$TempFileCount = ($TempFile).count

Oui, nous créons une troisième variable appelée $TempFileCount , et nous allons mettre un nombre dans cette variable. Où est le numéro ? Eh bien, ( $TempFile).count va nous donner ce nombre. Vous avez probablement compris que la partie .count va faire le décompte de tous les fichiers que nous venons de stocker dans $ TempFile .

Pourquoi avons-nous fait cela ? Principalement parce qu'il est agréable de savoir combien de fichiers inutiles nous nettoyons avec le reste du script afin que nous puissions dire à quel point il était efficace.

if($TempFileCount -eq 0)

Maintenant, nous mettons en place une instruction conditionnelle. Vous pouvez voir qu'il demande "si". Si quoi? Si la chose entre parenthèses est vraie ou fausse. Les parenthèses sont importantes, sinon le Si ne sait pas quoi comparer. Ici, il demande si le nombre que nous avons stocké dans $TempFileCount est égal à zéro.

Le -eq est le raccourci pour égal. C'est un type d'opérateur de comparaison. C'est comme dire à vos enfants : "Si votre chambre est propre, super, nous allons faire quelque chose..." Cette déclaration dit si le nombre qui a été stocké dans $ TempFileCount est égal à zéro do la chose suivante.

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

C'est ce qui se passera si $TempFileCount vaut zéro. Les accolades sont importantes. Ils disent à PowerShell de ne faire que ce qu'ils contiennent si $ TempFileCount est égal à zéro.

Il écrira à l'hôte, ou à l'écran, "Il n'y a pas de fichiers dans le dossier C:\Users\username\Appdata\Local\Temp\*". Le paramètre à la fin, - ForegroundColor indique à PowerShell de rendre le texte vert. Cela facilite simplement la distinction d'un message d'erreur qui est normalement rouge.

Else

Vous savez ce que signifie d'autre. C'est la partie "Votre chambre a intérêt à être propre sinon..." pour vérifier si votre enfant a nettoyé sa chambre. C'est ce qui se passera si $TempFileCount n'est pas nul.

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

Cela dit aller à l'emplacement actuel stocké dans $TempFile . La ligne verticale qui suit s'appelle un tuyau. Il fonctionne un peu comme un tuyau réel car il indique à PowerShell de canaliser le contenu de $ TempFile dans l'applet de commande, comme s'il s'agissait d'eau acheminée vers une machine à laver. Ensuite, l'applet de commande Remove-Item fait ce qu'elle dit ; il supprime tout ce qui se trouve à cet endroit.

Le paramètre -WhatIf est très important à ce stade. Il indique à PowerShell d'exécuter la commande, mais essayez-la uniquement, ne supprimez rien. Montrez-nous simplement(Just) ce qui se passerait si nous faisions vraiment cela.

Cela vous permet de tester des commandes sans rien changer sur votre ordinateur. Laissez le -WhatIf là jusqu'à ce que vous soyez sûr que le script va faire ce que vous voulez qu'il fasse et rien d'autre. Ensuite, supprimez-le simplement et le script fera son travail.

Le paramètre -Confirm:$false empêche le script de vous demander si vous voulez vraiment supprimer le fichier. Vous savez ce que fait -Recurse . -Force signifie supprimer cette chose quoi qu'il arrive. -WarningAction est défini sur SilentlyContinue .

Cela empêche le script de vous avertir de ce que vous supprimez. -ErrorAction est défini sur SilentlyContinue afin que s'il y a une sorte d'erreur dans le processus, il continue à avancer.

Nous sommes maintenant à la dernière ligne.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Tout comme Write-Host l'a fait la première fois, il va afficher la phrase suivante, donc nous savons ce qui s'est passé. Il nous dira combien de fichiers ont été supprimés du dossier qu'il vient de traiter et le fera en vert pour le rendre facile à repérer.

Regardons le script dans son ensemble :

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

Vous pouvez copier et coller ceci dans votre PowerShell ISE et l'enregistrer sous quelque chose comme delete-TemporaryFiles.ps1 . Vous pouvez également vous en tenir à la convention de dénomination des applets de commande maintenant que vous les comprenez.

Si le code ne fonctionne pas pour vous pour une raison quelconque, vous pouvez également télécharger le script PowerShell que nous avons créé et simplement l'exécuter. Décompressez(Just) -le d'abord pour afficher le fichier de script.

Chaque fois que vous souhaitez exécuter ce script, faites un clic droit dessus et choisissez Exécuter avec PowerShell(Run with PowerShell) . Une console PowerShell apparaîtra pendant une seconde ou deux, pendant que votre script fait son travail, puis disparaîtra s'il n'y a pas d'erreurs.

Où puis-je en savoir plus sur PowerShell ?

Cela semble beaucoup ! Pour votre premier script PowerShell , c'est un peu juste. Si vous êtes arrivé jusqu'ici, applaudissez-vous. Vous avez beaucoup appris aujourd'hui, mais maintenant vous voulez en savoir plus. C'est super !

Il existe de nombreuses ressources sur Internet pour en savoir plus sur PowerShell . Un bon point de départ est notre article, « Générer une liste de programmes de démarrage via la ligne de commande ou PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) ». Alors consultez ces autres ressources :



About the author

Je suis un ingénieur logiciel et blogueur avec près de 10 ans d'expérience dans le domaine. Je me spécialise dans la création de critiques d'outils et de didacticiels pour les plates-formes Mac et Windows, ainsi que dans la fourniture de commentaires d'experts sur des sujets de développement de logiciels. Je suis également conférencier et instructeur professionnel, ayant donné des présentations lors de conférences technologiques à travers le monde.



Related posts