Partager via


4. Types

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.

Dans PowerShell, chaque valeur a un type et les types appartiennent à l’une des deux catégories principales : types valeur et types de référence. Considérez le type int, qui est typique 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 de bits de cette valeur représente une valeur valide pour son type. À présent, considérez le type de tableau int[], qui est typique des types de référence. Une valeur dite d’un type de tableau peut contenir soit une référence à un objet qui contient réellement les éléments du tableau, soit la référence nulle , dont la valeur est $null. L'importante distinction entre les deux catégories de types est mieux illustrée par les différences de leur signification lors de l’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; c'est-à-dire, une copie de la référence à l’objet plutôt que de sa valeur réelle. En revanche, une copie approfondie nécessite également d’effectuer une copie de l’objet.

Un type numérique est un type qui permet la représentation de valeurs entières ou fractionnaires et qui 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 bool (§4.2.1) ou char (§4.2.2). Une implémentation peut fournir d’autres types numériques (par exemple, octet signé, entier non signé et entiers d’autres tailles).

Une collection est un groupe d’un ou plusieurs éléments connexes, qui n’ont pas besoin du même type. Des exemples de types de collection sont des tableaux, des piles, des files d’attente, des listes et des tables de hachage. Un programme peut énumérer (ou itérer) sur les éléments d’une collection, en obtenant l’accès à chaque élément un à la fois. Pour ce faire, utilisez l’instruction foreach (§8.4.4) et l’applet de commande ForEach-Object . 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 sous la forme suivante : returnType/argumentTypeList. Si la liste de types d’arguments est trop longue pour s’adapter à cette colonne, elle est affichée dans la colonne Objectif à la place.

D’autres types entiers sont SByte, Int16, UInt16, UInt32et UInt64, tous dans l’espace de noms System.

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

Vous pouvez également utiliser des noms abrégés pour certains types. Pour plus d’informations, veuillez consulter la section à propos des accélérateurs de type.

4.1 Types spéciaux

4.1.1 Type void

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

4.1.2 Le type nul

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 « nothingness » dans les contextes de référence. Les caractéristiques de ce type ne sont pas spécifiées.

4.1.3 Type d’objet

Chaque type dans PowerShell, à l’exception du type Null (§4.1.2) est dérivé directement ou indirectement de l’objet de type. L’objet est donc le type de base ultime de tous les types non Null. Une variable contrainte (§5.3) pour taper un objet n’est vraiment pas limitée du tout, car elle peut contenir une valeur de n’importe quel type.

4.2 Types valeur

4.2.1 Boolean

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

Dans PowerShell, bool correspond à System.Boolean.

4.2.2 Caractère

Une valeur de caractère est de type char, capable de stocker n'importe quel point de code Unicode 16 bits encodé en UTF-16.

Le type char contient les membres accessibles suivants :

Membre Type de membre Type Fonction
Valeur maximum Propriété statique (lecture seule) car Plus grande valeur possible du type char
MinValue Propriété statique (lecture seule) car La plus petite valeur possible de 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 alphabétique
IsLetterOrDigit Méthode statique bool/char Teste si le caractère est un chiffre décimal ou une lettre alphabétique
IsLower Méthode statique bool/char Teste si le caractère est une lettre alphabétique 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 alphabétique majuscule
IsWhiteSpace Méthode statique bool/char Teste si le caractère est un espace blanc.
ToLower Méthode statique char/chaîne Convertit le caractère en minuscules
ToUpper Méthode statique char/chaîne Convertit le caractère en majuscule

Windows PowerShell : char correspond à System.Char.

4.2.3 Entier

Il existe deux types entiers signés, tous deux utilisent la représentation complémentaire de deux pour les valeurs négatives :

  • Type int, qui utilise 32 bits lui donnant une plage de -2147483648 à +2147483647, inclusive.
  • Type long, qui utilise 64 bits et lui donne une plage de -9223372036854775808 à +9223372036854775807, inclusivement.

Type int a les membres accessibles suivants :

Membre Type de membre Type Fonction
Valeur maximum Propriété statique (lecture seule) int La plus grande valeur possible de type int
MinValue Propriété statique (lecture seule) int La plus petite valeur possible de type int

Le type long contient les membres accessibles suivants :

Membre Type de membre Type Fonction
Valeur maximum 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 entier non signé :

  • Type byte, qui utilise 8 bits lui donnant une plage de 0 à 255, inclusive.

Le type byte contient les membres accessibles suivants :

Membre Type de membre Type Fonction
Valeur maximum Propriété statique (lecture seule) byte La plus grande valeur possible du type byte
MinValue Propriété statique (lecture seule) byte La plus petite valeur possible de type octet

Dans PowerShell, byte, intet long correspondent à System.Byte, System.Int32et System.Int64, respectivement.

4.2.4 Nombre réel

4.2.4.1 float et double

Il existe deux types 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 de 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 une précision étendue pour les résultats intermédiaires.

Le type float contient les membres accessibles suivants :

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

Le type double contient les membres accessibles suivants :

Membre Type de membre Type Fonction
Valeur maximum 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 L’infini négatif de la valeur constante
PositiveInfinity Propriété statique (lecture seule) double La valeur constante de l’infini positif

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

4.2.4.2 décimal

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

Le type décimal comporte les membres accessibles suivants :

Membre Type de membre Type Fonction
Valeur maximum Propriété statique (lecture seule) Décimal La plus grande valeur possible de type décimal
MinValue Propriété statique (lecture seule) Décimal La plus petite valeur possible de type décimal

Remarque

Les nombres réels décimaux ont une caractéristique appelée échelle, qui représente le nombre de chiffres à droite de la virgule décimale. Par exemple, la valeur 2,340 a une échelle de 3 où les zéros de fin sont significatifs. Lorsque deux nombres réels décimaux sont ajoutés ou soustraits, l’échelle du résultat est la plus grande des deux échelles. Par exemple, 1.0 + 2.000 est 3.000, tandis que 5.0 - 2.00 est 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 2.0000. Lorsque deux nombres réels décimaux sont divisés, l’échelle du résultat est l’échelle du premier moins l’échelle de la seconde. Par exemple, 4.00000/2.000 est 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 1.5.

Dans PowerShell, decimal correspond à System.Decimal. La représentation de la décimale est la suivante :

  • Lorsqu’elle est considérée comme un tableau de quatre valeurs int, elle contient les éléments suivants :
    • L’index 0 (bits 0-31) contient les 32 bits de faible ordre du coefficient décimal.
    • L’index 1 (bits 32-63) contient les 32 bits intermédiaires du coefficient décimal.
    • L’index 2 (bits 64-95) contient les 32 bits de ordre élevé du coefficient décimal.
    • L’index 3 (bits 96-127) contient le bit de signe et l’échelle, comme suit :
      • bits 0--15 sont zéro
      • bits 16-23 contient l’échelle sous forme de valeur 0--28
      • bits 24-30 sont zéro
      • bit 31 est le signe (0 pour positif, 1 pour négatif)

4.2.5 Type de commutateur

Ce type est utilisé pour limiter le type d’un paramètre dans une commande (§8.10.5). Si un argument avec le nom de paramètre correspondant est présent, le paramètre teste la valeur $true ; sinon, il teste la valeur $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 ensemble de constantes nommées représentant toutes les valeurs possibles qui peuvent ê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 est des puissances distinctes de deux et, à l’aide de 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 Type de membre Fonction
Continuer Constante d’énumération Le runtime PowerShell continuera à traiter et informera l’utilisateur qu’une action s’est produite.
S'informer Constante d’énumération Le runtime PowerShell arrête le traitement et demande à l’utilisateur comment il doit continuer.
SilentlyContinue Constante d’énumération Le runtime PowerShell continuera à traiter sans avertir l’utilisateur qu’une action s’est produite.
Arrêter Constante d’énumération Le runtime PowerShell arrête le traitement lorsqu’une action se produit.

Dans PowerShell, ce type est 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 Type de membre Fonction
Élevé Constante d’énumération L’action effectuée présente un risque élevé de perte de données, comme la 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, ce type est System.Management.Automation.ConfirmImpact.

4.2.6.3 Type File-Attributes

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

Membre Type de membre Fonction
Archivage Constante d’énumération État d’archivage du fichier. Les applications utilisent cet attribut pour marquer les fichiers à des fins de sauvegarde ou de suppression.
Comprimé Constante d’énumération Le fichier est compressé.
Appareil Réservé pour une utilisation ultérieure.
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é. Pour un fichier, cela signifie que toutes les données du fichier sont chiffrées. Pour un répertoire, cela signifie que le chiffrement est la valeur par défaut pour les fichiers et répertoires nouvellement créés.
Masqué(e) Constante d’énumération Le fichier est masqué et n’est donc pas inclus dans une liste de répertoires ordinaire.
Normal Constante d’énumération Le fichier est normal et n’a pas d’autres attributs définis. Cet attribut est valide uniquement 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 ligne Constante d’énumération Le fichier est hors connexion. Les données du fichier ne sont pas immédiatement disponibles.
ReadOnly Constante d’énumération Le fichier est en lecture seule.
ReparsePoint Constante d’énumération Le fichier contient un point de réanalyse, qui est un bloc de données défini par l'utilisateur associé à un fichier ou à un répertoire.
SparseFile Constante d’énumération Le fichier est un fichier sparse. Les fichiers clairsemés sont généralement des fichiers volumineux dont les données sont principalement 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 au lieu 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, ce type est System.IO.FileAttributes avec l’attribut FlagsAttribute.

4.2.6.4 Type Regular-Expression-Option

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

Membre Type de membre Fonction
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, ce type est System.Text.RegularExpressions.RegexOptions avec l’attribut FlagsAttribute. Les valeurs supplémentaires suivantes sont définies : Compiled, CultureInvariant, ECMAScript, ExplicitCapture, IgnorePatternWhitespace, Multiline, RightToLeft, Singleline.

4.3 Types de référence

4.3.1 Chaînes

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

Le type string a les membres accessibles suivants :

Membre Type de membre Type Fonction
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 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 comporte les membres accessibles suivants :

Membre Type de membre Type Fonction
Longueur Propriété d’instance (lecture seule) int Nombre d’éléments dans le tableau
Rang 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, de destination est le tableau de destination, nombre correspond au 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, nombre int)
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

Type Hashtable a les membres accessibles suivants :

Membre Type de membre Type Fonction
Count Propriété d’instance int Obtient le nombre de paires clé/valeur dans la table de hachage
Touches 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
Retirer Méthode d'instance vide/aucun Supprime la clé/la valeur désignée

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

Dans PowerShell, Hashtable correspond à System.Collections.Hashtable. Hashtable éléments sont stockés dans un objet de type DictionaryEntry, et les collections retournées par clés et valeurs 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 arborescence en mémoire (cache) d’un document XML et 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 des machines pour prendre en charge le traitement des expressions régulières. Il est utilisé pour limiter 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.

Type ref fournit des machines pour permettre aux arguments d’être transmis aux commandes par référence, de sorte que les commandes peuvent modifier la valeur de l’argument. Type ref a les membres accessibles suivants :

Membre Type de membre Type Fonction
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 son paramètre correspondant doivent être déclarés ref.

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

4.3.7 Le type scriptblock

Type scriptblock représente un bloc précompilé de texte de script (§7.1.8) qui peut être utilisé en tant qu’unité unique. Il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
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) implémentation définie ([§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 se trouvent dans le contexte de l’appelant sont 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 tous les objets générés.
Créer Méthode statique scriptblock
/string
Crée un 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 Type mathématique

Le type math permet d’accéder à certaines constantes et méthodes utiles dans les calculs mathématiques. Il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
E Propriété statique (lecture seule) double Base logarithmique naturelle
PI Propriété statique (lecture seule) double Ratio 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 identique au type de l’argument passé)
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
Plafond Méthode statique

decimal/decimal

double/double

le 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
Étage 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 d'un nombre à l’aide de la base e, la base ou la 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 de deux nombres spécifiés (le type de retour est identique au type des arguments passés)
Min Méthode statique numérique/numérique, numérique Plus petit de deux nombres spécifiés (le type de retour est identique au type des arguments passés)
Pow Méthode statique double/double x, double y Nombre spécifié x élevé à la puissance spécifiée y
Péché 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

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

4.3.10 Le type pscustomobject

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

4.4 Types génériques

Un certain nombre de langages de programmation et d’environnements fournissent des types qui peuvent être spécialisés . La plupart de ces types sont appelés types de conteneurs, car les instances de ces types 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). En règle générale, l’utilisateur d’une pile souhaite 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 du type Stack doivent être implémentées même si elles effectuent toutes la même tâche, juste avec des éléments de type différents.

La spécialisation de type permet d’implémenter un type générique afin qu’il puisse être contraint de gérer 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 pourrait être écrit comme Stack[string].
  • Un type de dictionnaire générique spécialisé pour contenir des clés int avec des valeurs de chaîne associées peut être écrit en tant que Dictionary[int,string].
  • Une pile de chaînes peut être écrite sous la forme de Stack[Stack[string]].

Bien que PowerShell ne définit aucun type générique intégré, il peut utiliser ces 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 type donné, et ces objets ont des membres accessibles au script. Toutefois, le nom réel de ces types n’a pas besoin d’être spécifié, tant que les membres accessibles sont suffisamment spécifiés pour qu’ils soient 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 du fournisseur

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

Membre Type de membre Type Fonction
Lecteurs Propriété d’instance (lecture seule) Implémentation définie (§4.5.2) Collection d’objets de description de lecteur
Nom Propriété d’instance (lecture seule) string Nom du fournisseur

Dans PowerShell, ce type est System.Management.Automation.ProviderInfo.

4.5.2 Type de description de lecteur

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

Membre Type de membre Type Fonction
Emplacement actuel 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
Nom Propriété d’instance (lecture seule) string Nom du lecteur
Racine Propriété d’instance (lecture seule) string Nom du lecteur

Dans PowerShell, ce type est System.Management.Automation.PSDriveInfo.

4.5.3 Type de description de variable

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

Membre Type de membre Type Fonction
Attributs Propriété d’instance (lecture seule) Implémentation définie 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) Implémentation définie (§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
Nom 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) objet Valeur affectée à la variable lorsqu’elle a été affectée dans la langue PowerShell ou via les applets de commande New-Variable et Set-Variable.

Dans PowerShell, ce type est 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 dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
CommandType Propriété d’instance (lecture seule) Implémentation définie 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) Implémentation définie (§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
Nom Propriété d’instance (lecture seule) string Nom affecté à l’alias lors de sa création via les applets de commande New-Alias ou Set-Alias.
Options Propriété d’instance (lecture-écriture) string Options affectées à l’alias via les applets de commande New-Alias New-Alias ou Set-Alias.
Type de sortie Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types de valeurs de sortie 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.
EnsemblesDeParamètres 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) Implémentation définie Informations sur la commande qui est immédiatement référencée par cet alias.
ResolvedCommand Propriété d’instance (lecture seule) Implémentation définie Informations sur la commande de résolution de l’alias.

Dans PowerShell, ce type est System.Management.Automation.AliasInfo.

4.5.5 Type de description de l’emplacement de travail

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

Membre Type de membre Type Fonction
Conduire Propriété d’instance (lecture seule) Implémentation définie (§4.5.2) Objet de description d’un lecteur
Chemin Propriété d’instance (lecture seule) string Emplacement de travail
Fournisseur Propriété d’instance (lecture seule) Implémentation définie (§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 dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
Nom 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, ce type est System.Collections.DictionaryEntry. Le nom de la variable est la clé de dictionnaire. La valeur de la variable d’environnement correspond à celle du dictionnaire. Name est une AliasProperty qui équivaut à Key.

4.5.7 Type de description de l’application

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

Membre Type de membre Type Fonction
CommandType Propriété d’instance (lecture seule) Implémentation définie 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) Implémentation définie (§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.
Nom Propriété d’instance (lecture seule) string Nom de la commande.
Type de sortie Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types de la sortie des valeurs par la commande.
Paramètres Propriété d’instance (lecture seule) Collection définie par l’implémentation Paramètres de la commande.
EnsemblesDeParamètres 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 Propriété d’instance (lecture seule) string Obtient le chemin d’accès du fichier d’application.

Dans PowerShell, ce type est 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 dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
CommandType Propriété d’instance (lecture seule) Implémentation définie Doit avoir une valeur égale à « Cmdlet ».
DefaultParameterSet Propriété d’instance (lecture seule) Implémentation définie Jeu de paramètres par défaut utilisé si PowerShell ne peut pas déterminer le jeu de paramètres à utiliser en fonction des arguments fournis.
Définition Propriété d’instance (lecture seule) string Description de l’applet de commande.
Fichier d'aide 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) Implémentation définie Type qui implémente l’applet de commande.
Module Propriété d’instance (lecture seule) Implémentation définie (§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.
Nom 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.
Type de sortie Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types de sortie des valeurs 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.
EnsemblesDeParamètres 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) Implémentation définie Windows PowerShell : informations sur le composant logiciel enfichable Windows PowerShell utilisé pour inscrire l’applet de commande.

Dans PowerShell, ce type est System.Management.Automation.CmdletInfo.

4.5.9 Type de description de script externe

Ce type encapsule l’état d’un script externe (qui est directement exécutable par PowerShell, mais qui n’est pas intégré). Il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
CommandType Propriété d’instance (lecture seule) Implémentation définie 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) Implémentation définie (§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.
Nom Propriété d’instance (lecture seule) string Nom du script.
OriginalEncoding Propriété d’instance (lecture seule) Implémentation définie Encodage d’origine utilisé pour convertir les caractères du script en octets.
Type de sortie Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types de valeurs de sortie par le script.
Paramètres Propriété d’instance (lecture seule) Collection définie par l’implémentation Paramètres du script.
EnsemblesDeParamètres 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 Propriété d’instance (lecture seule) string Chemin d’accès au fichier de script.
ScriptBlock Propriété d’instance (lecture seule) scriptblock Le script externe.
ScriptContents Propriété d’instance (lecture seule) string Contenu d’origine du script.

Dans PowerShell, ce type est System.Management.Automation.ExternalScriptInfo.

4.5.10 Type de description de la fonction

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

Membre Type de membre Type Fonction
CmdletBinding Propriété d’instance (lecture seule) bool Indique si la fonction utilise la même liaison de paramètres que celle utilisée par les applets de commande compilées (voir §12.3.5).
CommandType Propriété d’instance (lecture seule) Implémentation définie Peut être comparé pour l'égalité avec « Function » ou « Filter » pour déterminer lequel de ces objets cet objet représente.
DefaultParameterSet Propriété d’instance (lecture seule) string Spécifie le jeu de paramètres à utiliser si cela ne peut pas être déterminé à partir des arguments (voir §12.3.5).
Définition Propriété d’instance (lecture seule) string Version sous forme de chaîne de ScriptBlock
Description Propriété d’instance (lecture-écriture) string Description de la fonction.
Module Propriété d’instance (lecture seule) Implémentation définie (§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
Nom Propriété d’instance (lecture seule) string Nom de la fonction
Options Propriété d’instance (lecture-écriture) Implémentation définie Options d’étendue de la fonction (§3.5.4).
Type de sortie Propriété d’instance (lecture seule) Collection définie par l’implémentation Spécifie les types de sortie des valeurs, 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 de paramètres, dans l’ordre. Si la fonction agit comme une applet de commande (voir CmdletBinding ci-dessus), les paramètres courants sont inclus à la fin de la collection.
EnsemblesDeParamètres 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 affiche le nom et le type du paramètre, et indique si le paramètre est obligatoire, par position ou par paramètre de commutateur. Si la fonction agit comme une applet de commande (voir CmdletBinding ci-dessus), les paramètres courants sont inclus à la fin de la collection.
ScriptBlock Propriété d’instance (lecture seule) scriptblock (§ 4.3.6) Corps de la fonction

Dans PowerShell, ce type est 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 du filtre

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

Dans PowerShell, ce type est System.Management.Automation.FilterInfo. Il a le même ensemble de propriétés que System.Management.Automation.FunctionInfo (§4.5.11).

4.5.12 Type de description du module

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

Membre Type de membre Type Fonction
Description Propriété d’instance (lecture-écriture) string Description du module (définie par le manifeste)
ModuleType Propriété d’instance (lecture seule) Implémentation définie Type du module (manifeste, script ou binaire)
Nom Propriété d’instance (lecture seule) string Nom du module
Chemin Propriété d’instance (lecture seule) string Chemin d’accès du module

Dans PowerShell, ce type est 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, ce type est 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 exécutée. Le type de cet objet est défini par l'implémentation ; il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
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 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, ce type est System.Management.Automation.PSScriptCmdlet.

4.5.15 Type de description d’enregistrement d’erreur

La variable automatique $Error contient une collection d’enregistrements d’erreurs 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, le type de collection est 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 lorsque l’erreur s’est produite.

4.5.16 Type de description de l’é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 n’importe quelle 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 n’importe quelle instruction switch.

Le type d’énumérateur est défini ; il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
Actuel Propriété d’instance (lecture seule) objet Obtient l'élément actuel dans la collection. Si l’énumérateur n’est pas actuellement positionné sur un élément de la collection, le comportement est défini par l'implémentation.
PasserSuivant Méthode d’instance Aucun/bool Avance l’énumérateur vers l’élément suivant de la collection. Retourne $true si l’énumérateur s'est avancé à l’élément suivant ; $false si l’énumérateur a atteint la fin de la collection.

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

4.5.17 Type de description du répertoire

L’applet de commande new-item peut créer des éléments de différents types, notamment des répertoires FileSystem. Le type d’un objet de description de répertoire est défini ; il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
Attributs Propriété d’instance (lecture-écriture) Implémentation définie (§4.2.6.3) Obtient ou définit un ou plusieurs attributs de l’objet de répertoire.
CreationTime Propriété d’instance (lecture-écriture) Implémentation définie (§4.5.19) Obtient et 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) Implémentation définie (§4.5.19) Obtient ou définit l’heure de la dernière écriture dans le répertoire.
Nom Propriété d’instance (lecture seule) string Obtient le nom du répertoire.

Dans PowerShell, ce type est System.IO.DirectoryInfo. Le type de la propriété Attributes est System.IO.FileAttributes.

4.5.18 Type de description du 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 ; il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
Attributs Propriété d’instance (lecture-écriture) Implémentation définie (§4.2.6.3) Obtient ou définit un ou plusieurs attributs de l’objet fichier.
Nom de base Propriété d’instance (lecture seule) string Obtient le nom du fichier, à l’exclusion de l’extension.
CreationTime Propriété d’instance (lecture-écriture) Implémentation définie (§4.5.19) Obtient et définit l’heure de création de l’objet fichier.
Extension Propriété d’instance (lecture seule) string Obtient la partie d’extension du nom de fichier.
FullName Propriété d’instance (lecture seule) string Obtient le chemin complet du fichier.
LastWriteTime Propriété d’instance (lecture-écriture) Implémentation définie (§4.5.19) Obtient et définit l’heure à laquelle le fichier a été écrit pour la dernière fois.
Longueur Propriété d’instance (lecture seule) long Obtient la taille du fichier, en octets.
Nom Propriété d’instance (lecture seule) string Obtient le nom du fichier.
VersionInfo Propriété d’instance (lecture seule) Implémentation définie Windows PowerShell : Ce ScriptProperty retourne un System.Diagnostics.FileVersionInfo pour le fichier.

Dans PowerShell, ce type est System.IO.FileInfo.

4.5.19 Date-Time type de description

Le type d’un objet de description date-heure est défini par l’implémentation ; il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
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 d’heure de la date représentée par cette instance.
Minute Propriété d’instance (lecture seule) int Obtient le composant minute de la date représentée par cette instance.
Mois 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 de secondes de la date représentée par cette instance.
Année 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, ce type est 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 Type 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.
Nom 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, ce type est Microsoft.PowerShell.Commands.GroupInfo.

4.5.21 Type de description Generic-Measure-Info

Le type d’un objet description generic-measure-info est défini par l’implémentation ; il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
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.
Somme 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, ce type est Microsoft.PowerShell.Commands.GenericMeasureInfo.

4.5.22 Type de description Text-Measure-Info

Le type d'un objet de description d'informations de texte est défini par l'implémentation ; il dispose des membres accessibles suivants :

Membre Type de membre Type Fonction
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.
Mots 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, ce type est Microsoft.PowerShell.Commands.TextMeasureInfo.

4.5.23 Type d'identifiants

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 comporte les membres accessibles suivants :

Membre Type de membre Type Objectif
Mot de passe Propriété d’instance (lecture seule) Implémentation définie Obtient le mot de passe.
Nom d’utilisateur 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, ce type est System.Management.Automation.PSCredential.

4.5.24 Type d’indicateur de méthode

Le type d’un indicateur de méthode est défini ; il dispose des membres accessibles suivants :

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

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

Dans PowerShell, ce type est System.Management.Automation.PSMethod.

4.5.25 Type de définition de membre

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

Membre Type de membre Type Fonction
Définition Propriété d’instance (lecture seule) string Obtient la définition du membre.
TypeDeMembre Propriété d’instance (lecture seule) Implémentation définie Obtient le type PowerShell du membre.
Nom 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, ce type est Microsoft.PowerShell.Commands.MemberDefinition.

4.6 Extension et adaptation des types

Une implémentation PowerShell inclut une famille de types principaux (qui sont documentés 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 ils peuvent être des membres d’instance ou statiques. Par exemple, les membres de base de la chaîne de type (§4.3.1) sont la propriété Length de l’instance et les 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 pour la durée de vie de cette instance ; d'autres instances du même type de noyau ne sont pas affectées.

L’ensemble de membres de base d’un type peut être augmenté en ajoutant les 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 membressynthétiques (synthetic members).

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

Un membre d’instance peut masquer un membre étendu et/ou adapté du même nom, et un membre étendu peut masquer 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é prend en charge, obj.psextended fournit l’accès à ce membre et non à un membre ajouté via Add-Member.

Il existe trois façons de créer un objet personnalisé ayant un nouveau membre M :

  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.