Partager via


4. Types

Dans PowerShell, chaque valeur a un type, et les types appartiennent à l’une des deux catégories principales : types valeur et types référence. Par exemple, le type int est caractéristique des types valeur. Une valeur de type int est entièrement autonome. Tous les bits nécessaires pour représenter cette valeur sont stockés dans cette valeur, et chaque modèle binaire dans cette valeur représente une valeur valide pour son type. Le type de tableau int[] est quant à lui caractéristique des types référence. Les valeurs de type tableau peuvent inclure une référence à un objet qui contient en réalité les éléments du tableau, ou la référence null dont la valeur est $null. La distinction importante entre les deux catégories de types est mieux illustrée par les différences liées à leur sémantique lors de leur affectation. Par exemple,

$i = 100 # $i designates an int value 100
$j = $i # $j designates an int value 100, which is a copy

$a = 10,20,30 # $a designates an object[], Length 3, value 10,20,30
$b = $a # $b designates exactly the same array as does $a, not a copy
$a[1] = 50 # element 1 (which has a value type) is changed from 20 to 50
$b[1] # $b refers to the same array as $a, so $b[1] is 50

Comme nous pouvons le voir, l’affectation d’une valeur de type référence implique une copie superficielle (une copie de la référence à l’objet au lieu de sa valeur réelle). Une copie complète, en revanche, requiert également de créer une copie de l’objet.

Un type numérique permet la représentation de valeurs entières ou fractionnaires, et prend en charge les opérations arithmétiques sur ces valeurs. L’ensemble de types numériques inclut les types entier (§ 4.2.3) et nombre réel (§ 4.2.4), mais n’inclut pas les types booléen (§ 4.2.1) ou caractère (§ 4.2.2). Une implémentation peut fournir d’autres types numériques (tels que des octets signés, des entiers non signés et des entiers d’autres tailles).

Une collection est un groupe d’un ou plusieurs éléments connexes, qui n’ont pas besoin d’avoir le même type. Les tableaux, les piles, les files d’attente, les listes et les tables de hachage sont des exemples de types de collection. Un programme peut énumérer (ou itérer) les éléments d’une collection, en accédant à chaque élément individuel à la fois. Il est courant d’utiliser l’instruction foreach (§ 8.4.4) et l’applet de commande ForEach-Object pour ce faire. Le type d’un objet qui représente un énumérateur est décrit dans § 4.5.16.

Ce chapitre présente des tables qui répertorient les membres accessibles pour un type donné. Pour les méthodes, le Type est écrit au format suivant : ReturnType/argumentTypeList. Si la liste des types d’arguments est trop longue pour tenir dans cette colonne, elle est affichée dans la colonne Objectif à la place.

Les autres types d’entier sont SByte, Int16, UInt16, UInt32 et UInt64. Tous figurent dans l’espace de noms System.

De nombreuses classes de collection sont définies dans le cadre des espaces de noms System.Collections et System.Collections.Generic. La plupart des classes de collection implémentent les interfaces ICollection, IComparer, IEnumerable, IList, IDictionary et IDictionaryEnumerator, et leurs équivalents génériques.

4.1 Types spéciaux

4.1.1 Type void

Ce type ne peut pas être instancié. Il fournit un moyen de supprimer une valeur explicitement à l’aide de l’opérateur de conversion (§ 7.2.9).

4.1.2 Type null

Le type null a une instance, la variable automatique $null (§ 2.3.2.2), également appelée valeur null. Cette valeur fournit un moyen d’exprimer le « néant » dans les contextes de référence. Les caractéristiques de ce type ne sont pas spécifiées.

4.1.3 Type object

Chaque type dans PowerShell, à l’exception du type null (§ 4.1.2), étant dérivé directement ou indirectement du type object, ce dernier est le type de base ultime de tous les types non null. Une variable restreinte (§ 5.3) au type object n’est en réalité pas restreinte du tout, car elle peut contenir une valeur de n’importe quel type.

4.2 Types valeur

4.2.1 Booléen

Le type booléen est bool. Il n’y a que deux valeurs de ce type, False et True, représentées par les variables automatiques $false et $true respectivement (§ 2.3.2.2).

Dans PowerShell, bool correspond à System.Boolean.

4.2.2 Caractère

Une valeur de caractère a le type char. Celui-ci peut stocker n’importe quel point de code Unicode 16 bits encodé en UTF-16.

Le type char contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
MaxValue Propriété statique (lecture seule) char Plus grande valeur possible du type char
MinValue Propriété statique (lecture seule) char Plus petite valeur possible du type char
IsControl Méthode statique bool/char Teste si le caractère est un caractère de contrôle
IsDigit Méthode statique bool/char Teste si le caractère est un chiffre décimal
IsLetter Méthode statique bool/char Teste si le caractère est une lettre de l’alphabet
IsLetterOrDigit Méthode statique bool/char Teste si le caractère est un chiffre décimal ou une lettre de l’alphabet
IsLower Méthode statique bool/char Teste si le caractère est une lettre de l’alphabet minuscule
IsPunctuation Méthode statique bool/char Teste si le caractère est un signe de ponctuation
IsUpper Méthode statique bool/char Teste si le caractère est une lettre de l’alphabet majuscule
IsWhiteSpace Méthode statique bool/char Teste si le caractère est un espace blanc.
ToLower Méthode statique char/string Convertit le caractère en minuscule
ToUpper Méthode statique char/string Convertit le caractère en majuscule

Windows PowerShell : char correspond à System.Char.

4.2.3 Entier

Il existe deux types d’entiers signés, qui utilisent tous deux la représentation de complément à 2 pour les valeurs négatives :

  • le type int, qui utilise 32 bits avec une plage comprise entre -2147483648 et +2147483647 inclus ;
  • le type long, qui utilise 64 bits avec une plage comprise entre -9223372036854775808 et +9223372036854775807 inclus.

Le type int contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
MaxValue Propriété statique (lecture seule) int Plus grande valeur possible du type int
MinValue Propriété statique (lecture seule) int Plus petite valeur possible du type int

Le type long contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
MaxValue Propriété statique (lecture seule) long Plus grande valeur possible du type long
MinValue Propriété statique (lecture seule) long Plus petite valeur possible du type long

Il existe un type d’entier non signé :

  • le type byte, qui utilise 8 bits avec une plage comprise entre 0 et 255 inclus.

Le type byte contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
MaxValue Propriété statique (lecture seule) byte Plus grande valeur possible du type byte
MinValue Propriété statique (lecture seule) byte Plus petite valeur possible du type byte

Dans PowerShell, byte, int et long correspondent à System.Byte, System.Int32 et System.Int64 respectivement.

4.2.4 Nombre réel

4.2.4.1 float et double

Il existe deux types de nombres réels (ou à virgule flottante) :

  • le type float utilise la représentation simple précision IEEE 32 bits.
  • le type double utilise la représentation simple précision IEEE 64 bits.

Un troisième nom de type, single, est un synonyme pour le type float. float est utilisé tout au long de cette spécification.

Bien que la taille et la représentation des types float et double soient définies par cette spécification, une implémentation peut utiliser la précision étendue pour les résultats intermédiaires.

Le type float contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
MaxValue Propriété statique (lecture seule) float Plus grande valeur possible du type float
MinValue Propriété statique (lecture seule) float Plus petite valeur possible du type float
NaN Propriété statique (lecture seule) float Valeur constante Not-a-Number
NegativeInfinity Propriété statique (lecture seule) float Valeur constante de l’infini négatif
PositiveInfinity Propriété statique (lecture seule) float Valeur constante de l’infini positif

Le type double contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
MaxValue Propriété statique (lecture seule) double Plus grande valeur possible du type double
MinValue Propriété statique (lecture seule) double Plus petite valeur possible du type double
NaN Propriété statique (lecture seule) double Valeur constante Not-a-Number
NegativeInfinity Propriété statique (lecture seule) double Valeur constante de l’infini négatif
PositiveInfinity Propriété statique (lecture seule) double Valeur constante de l’infini positif

Dans PowerShell, float et double correspondent à System.Single et System.Double, respectivement.

4.2.4.2 decimal

Le type decimal utilise une représentation 128 bits. Au minimum, il doit prendre en charge une échelle (scale) s telle que 0 <= s <= au minimum 28, et une plage de valeurs de -79228162514264337593543950335 à 79228162514264337593543950335. 79228162514264337593543950335. La représentation réelle du type decimal est définie par l’implémentation.

Le type decimal contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
MaxValue Propriété statique (lecture seule) Décimal Plus grande valeur possible du type decimal
MinValue Propriété statique (lecture seule) Décimal Plus petite valeur possible du type decimal

Notes

Les nombres réels décimaux ont une caractéristique appelée scale, qui représente le nombre de chiffres à droite de la décimale. Par exemple, la valeur 2,340 a une échelle de 3 où les zéros de fin sont significatifs. Lorsque deux nombres décimaux réels sont ajoutés ou soustraits, l’échelle du résultat est la plus grande des deux échelles. Par exemple, 1,0 + 2,000 est égal à 3,000, tandis que 5,0 - 2,00 est égal à 3,00. Lorsque deux nombres réels décimaux sont multipliés, l’échelle du résultat est la somme des deux échelles. Par exemple, 1,0 * 2,000 est égal à 2,0000. Lorsque deux nombres réels décimaux sont divisés, l’échelle du résultat correspond à l’échelle du premier nombre moins l’échelle du second. Par exemple, 4,00000/2,000 est égal à 2,00. Toutefois, une échelle ne peut pas être inférieure à celle nécessaire pour conserver le résultat correct. Par exemple, 3,000/2,000, 3,00/2,000, 3,0/2,000 et 3/2 sont tous égaux à 1,5.

Dans PowerShell, decimal correspond à System.Decimal. La représentation du type decimal est la suivante :

  • Lorsqu’il est considéré comme un tableau de quatre valeurs int, il contient les éléments suivants :
    • L’index 0 (bits 0-31) contient les 32 bits d’ordre bas du coefficient de la décimale.
    • L’index 1 (bits 32-63) contient les 32 bits du milieu du coefficient de la décimale.
    • L’index 2 (bits 64-95) contient les 32 bits d’ordre haut du coefficient de la décimale.
    • L’index 3 (bits 96-127) contient le bit de signe et l’échelle, comme suit :
      • Les bits 0--15 sont nuls
      • Les bits 16-23 contiennent l’échelle sous la forme d’une valeur 0--28
      • Les bits 24-30 sont nuls
      • Le bit 31 correspond au signe (0 pour le positif, 1 pour le négatif)

4.2.5 Le type switch

Ce type est utilisé pour contraindre le type d’un paramètre dans une commande (§ 8.10.5). Si un argument ayant le nom de paramètre correspondant est présent, le paramètre teste $true, sinon, il teste $false.

Dans PowerShell, switch correspond à System.Management.Automation.SwitchParameter.

4.2.6 Types d’énumération

Un type d’énumération est un type qui définit un jeu de constantes nommées représentant toutes les valeurs possibles pouvant être affectées à un objet de ce type d’énumération. Dans certains cas, l’ensemble de valeurs est tel qu’une seule valeur peut être représentée à la fois. Dans d’autres cas, l’ensemble de valeurs correspond à des puissances de deux distinctes, et en utilisant l’opérateur -bor (§ 7.8.5), plusieurs valeurs peuvent être encodées dans le même objet.

L’environnement PowerShell fournit un certain nombre de types d’énumération, comme décrit dans les sections suivantes.

4.2.6.1 Type Action-Preference

Ce type défini par l’implémentation contient les membres accessibles à valeur mutuellement exclusive suivants :

Membre Genre de membre Objectif
Continuer Constante d’énumération Le runtime PowerShell continue le traitement et avertit l’utilisateur qu’une action a eu lieu.
Inquire Constante d’énumération Le runtime PowerShell arrête le traitement et demande à l’utilisateur comment poursuivre.
SilentlyContinue Constante d’énumération Le runtime PowerShell continue le traitement sans avertir l’utilisateur qu’une action a eu lieu.
Arrêter Constante d’énumération Le runtime PowerShell arrête le traitement lorsqu’une action a eu lieu.

Dans PowerShell, il s’agit du type System.Management.Automation.ActionPreference.

4.2.6.2 Type Confirm-Impact

Ce type défini par l’implémentation contient les membres accessibles à valeur mutuellement exclusive suivants :

Membre Genre de membre Objectif
Élevé Constante d’énumération L’action effectuée présente un risque élevé de perte de données, telles que le reformatage d’un disque dur.
Faible Constante d’énumération L’action effectuée présente un faible risque de perte de données.
Moyenne Constante d’énumération L’action effectuée présente un risque moyen de perte de données.
Aucun Constante d’énumération Ne confirmez aucune action (supprimez toutes les demandes de confirmation).

Dans PowerShell, il s’agit du type System.Management.Automation.ConfirmImpact.

4.2.6.3 Type File-Attributes

Ce type défini par l’implémentation contient les membres accessibles suivants, qui peuvent être combinés :

Membre Genre de membre Objectif
Archive Constante d’énumération État de l’archive du fichier. Les applications utilisent cet attribut pour marquer des fichiers à des fins de sauvegarde ou de suppression.
Compressé Constante d’énumération Le fichier est compressé.
Appareil Réservé pour un usage futur.
Répertoire Constante d’énumération Le fichier est un répertoire.
Chiffré Constante d’énumération Le fichier ou le répertoire est chiffré. Cela signifie pour un fichier, que toutes ses données sont chiffrées. Pour un répertoire, cela signifie que tous les fichiers et répertoires créés sont chiffrés par défaut.
Hidden Constante d’énumération Le fichier est masqué et n’est donc pas compris dans un listing de répertoires ordinaire.
Normal Constante d’énumération Le fichier est normal et n’a pas d’autres attributs définis. Cet attribut n’est valide que s’il est utilisé seul.
NotContentIndexed Constante d’énumération Le fichier ne sera pas indexé par le service d’indexation de contenu du système d’exploitation.
Hors connexion Constante d’énumération Le fichier est hors connexion. Les données du fichier ne sont pas immédiatement disponibles.
Lecture seule Constante d’énumération Le fichier est en lecture seule.
ReparsePoint Constante d’énumération Le fichier contient un point d’analyse, qui est un bloc de données définies par l’utilisateur associé à un fichier ou à un répertoire.
SparseFile Constante d’énumération Le fichier est un fichier partiellement alloué. Les fichiers partiellement alloués sont généralement des fichiers volumineux dont les données sont essentiellement des zéros.
Système Constante d’énumération Le fichier est un fichier système. Le fichier fait partie du système d’exploitation ou est utilisé exclusivement par le système d’exploitation.
Temporaire Constante d’énumération Le fichier est temporaire. Les systèmes de fichiers tentent de conserver toutes les données en mémoire pour un accès plus rapide plutôt que de vider les données dans le stockage de masse. Un fichier temporaire doit être supprimé par l’application dès qu’il n’est plus nécessaire.

Dans PowerShell, il s’agit du type System.IO.FileAttributes avec l’attribut FlagsAttribute.

4.2.6.4 Type Regular-Expression-Option

Ce type défini par l’implémentation contient les membres accessibles suivants, qui peuvent être combinés :

Membre Genre de membre Objectif
IgnoreCase Constante d’énumération Spécifie que la correspondance ne respecte pas la casse.
Aucun Constante d’énumération Spécifie qu'aucune option n'est définie.

Une implémentation peut fournir d’autres valeurs.

Dans PowerShell, il s’agit du type System.Text.RegularExpressions.RegexOptions avec l’attribut FlagsAttribute. Les valeurs supplémentaires suivantes sont définies : Compiled, CultureInvariant, ECMAScript, ExplicitCapture, IgnorePatternWhitespace, Multiline, RightToLeft et Singleline.

4.3 Types référence

4.3.1 Chaînes

Une valeur de chaîne a le type string et est une séquence immuable de zéro ou plusieurs caractères de type char contenant chacun un point de code Unicode 16 bits encodé en UTF-16.

Le type string contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Longueur Propriété d’instance int (lecture seule) Obtient le nombre de caractères dans la chaîne
ToLower Méthode d’instance string Crée une nouvelle chaîne qui contient l’équivalent en minuscules
ToUpper Méthode d’instance string Crée une nouvelle chaîne qui contient l’équivalent en majuscules

Dans PowerShell, string correspond à System.String.

4.3.2 Tableaux

Tous les types de tableaux sont dérivés du type Array. Ce type contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Longueur Propriété d’instance (lecture seule) int Nombre d’éléments dans le tableau
Rank Propriété d’instance (lecture seule) int Nombre de dimensions dans le tableau
Copier Méthode statique void/voir la colonne Objectif

Copie une plage d’éléments d’un tableau dans un autre. Il existe quatre versions, où source est le tableau source , destination est le tableau de destination, count est le nombre d’éléments à copier, et sourceIndex et destinationIndex sont les emplacements de départ dans leurs tableaux respectifs :

Copy(source, destination, int count)
Copy(source, destination, long count)
Copy(source, sourceIndex, destination, destinationIndex, int count)
Copy(source, sourceIndex, destination, destinationIndex, long count)

GetLength Méthode d’instance (lecture seule) int/aucun

Nombre d’éléments dans une dimension donnée

GetLength(int dimension)

Pour plus d’informations sur les tableaux, voir § 9.

Dans PowerShell, Array correspond à System.Array.

4.3.3 Tables de hachage

Le type Hashtable contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Count Propriété d’instance int Obtient le nombre de paires clé/valeur dans la table de hachage
Keys Propriété d’instance Défini par l’implémentation Obtient une collection de toutes les clés
Valeurs Propriété d’instance Défini par l’implémentation Obtient une collection de toutes les valeurs
Supprimer Méthode d’instance void/aucun Supprime la paire clé/valeur désignée

Pour plus d’informations sur les tables de hachage, voir § 10.

Dans PowerShell, Hashtable correspond à System.Collections.Hashtable. Les éléments Hashtable sont stockés dans un objet de type DictionaryEntry, et les collections retournées par les membres Keys et Values ont le type ICollection.

4.3.4 Le type xml

Le type xml implémente les modèles objet de document (Document Object Model, DOM) Level 1 Core et DOM Level 2 Core du W3C. Le DOM est une représentation arborescente (cache) en mémoire d’un document XML. Il permet la navigation et la modification de ce document. Ce type prend en charge l’opérateur d’indice [] (§ 7.1.4.4).

Dans PowerShell, xml correspond à System.Xml.XmlDocument.

4.3.5 Le type regex

Le type regex fournit la mécanique permettant de prendre en charge le traitement des expressions régulières. Il est utilisé pour contraindre le type d’un paramètre (§ 5.3) dont l’argument correspondant peut contenir une expression régulière.

Dans PowerShell, regex correspond à System.Text.RegularExpressions.Regex.

4.3.6 Le type ref

Habituellement, les arguments sont transmis aux commandes par valeur. Dans le cas d’un argument de type valeur, une copie de la valeur est transmise. Dans le cas d’un argument de type référence, une copie de la référence est transmise.

Le type ref fournit la mécanique permettant de passer des arguments aux commandes par référence, afin que les commandes puissent modifier la valeur de l’argument. Le type ref contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Valeur Propriété d’instance (lecture-écriture) Type de la valeur référencée. Obtient/définit la valeur référencée.

Considérez la définition et l’appel de fonction suivants :

function Doubler {
    param ([ref]$x) # parameter received by reference
    $x.Value *= 2.0 # note that 2.0 has type double
}

$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type double, value 8.0

Considérez le cas dans lequel $number est contraint par un type :

[int]$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type int, value 8

Comme indiqué, l’argument et le paramètre correspondant doivent être déclarés ref.

Dans PowerShell, ref correspond à System.Management.Automation.PSReference.

4.3.7 Le type scriptblock

Le type scriptblock représente un bloc de texte de script précompilé (§ 7.1.8) qui peut être utilisé comme une seule unité. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Attributs Propriété d’instance (lecture seule) Collection d’attributs Obtient les attributs du bloc de script.
Fichier Propriété d’instance (lecture seule) string Obtient le nom du fichier dans lequel le bloc de script est défini.
Module Propriété d’instance (lecture seule) Défini par l’implémentation ([§ 4.5.12][§ 4.5.12]) Obtient des informations sur le module dans lequel le bloc de script est défini.
GetNewClosure Méthode d’instance scriptblock
/aucun
Récupère un bloc de script lié à un module. Toutes les variables locales qui sont dans le contexte de l’appelant seront copiées dans le module.
Appeler Méthode d’instance Collection de object/object[] Appelle le bloc de script avec les arguments spécifiés et retourne les résultats.
InvokeReturnAsIs Méthode d’instance object/object[] Appelle le bloc de script avec les arguments spécifiés et retourne les objets générés.
Créer Méthode statique scriptblock
/string
Crée un nouvel objet scriptblock qui contient le script spécifié.

Dans PowerShell, scriptblock correspond à System.Management.Automation.ScriptBlock. Invoke retourne une collection de PsObject.

4.3.8 Le type math

Le type math fournit l’accès à certaines constantes et méthodes utiles dans les calculs mathématiques. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
E Propriété statique (lecture seule) double Base de logarithme népérien
PI Propriété statique (lecture seule) double Rapport de la circonférence d’un cercle à son diamètre
Abs Méthode statique numérique/numérique Valeur absolue (le type de retour est le même que le type de l’argument transmis)
Acos Méthode statique double/double Angle dont le cosinus est le nombre spécifié
Asin Méthode statique double/double Angle dont le sinus est le nombre spécifié
Atan Méthode statique double/double Angle dont la tangente est le nombre spécifié
Atan2 Méthode statique double/double y, double x Angle dont la tangente est le quotient de deux nombres spécifiés x et y
Ceiling Méthode statique

decimal/decimal

double/double

Plus petit entier supérieur ou égal au nombre spécifié
Cos Méthode statique double/double Cosinus de l’angle spécifié
cosh Méthode statique double/double Cosinus hyperbolique de l’angle spécifié
Exp Méthode statique double/double e élevé à la puissance spécifiée
Floor Méthode statique

decimal/decimal

double/double

Plus grand nombre entier qui est inférieur ou égal au nombre spécifié
Journal Méthode statique

double/double number

double/double number, double base

Logarithme du nombre utilisant base e ou base base
Log10 Méthode statique double/double Logarithme de base 10 d’un nombre spécifié
Max Méthode statique numérique/numérique Plus grand des deux nombres spécifiés (le type de retour est le même que celui des arguments transmis)
Min Méthode statique numérique/numérique, numérique Plus petit des deux nombres spécifiés (le type de retour est le même que celui des arguments transmis)
Pow Méthode statique double/double x, double y Nombre spécifié x élevé à la puissance spécifiée y
Sin Méthode statique double/double Sinus de l’angle spécifié
Sinh Méthode statique double/double Sinus hyperbolique de l’angle spécifié
Sqrt Méthode statique double/double Racine carrée d’un nombre spécifié
Tan Méthode statique double/double Tangente de l’angle spécifié
Tanh Méthode statique double/double Tangente hyperbolique de l’angle spécifié

Dans PowerShell, Math correspond à System.Math.

4.3.9 Le type ordered

Le type ordered est un pseudo-type utilisé uniquement pour les conversions.

4.3.10 Le type pscustomobject

Le type pscustomobject est un pseudo-type utilisé uniquement pour les conversions.

4.4 Types génériques

Plusieurs langages et environnements de programmation fournissent des types qui peuvent être spécialisés. Un grand nombre de ces types sont appelés types de conteneurs, car les instances peuvent contenir des objets d’un autre type. Prenons l’exemple d’un type appelé Stack qui peut représenter une pile de valeurs, pouvant être empilées (PUSH) et dépilées (POP). L’utilisateur d’une pile souhaite généralement stocker un seul type d’objet sur cette pile. Toutefois, si le langage ou l’environnement ne prend pas en charge la spécialisation de type, plusieurs variantes distinctes de la pile du type Stack doivent être implémentées même s’ils exécutent tous la même tâche, à l’aide d’éléments de type différents.

La spécialisation de type permet l’implémentation d’un type générique de telle façon qu’il peut être limité à la gestion d’un sous-ensemble de types lorsqu’il est utilisé. Par exemple,

  • Un type de pile générique spécialisé pour contenir des chaînes peut être écrit sous la forme de Stack[string].
  • Un type de dictionnaire générique spécialisé pour conserver les clés entières avec des valeurs de chaîne associées peut être écrit sous la forme de Dictionary[int,string].
  • Une pile de chaînes peut être écrite sous la forme de Stack[Stack[string]].

Bien que PowerShell ne définisse pas de types génériques intégrés, il peut utiliser de tels types s’ils sont fournis par l’environnement hôte. Consultez la syntaxe dans § 7.1.10.

Le nom complet du type Stack[string] suggéré ci-dessus est System.Collections.Generic.Stack[string]. Le nom complet du type Dictionary[int,string] suggéré ci-dessus est System.Collections.Generic.Dictionary[int,string].

4.5 Types anonymes

Dans certains cas, une implémentation de PowerShell crée des objets d’un certain type, et ces objets ont des membres accessibles au script. Toutefois, il n’est pas nécessaire de spécifier le nom réel de ces types, tant que les membres accessibles sont suffisamment spécifiés pour pouvoir être utilisés. Autrement dit, les scripts peuvent enregistrer des objets de ces types et accéder à leurs membres sans connaître réellement les noms de ces types. Les sous-sections suivantes spécifient ces types.

4.5.1 Type de description de fournisseur

Ce type encapsule l’état d’un fournisseur. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Lecteurs Propriété d’instance (lecture seule) Défini par l’implémentation (§ 4.5.2) Collection d’objets de description de lecteur
Name Propriété d’instance (lecture seule) string Nom du fournisseur

Dans PowerShell, il s’agit du type System.Management.Automation.ProviderInfo.

4.5.2 Type de description de lecteur

Ce type encapsule l’état d’un lecteur. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
CurrentLocation Propriété d’instance (lecture-écriture) string Emplacement de travail actuel (§ 3.1.4) du lecteur
Description Propriété d’instance (lecture-écriture) string Description du lecteur
Name Propriété d’instance (lecture seule) string Nom du lecteur
Root Propriété d’instance (lecture seule) string Nom du lecteur

Dans PowerShell, il s’agit du type System.Management.Automation.PSDriveInfo.

4.5.3 Type de description de variable

Ce type encapsule l’état d’une variable. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Attributs Propriété d’instance (lecture seule) Défini par l’implémentation Collection d’attributs
Description Propriété d’instance (lecture-écriture) string Description affectée à la variable via les applets de commande New-Variable et Set-Variable.
Module Propriété d’instance (lecture seule) Défini par l’implémentation (§ 4.5.12) Module à partir duquel cette variable a été exportée
ModuleName Propriété d’instance (lecture seule) string Module dans lequel cette variable a été définie
Name Propriété d’instance (lecture seule) string Nom affecté à la variable lors de sa création dans le langage PowerShell ou via les applets de commande New-Variable et Set-Variable.
Options Propriété d’instance (lecture-écriture) string Options affectées à la variable via les applets de commande New-Variable et Set-Variable.
Valeur Propriété d’instance (lecture-écriture) object Valeur affectée à la variable lors de son affectation dans le langage PowerShell ou via les applets de commande New-Variable et Set-Variable.

Dans PowerShell, il s’agit du type System.Management.Automation.PSVariable.

Windows PowerShell : le type de la collection d’attributs est System.Management.Automation.PSVariableAttributeCollection.

4.5.4 Type de description d’alias

Ce type encapsule l’état d’un alias. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
CommandType Propriété d’instance (lecture seule) Défini par l’implémentation Doit avoir une valeur égale à « Alias ».
Définition Propriété d’instance (lecture seule) string Commande ou alias auquel l’alias a été affecté via les applets de commande New-Alias ou Set-Alias.
Description Propriété d’instance (lecture-écriture) string Description affectée à l’alias via les applets de commande New-Alias et Set-Alias.
Module Propriété d’instance (lecture seule) Défini par l’implémentation (§ 4.5.12) Module à partir duquel cet alias a été exporté
ModuleName Propriété d’instance (lecture seule) string Module dans lequel cet alias a été défini
Name Propriété d’instance (lecture seule) string Nom affecté à l’alias lors de sa création via les applets de commande New-Alias et Set-Alias.
Options Propriété d’instance (lecture-écriture) string Options affectées à l’alias via les applets de commande New-Alias et Set-Alias.
OutputType Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types des valeurs générées par la commande à laquelle l’alias fait référence.
Paramètres Propriété d’instance (lecture seule) Collection définie par l’implémentation Paramètres de la commande.
ParameterSets Propriété d’instance (lecture seule) Collection définie par l’implémentation Informations sur les jeux de paramètres associés à la commande.
ReferencedCommand Propriété d’instance (lecture seule) Défini par l’implémentation Informations sur la commande qui est immédiatement référencée par cet alias.
ResolvedCommand Propriété d’instance (lecture seule) Défini par l’implémentation Informations sur la commande de résolution de l’alias.

Dans PowerShell, il s’agit du type System.Management.Automation.AliasInfo.

4.5.5 Type de description d’emplacement de travail

Ce type encapsule l’état d’un emplacement de travail. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Lecteur Propriété d’instance (lecture seule) Défini par l’implémentation (§ 4.5.2) Objet de description d’un lecteur
Chemin d’accès Propriété d’instance (lecture seule) string Emplacement de travail
Fournisseur Propriété d’instance (lecture seule) Défini par l’implémentation (§ 4.5.1) Fournisseur
ProviderPath Propriété d’instance (lecture seule) string Chemin d’accès actuel du fournisseur

Une pile d’emplacements de travail est une collection d’objets d’emplacement de travail, comme décrit ci-dessus.

Dans PowerShell, un emplacement de travail actuel est représenté par un objet de type System.Management.Automation.PathInfo. Une pile d’emplacements de travail est représentée par un objet de type System.Management.Automation.PathInfoStack, qui est une collection d’objets PathInfo.

4.5.6 Type de description de variable d’environnement

Ce type encapsule l’état d’une variable d’environnement. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Name Propriété d’instance (lecture-écriture) string Nom de la variable d’environnement
Valeur Propriété d’instance (lecture-écriture) string Valeur de la variable d’environnement

Dans PowerShell, il s’agit du type System.Collections.DictionaryEntry. Le nom de la variable est la clé du dictionnaire. La valeur de la variable d'environnement est la valeur du dictionnaire. Name est une AliasProperty qui équivaut à Key.

4.5.7 Type de description d’application

Ce type encapsule l’état d’une application. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
CommandType Propriété d’instance (lecture seule) Défini par l’implémentation Doit avoir une valeur égale à « Application ».
Définition Propriété d’instance (lecture seule) string Description de l’application.
Extension Propriété d’instance (lecture-écriture) string Extension du fichier d’application.
Module Propriété d’instance (lecture seule) Défini par l’implémentation (§ 4.5.12) Module qui définit cette commande.
ModuleName Propriété d’instance (lecture seule) string Nom du module qui définit la commande.
Name Propriété d’instance (lecture seule) string Nom de la commande.
OutputType Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types des valeurs générées par la commande.
Paramètres Propriété d’instance (lecture seule) Collection définie par l’implémentation Paramètres de la commande.
ParameterSets Propriété d’instance (lecture seule) Collection définie par l’implémentation Informations sur les jeux de paramètres associés à la commande.
Chemin d’accès Propriété d’instance (lecture seule) string Obtient le chemin d’accès du fichier d’application.

Dans PowerShell, il s’agit du type System.Management.Automation.ApplicationInfo.

4.5.8 Type de description d’applet de commande

Ce type encapsule l’état d’une applet de commande. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
CommandType Propriété d’instance (lecture seule) Défini par l’implémentation Doit avoir une valeur égale à « Cmdlet ».
DefaultParameterSet Propriété d’instance (lecture seule) Défini par l’implémentation Jeu de paramètres par défaut utilisé si PowerShell ne peut pas déterminer le jeu de paramètres à utiliser sur la base des arguments fournis.
Définition Propriété d’instance (lecture seule) string Description de l’applet de commande.
HelpFile Propriété d’instance (lecture-écriture) string Chemin d’accès au fichier d’aide de l’applet de commande.
ImplementingType Propriété d’instance (lecture-écriture) Défini par l’implémentation Type qui implémente l’applet de commande.
Module Propriété d’instance (lecture seule) Défini par l’implémentation (§ 4.5.12) Module qui définit cette applet de commande.
ModuleName Propriété d’instance (lecture seule) string Nom du module qui définit l’applet de commande.
Name Propriété d’instance (lecture seule) string Nom de l’applet de commande.
Nom Propriété d’instance (lecture seule) string Nom du substantif de l’applet de commande.
OutputType Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types des valeurs générées par l’applet de commande.
Paramètres Propriété d’instance (lecture seule) Collection définie par l’implémentation Paramètres de l’applet de commande.
ParameterSets Propriété d’instance (lecture seule) Collection définie par l’implémentation Informations sur les jeux de paramètres associés à l’applet de commande.
Verbe Propriété d’instance (lecture seule) string Nom du verbe de l’applet de commande.
PSSnapIn Propriété d’instance (lecture seule) Défini par l’implémentation Windows PowerShell : informations sur le composant logiciel enfichable Windows PowerShell utilisé pour inscrire l’applet de commande.

Dans PowerShell, il s’agit du type System.Management.Automation.CmdletInfo.

4.5.9 Type de description de script externe

Ce type encapsule l’état d’un script externe (exécutable directement par PowerShell, mais non intégré). Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
CommandType Propriété d’instance (lecture seule) Défini par l’implémentation Doit avoir une valeur égale à « ExternalScript ».
Définition Propriété d’instance (lecture seule) string Définition du script.
Module Propriété d’instance (lecture seule) Défini par l’implémentation (§ 4.5.12) Module qui définit ce script.
ModuleName Propriété d’instance (lecture seule) string Nom du module qui définit le script.
Name Propriété d’instance (lecture seule) string Nom du script.
OriginalEncoding Propriété d’instance (lecture seule) Défini par l’implémentation Encodage d’origine utilisé pour convertir les caractères du script en octets.
OutputType Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types des valeurs générées par le script.
Paramètres Propriété d’instance (lecture seule) Collection définie par l’implémentation Paramètres du script.
ParameterSets Propriété d’instance (lecture seule) Collection définie par l’implémentation Informations sur les jeux de paramètres associés au script.
Chemin d’accès Propriété d’instance (lecture seule) string Chemin d’accès au fichier de script.
ScriptBlock Propriété d’instance (lecture seule) scriptblock Script externe.
ScriptContents Propriété d’instance (lecture seule) string Contenu d’origine du script.

Dans PowerShell, il s’agit du type System.Management.Automation.ExternalScriptInfo.

4.5.10 Type de description de fonction

Ce type encapsule l’état d’une fonction. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
CmdletBinding Propriété d’instance (lecture seule) bool Indique si la fonction utilise la même liaison de paramètre que celle utilisée par les applets de commande compilées (voir § 12.3.5).
CommandType Propriété d’instance (lecture seule) Défini par l’implémentation Peut être comparé en termes d’égalité avec « Function » ou « Filter » pour déterminer laquelle de ces valeurs cet objet représente.
DefaultParameterSet Propriété d’instance (lecture seule) string Spécifie le jeu de paramètres à utiliser s’il n’est pas possible de le déterminer à partir des arguments (voir § 12.3.5).
Définition Propriété d’instance (lecture seule) string Version de chaîne de ScriptBlock
Description Propriété d’instance (lecture-écriture) string Description de la fonction.
Module Propriété d’instance (lecture seule) Défini par l’implémentation (§ 4.5.12) Module à partir duquel cette fonction a été exportée
ModuleName Propriété d’instance (lecture seule) string Module dans lequel cette fonction a été définie
Name Propriété d’instance (lecture seule) string Nom de la fonction
Options Propriété d’instance (lecture-écriture) Défini par l’implémentation Options d’étendue pour la fonction (§ 3.5.4).
OutputType Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types des valeurs générées, dans l’ordre (voir § 12.3.6).
Paramètres Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les noms des paramètres, dans l’ordre. Si la fonction agit comme une applet de commande (voir CmdletBinding ci-dessus), les paramètres communs sont inclus à la fin de la collection.
ParameterSets Propriété d’instance (lecture seule) Collection définie par l’implémentation Informations sur les jeux de paramètres associés à la commande. Pour chaque paramètre, le résultat indique le nom et le type du paramètre, et indique si le paramètre est obligatoire, par position ou un paramètre de commutateur. Si la fonction agit comme une applet de commande (voir CmdletBinding ci-dessus), les paramètres communs sont inclus à la fin de la collection.
ScriptBlock Propriété d’instance (lecture seule) scriptblock (§ 4.3.6) Corps de la fonction

Dans PowerShell, il s’agit du type System.Management.Automation.FunctionInfo.

  • CommandType a le type System.Management.Automation.CommandTypes.
  • Options a le type System.Management.Automation.ScopedItemOptions.
  • OutputType a le type System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]].
  • Parameters a le type System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]].
  • ParameterSets a le type System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]].
  • Visibility a le type System.Management.Automation.SessionStateEntryVisibility.
  • PowerShell a également une propriété appelée Visibility.

4.5.11 Type de description de filtre

Ce type encapsule l’état d’un filtre. Il a le même jeu de membres accessibles que le type de description de fonction (§ 4.5.10).

Dans PowerShell, il s’agit du type System.Management.Automation.FilterInfo. Il a le même jeu de propriétés que System.Management.Automation.FunctionInfo (§ 4.5.11).

4.5.12 Type de description de module

Ce type encapsule l’état d’un module. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Description Propriété d’instance (lecture-écriture) string Description du module (définie par le manifeste)
ModuleType Propriété d’instance (lecture seule) Défini par l’implémentation Type du module (Manifest, Script ou Binary)
Name Propriété d’instance (lecture seule) string Nom du module
Chemin d’accès Propriété d’instance (lecture seule) string Chemin d’accès du module

Dans PowerShell, il s’agit du type System.Management.Automation.PSModuleInfo. Le type de ModuleType est System.Management.Automation.ModuleType.

4.5.13 Type de description d’objet personnalisé

Ce type encapsule l’état d’un objet personnalisé. Il n’a aucun membre accessible.

Dans PowerShell, il s’agit du type System.Management.Automation.PSCustomObject. Les applets de commande Import-Module et New-Object peuvent générer un objet de ce type.

4.5.14 Type de description de commande

La variable automatique $PsCmdlet est un objet qui représente l’applet de commande ou la fonction en cours d’exécution. Le type de cet objet est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
ParameterSetName Propriété d’instance (lecture seule) string Nom du jeu de paramètres actuel (voir ParameterSetName)
ShouldContinue Méthode d’instance

Surchargé

/bool

Demande la confirmation d’une opération auprès de l’utilisateur.
ShouldProcess Méthode d’instance

Surchargé

/bool

Demande la confirmation de l’utilisateur avant l’exécution d’une opération.

Dans PowerShell, il s’agit du type System.Management.Automation.PSScriptCmdlet.

4.5.15 Type de description d’enregistrement d’erreur

La variable automatique $Error contient une collection d’enregistrements d’erreur qui représentent des erreurs récentes (§ 3.12). Même si le type de cette collection n’est pas spécifié, il prend en charge la mise en indice pour accéder aux enregistrements d’erreur individuels.

Dans PowerShell, il s’agit du type de collection System.Collections.ArrayList. Le type d’un enregistrement d’erreur individuel dans la collection est System.Management.Automation.ErrorRecord. Ce type a les propriétés publiques suivantes :

  • CategoryInfo : obtient des informations sur la catégorie de l’erreur.
  • ErrorDetails : obtient et définit des informations d’erreur plus détaillées, telles qu’un message d’erreur de remplacement.
  • Exception : obtient l’exception associée à cet enregistrement d’erreur.
  • FullyQualifiedErrorId : obtient l’identificateur d’erreur complet pour cet enregistrement d’erreur.
  • InvocationInfo : obtient des informations sur la commande qui a été appelée lorsque l’erreur s’est produite.
  • PipelineIterationInfo : obtient l’état du pipeline lors de la création de cet enregistrement d’erreur
  • TargetObject : obtient l’objet en cours de traitement quand l’erreur s’est produite.

4.5.16 Type de description d’énumérateur

Un certain nombre de variables sont des énumérateurs pour les collections (§ 4). La variable automatique $foreach est l’énumérateur créé pour toute instruction foreach. La variable automatique $input est l’énumérateur d’une collection remise à une fonction à partir du pipeline. La variable automatique $switch est l’énumérateur créé pour toute instruction switch.

Le type d’un énumérateur est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Actuel Propriété d’instance (lecture seule) object Obtient l’élément actuel dans la collection. Si l’énumérateur n’est pas actuellement positionné au niveau d’un élément de la collection, le comportement est défini par l’implémentation.
MoveNext Méthode d’instance Aucun/bool Avance l’énumérateur à l’élément suivant de la collection. Retourne $true si l’énumérateur a pu avancer jusqu’à l’élément suivant, $false si l’énumérateur a dépassé la fin de la collection.

Dans PowerShell, ces membres sont définis dans l’interface System.IEnumerator, qui est implémentée par les types identifiés ci-dessous. Si l’énumérateur n’est pas actuellement positionné au niveau d’un élément de la collection, une exception de type InvalidOperationException est levée. Pour $foreach, il s’agit du type System.Array+SZArrayEnumerator. Pour $input, il s’agit du type System.Collections.ArrayList+ArrayListEnumeratorSimple. Pour $switch, il s’agit du type System.Array+SZArrayEnumerator.

4.5.17 Type de description de répertoire

L’applet de commande New-Item peut créer des éléments de différents types, y compris des répertoires FileSystem. Le type d’un objet de description de répertoire est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Attributs Propriété d’instance (lecture-écriture) Défini par l’implémentation (§ 4.2.6.3) Obtient ou définit un ou plusieurs des attributs de l’objet de répertoire.
CreationTime Propriété d’instance (lecture-écriture) Défini par l’implémentation (§ 4.5.19) Obtient ou définit l’heure de création de l’objet de répertoire.
Extension Propriété d’instance (lecture seule) string Obtient la partie extension du nom du répertoire.
FullName Propriété d’instance (lecture seule) string Obtient le chemin d’accès complet du répertoire.
LastWriteTime Propriété d’instance (lecture-écriture) Défini par l’implémentation (§ 4.5.19) Obtient ou définit l’heure de la dernière écriture dans le répertoire.
Name Propriété d’instance (lecture seule) string Obtient le nom du répertoire.

Dans PowerShell, il s’agit du type System.IO.DirectoryInfo. La propriété Attributes a le type System.IO.FileAttributes.

4.5.18 Type de description de fichier

L’applet de commande New-Item peut créer des éléments de différents types, y compris des fichiers FileSystem. Le type d’un objet de description de fichier est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Attributs Propriété d’instance (lecture-écriture) Défini par l’implémentation (§ 4.2.6.3) Obtient ou définit un ou plusieurs des attributs de l’objet de fichier.
BaseName Propriété d’instance (lecture seule) string Obtient le nom du fichier, à l’exclusion de l’extension.
CreationTime Propriété d’instance (lecture-écriture) Défini par l’implémentation (§ 4.5.19) Obtient ou définit l’heure de création de l’objet de fichier.
Extension Propriété d’instance (lecture seule) string Obtient la partie extension du nom du fichier.
FullName Propriété d’instance (lecture seule) string Obtient le chemin d’accès complet du fichier.
LastWriteTime Propriété d’instance (lecture-écriture) Défini par l’implémentation (§ 4.5.19) Obtient ou définit l’heure de la dernière écriture dans le fichier.
Longueur Propriété d’instance (lecture seule) long Obtient la taille du fichier en octets.
Name Propriété d’instance (lecture seule) string Obtient le nom du fichier.
VersionInfo Propriété d’instance (lecture seule) Défini par l’implémentation Windows PowerShell : cette ScriptProperty retourne un System.Diagnostics.FileVersionInfo pour le fichier.

Dans PowerShell, il s’agit du type System.IO.FileInfo.

4.5.19 Type de description Date-Time

Le type d’un objet de description date-time est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Jour Propriété d’instance (lecture seule) int Obtient le composant « jour » du mois représenté par cette instance.
Heure Propriété d’instance (lecture seule) int Obtient le composant « heure » de la date représentée par cette instance.
Minute Propriété d’instance (lecture seule) int Obtient le composant « minutes » de la date représentée par cette instance.
Month Propriété d’instance (lecture seule) int Obtient le composant « mois » de la date représentée par cette instance.
Second Propriété d’instance (lecture seule) int Obtient le composant « secondes » de la date représentée par cette instance.
Year Propriété d’instance (lecture seule) int Obtient le composant « année » de la date représentée par cette instance.

Un objet de ce type peut être créé par l’applet de commande Get-Date.

Dans PowerShell, il s’agit du type System.DateTime.

4.5.20 Type de description Group-Info

Le type d’un objet de description group-info est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Count Propriété d’instance (lecture seule) int Obtient le nombre d’éléments dans le groupe.
Groupe Propriété d’instance (lecture seule) Collection définie par l’implémentation Obtient les éléments du groupe.
Name Propriété d’instance (lecture seule) string Obtient le nom du groupe.
Valeurs Propriété d’instance (lecture seule) Collection définie par l’implémentation Obtient les valeurs des éléments du groupe.

Un objet de ce type peut être créé par l’applet de commande Group-Object.

Dans PowerShell, il s’agit du type Microsoft.PowerShell.Commands.GroupInfo.

4.5.21 Type de description Generic-Measure-Info

Le type d’un objet de description generic-measure-info est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Moyenne Propriété d’instance (lecture seule) double Obtient la moyenne des valeurs des propriétés mesurées.
Count Propriété d’instance (lecture seule) int Obtient le nombre d’objets avec les propriétés spécifiées.
Maximale Propriété d’instance (lecture seule) double Obtient la valeur maximale des propriétés spécifiées.
Minimum Propriété d’instance (lecture seule) double Obtient la valeur minimale des propriétés spécifiées.
Propriété Propriété d’instance (lecture seule) string Obtient la propriété à mesurer.
Sum Propriété d’instance (lecture seule) double Obtient la somme des valeurs des propriétés spécifiées.

Un objet de ce type peut être créé par l’applet de commande Measure-Object.

Dans PowerShell, il s’agit du type Microsoft.PowerShell.Commands.GenericMeasureInfo.

4.5.22 Type de description Text-Measure-Info

Le type d’un objet de description text-info est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Caractères Propriété d’instance (lecture seule) int Obtient le nombre de caractères dans l’objet cible.
Lignes Propriété d’instance (lecture seule) int Obtient le nombre de lignes dans l’objet cible.
Propriété Propriété d’instance (lecture seule) string Obtient la propriété à mesurer.
Words Propriété d’instance (lecture seule) int Obtient le nombre de mots dans l’objet cible.

Un objet de ce type peut être créé par l’applet de commande Measure-Object.

Dans PowerShell, il s’agit du type Microsoft.PowerShell.Commands.TextMeasureInfo.

4.5.23 Type d’informations d’identification

Un objet d’informations d’identification peut ensuite être utilisé dans différentes opérations de sécurité. Le type d’un objet d’informations d’identification est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Mot de passe Propriété d’instance (lecture seule) Défini par l’implémentation Obtient le mot de passe.
UserName Propriété d’instance (lecture seule) string Obtient le nom d’utilisateur.

Un objet de ce type peut être créé par l’applet de commande Get-Credential.

Dans PowerShell, il s’agit du type System.Management.Automation.PSCredential.

4.5.24 Type d’indicateur de méthode

Le type d’un indicateur de méthode est défini par l’implémentation. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Appeler Méthode d’instance objet/nombre variable et type Prend un nombre variable d’arguments et appelle indirectement la méthode référencée par l’indicateur de méthode parent, en transmettant les arguments.

Un objet de ce type peut être créé par une invocation-expression (§ 7.1.3).

Dans PowerShell, il s’agit du type System.Management.Automation.PSMethod.

4.5.25 Type de définition de membre

Ce type encapsule la définition d’un membre. Il contient les membres accessibles suivants :

Membre Genre de membre Type Objectif
Définition Propriété d’instance (lecture seule) string Obtient la définition du membre.
MemberType Propriété d’instance (lecture seule) Défini par l’implémentation Obtient le type PowerShell du membre.
Name Propriété d’instance (lecture seule) string Obtient le nom du membre.
TypeName Propriété d’instance (lecture seule) string Obtient le nom de type du membre.

Dans PowerShell, il s’agit du type Microsoft.PowerShell.Commands.MemberDefinition.

4.6 Extension et adaptation des types

Une implémentation PowerShell comprend une famille de types principaux (décrits dans ce chapitre) qui contiennent chacun leur propre ensemble de membres de base. Ces membres peuvent être des méthodes ou des propriétés, et il peut s’agir de membres d’instance ou statiques. Par exemple, les membres de base de type string (§ 4.3.1) correspondent à la propriété d’instance Length et aux méthodes d’instance ToLower et ToUpper.

Lorsqu’un objet est créé, il contient toutes les propriétés d’instance du type de cet objet, et les méthodes d’instance de ce type peuvent être appelées sur cet objet. Un objet peut être personnalisé via l’ajout de membres d’instance au moment de l’exécution. Le résultat est appelé un objet personnalisé. Tous les membres ajoutés à une instance existent uniquement pendant la durée de vie de cette instance. Les autres instances du même type principal ne sont pas affectées.

Le jeu de membres de base d’un type peut être augmenté par l’ajout des types de membres suivants :

  • les membres adaptés, via le système de type étendu (ETS), dont la plupart des détails ne sont pas spécifiés.
  • les membres étendus, via l’applet de commande Add-Member.

Dans PowerShell, les membres étendus peuvent également être ajoutés via des fichiers types.ps1xml. Les membres adaptés et étendus sont collectivement appelés membres synthétiques.

L’ETS ajoute les membres suivants à tous les objets PowerShell : psbase, psadapted, psextended and pstypenames. Pour plus d’informations sur ces membres, voir les paramètres Force et View dans l’applet de commande Get-Member.

Un membre d’instance peut cacher un membre étendu et/ou adapté portant le même nom, et un membre étendu peut cacher un membre adapté. En pareil cas, les jeux de membres psadapted et psextended peuvent être utilisés pour accéder à ces membres cachés.

Si un types.ps1xml spécifie un membre appelé Supports, obj.psextended fournit un accès à ce seul membre et non à un membre ajouté via Add-Member.

Il est possible de créer un objet personnalisé avec un nouveau membre M de trois façons :

  1. Cette approche peut être utilisée pour ajouter un ou plusieurs membres NoteProperty.

    $x = New-Object PsObject -Property @{M = 123}`
    
  2. Cette approche peut être utilisée pour ajouter des membres NoteProperty ou ScriptMethod.

    $x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}`
    
  3. Cette approche peut être utilisée pour ajouter n’importe quel type de membre.

    $x = New-Object PsObject
    Add-Member -InputObject $x -Name M -MemberType NoteProperty -Value 123
    

PsObject est le type de base de tous les types PowerShell.