Partager via


Spécification du langage Windows PowerShell 3.0

Note éditoriale

Important

La spécification du langage Windows PowerShell 3.0 a été publiée en décembre 2012 et est basée sur Windows PowerShell 3.0. Cette spécification ne reflète pas l’état actuel de PowerShell. Il n’existe aucun plan de mise à jour de cette documentation pour refléter l’état actuel. Cette documentation est présentée ici pour référence historique.

Le document de spécification est disponible en tant que document Microsoft Word à partir du Centre de téléchargement Microsoft à l’adresse : https://www.microsoft.com/download/details.aspx?id=36389 ce document Word a été converti pour présentation ici sur Microsoft Learn. Pendant la conversion, certaines modifications éditoriales ont été apportées pour prendre en charge la mise en forme de la plateforme Docs. Certaines fautes de frappe et erreurs mineures ont été corrigées.

1. Introduction

PowerShell est un shell de ligne de commande et un langage de script, conçu spécialement pour les administrateurs système.

La plupart des interpréteurs de commandes fonctionnent en exécutant une commande ou un utilitaire dans un nouveau processus et en présentant les résultats à l’utilisateur sous forme de texte. Ces interpréteurs de commandes ont également des commandes intégrées qui s’exécutent dans le processus de l’interpréteur de commandes. Étant donné qu’il existe peu de commandes intégrées, de nombreux utilitaires ont été créés pour les compléter. PowerShell est très différent. Au lieu de traiter du texte, l’interpréteur de commandes traite les objets. PowerShell inclut également un grand ensemble de commandes intégrées avec chacune ayant une interface cohérente et celles-ci peuvent fonctionner avec des commandes écrites par l’utilisateur.

Un objet est une entité de données qui a des propriétés (c’est-à-dire des caractéristiques) et des méthodes (c’est-à-dire des actions qui peuvent être effectuées sur l’objet). Tous les objets du même type ont le même jeu de propriétés et méthodes de base, mais chaque instance d’un objet peut avoir des valeurs de propriété différentes.

L’un des principaux avantages que présente l’utilisation d’objets est qu’elle permet de créer beaucoup plus facilement des pipelines de commandes, c’est-à-dire d’écrire la sortie d’une commande dans une autre commande en tant qu’entrée. (Dans un environnement de ligne de commande traditionnel, la sortie de texte d’une commande doit être manipulée pour répondre au format d’entrée d’un autre.)

PowerShell inclut un langage de script très riche qui prend en charge les constructions pour la boucle, les conditions, le contrôle de flux et l’affectation de variables. Ce langage a des caractéristiques de syntaxe et des mots clés similaires à ceux utilisés dans le langage de programmation C# (§C.).

Il existe quatre types de commandes dans PowerShell : scripts, fonctions et méthodes, applets de commande et commandes natives.

  • Un fichier de commandes est appelé script. Par convention, un script a une extension de nom de fichier de .ps1. Le niveau le plus élevé d’un programme PowerShell est un script, qui, à son tour, peut appeler d’autres commandes.

  • PowerShell prend en charge la programmation modulaire via des procédures nommées. Une procédure écrite dans PowerShell est appelée fonction, tandis qu’une procédure externe mise à disposition par l’environnement d’exécution (et généralement écrite dans un autre langage) est appelée méthode.

  • Une cmdlet (prononcé « command-let ») est un outil en ligne de commande simple à tâche unique. Bien qu’une applet de commande puisse être utilisée par elle-même, la puissance totale des applets de commande est réalisée lorsqu’elles sont utilisées conjointement pour effectuer des tâches complexes.

  • Une commande native fait partie de l’environnement hôte.

Chaque fois que l’environnement d’exécution PowerShell commence l’exécution, il commence ce qu’on appelle une session . Les commandes s’exécutent ensuite dans le contexte de cette session.

Cette spécification définit le langage PowerShell, les applets de commande intégrées et l’utilisation d’objets via le pipeline.

Contrairement à la plupart des interpréteurs de commandes, qui acceptent et retournent du texte, Windows PowerShell est basé sur le Common Language Runtime (CLR) du .NET Framework et sur les objets .NET Framework.