Articles

Qu’est-ce que PowerShell?

  • 05/22/2020
  • 5 minutes pour lire
    • j
    • s
    • s

PowerShell est une croix-plate-forme d’automatisation des tâches et la gestion de la configuration cadre, constitué de l’oof shell de ligne de commande et un langage de script. Contrairement à la plupart des shells, qui acceptent et renvoient du texte,PowerShell est construit au-dessus du .Net Common Language Runtime (CLR), et accepte et renvoie.NETobjects., Ce changement fondamental apporte des outils et des méthodes entièrement nouveaux pour l’automatisation.

la sortie est basée sur des objets

Contrairement aux interfaces de ligne de commande traditionnelles, les applets de commande PowerShell sont conçues pour traiter objects.An l’objet est une information structurée qui est plus que la chaîne de caractères apparaissant sur l’écran. Sortie de commande comporte toujours des informations supplémentaires que vous pouvez utiliser si vous en avez besoin.

Si vous avez utilisé des outils de traitement de texte pour traiter des données dans le passé, vous constaterez qu’ils se comportent différemment lorsqu’ils sont utilisés dans PowerShell., Dans la plupart des cas, vous n’avez pas besoin d’outils de traitement de texte pour extraire des informations spécifiques. Vous accédez directement à des parties des données à l’aide de PowerShell objectsyntax standard.

la famille de commandes est extensible

Les Interfaces telles quecmd.exe ne vous permettent pas d’étendre directement le jeu de commandes intégré. Vous pouvez créer des outils de ligne de commande externes qui s’exécutent dans cmd.exe. Mais ces outils externesn’ont pas de services, tels que L’intégration D’aide. cmd.exe ne sait pas automatiquement que ces outils externes sont des commandes valides.,

Les commandes dans PowerShell sont connues sous le nom de cmdlets. Vous pouvez utiliser chaque applet de commande séparément, mais leurla puissance est réalisée lorsque vous les combinez pour effectuer des tâches complexes. Comme beaucoup de shells, PowerShell donnevous accédez au système de fichiers sur l’ordinateur. Les fournisseurs PowerShell vous permettent d’accéder à d’autres magasins de données, tels que le registre et les magasins de certificats, aussi facilement que vous accédez au système de fichiers.

Vous pouvez créer votre propre applet de commande et modules de fonction en utilisant du code compilé ou des scripts. Les Modules peuvent ajoutercmdlets et fournisseurs au shell., PowerShell prend également en charge les scripts analogues aux scripts UNIXshell et les fichiers batch cmd.exe.

prise en charge des alias de commande

PowerShell prend en charge les Alias pour faire référence aux commandes par d’autres noms. L’alias Permet aux utilisateurs ayant une expérience dans d’autres shells d’utiliser des noms de commandes communs qu’ils connaissent déjà pour des opérations similaires dans PowerShell.

L’Alias associe un nouveau nom à une autre commande. Par exemple, PowerShell a une fonction interne nommée Clear-Host qui efface la fenêtre de sortie., Vous pouvez taper la balise cls ouclear alias à l’invite de commande. PowerShell interprète ces Alias et exécute la fonctionClear-Host.

Cette fonctionnalité aide les utilisateurs à apprendre PowerShell. Tout d’abord, la plupart des utilisateurs cmd.exe et Unix ont un largerepertoire de commandes que les utilisateurs connaissent déjà par leur nom. Les équivalents PowerShell peuvent ne pas produire de résultats identiques. Cependant, les résultats sont suffisamment proches pour que les utilisateurs puissent travailler sans connaître le nom de la commande PowerShell., La « mémoire musculaire » est une autre source majeure de frustration lors de l’apprentissage d’une nouvellecellule de commande. Si vous utilisez cmd.exe depuis des années, vous pouvez taper par réflexe la commande cls pour effacer l’écran. Sans l’alias pour Clear-Host, vous recevez un message d’erreur et ne saurez pas ce qu’il faut faire pour effacer la sortie.

PowerShell gère l’entrée et l’affichage de la console

lorsque vous tapez une commande, PowerShell traite toujours l’entrée de ligne de commande directement. PowerShell formate également la sortie que vous voyez à l’écran., Cette différence est significative car elle réduit le travail requis pour chaque applet de commande. Il garantit que vous pouvez toujours faire les choses de la même manière avec n’importe quelle applet de commande. Les développeurs d’applet de commande n’ont pas besoin d’écrire du code pour analyser les arguments de ligne de commande ou formater la sortie.

Les outils de ligne de commande traditionnels ont leurs propres schémas pour demander et afficher de l’aide. Somecommand-utiliser les outils de ligne de /? pour déclencher l’affichage de l’Aide; d’autres utilisent la balise -?, /H, ou encore//., Certains afficheront L’aide dans une fenêtre GUI, plutôt que dans l’affichage de la console. Si vous utilisez le paramètre wrong, l’outil peut ignorer ce que vous avez tapé et commencer à exécuter une tâche automatiquement.Étant donné que PowerShell analyse et traite automatiquement la ligne de commande, le paramètre -? signifie toujours « montrez-moi L’aide pour cette commande ».

Remarque

Si vous exécutez une application graphique en PowerShell, la fenêtre de l’application s’ouvre.PowerShell n’intervient que lors du traitement de l’entrée de ligne de commande que vous fournissez ou de l’applicationoutput retourné à la fenêtre de la console., Il n’affecte pas le fonctionnement interne de l’application.

PowerShell a un pipeline

les Pipelines sont sans doute le concept le plus précieux utilisé dans les interfaces de ligne de commande. Lorsqu’ils sont utilisés correctement, les pipelines réduisent l’effort d’utilisation de commandes complexes et facilitent la visualisation du flux de travail. Chaque commande d’un pipeline passe sa sortie, élément par élément, à la prochaine commande. Commandsdon pas besoin de gérer plus d’un élément à la fois. Le résultat est une consommation de ressources réduite etla capacité d’obtenir une sortie immédiatement.,

La notation utilisée pour les pipelines est similaire à la notation utilisée dans d’autres coquilles. À première vue, ilpeut ne pas être évident que les pipelines sont différents dans PowerShell. Bien que vous voyiez du texte à l’écran,PowerShell canalise des objets, pas du texte, entre les commandes.,

par exemple, si vous utilisez l’applet de commande Out-Host pour forcer un affichage page par page de la sortie fromanother, la sortie ressemble au texte normal affiché à l’écran, divisé enopages:

Get-ChildItem | Out-Host -Paging

la pagination réduit également l’utilisation du 8587d067a1″> applet de commande lorsqu’elle contient une page complète prête à s’afficher. Les applets de commande qui la précèdent dans le pipeline mettent en pause l’exécutionjusqu’à ce que la page suivante de la sortie soit disponible.,

objets dans le pipeline

lorsque vous exécutez une applet de commande dans PowerShell, vous voyez une sortie de texte car il est nécessaire de représenter les objets sous forme de texte dans une fenêtre de console. La sortie de texte peut ne pas afficher toutes les propriétés de theobject en cours de sortie.

par exemple, considérons l’applet de commandeGet-Location. La sortie de texte est un résumé des informations, Pas une représentation complète de l’objet retourné par Get-Location. L’en-tête dans la sortie est ajoutépar le processus qui formate les données pour l’affichage à l’écran.,

Get-Location
Path----C:\

la Tuyauterie de la sortie de la Get-Member applet de commande affiche des informations sur l’objet retourné parGet-Location.

Get-Location | Get-Member

Get-Location renvoie une PathInfo objet qui contient le chemin d’accès actuel et d’autres informations.

système D’aide intégré

semblable à Unixman pages, PowerShell comprend des articles d’aide détaillés qui expliquent PowerShellconcepts et syntaxe de commande., Utilisez L’applet de commande Get-Help pour afficher ces articles à la commandprompt ou pour afficher les versions les plus récentes de ces articles dans PowerShell documentationonline.

pour en savoir plus sur PowerShell, consultez la section apprentissage PowerShell de ce site.