Update-TypeData

Met à jour les données de type étendu dans la session.

Syntax

Update-TypeData
      [[-AppendPath] <String[]>]
      [-PrependPath <String[]>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Update-TypeData
      [-MemberType <PSMemberTypes>]
      [-MemberName <String>]
      [-Value <Object>]
      [-SecondValue <Object>]
      [-TypeConverter <Type>]
      [-TypeAdapter <Type>]
      [-SerializationMethod <String>]
      [-TargetTypeForDeserialization <Type>]
      [-SerializationDepth <Int32>]
      [-DefaultDisplayProperty <String>]
      [-InheritPropertySerializationSet <Nullable`1>]
      [-StringSerializationSource <String>]
      [-DefaultDisplayPropertySet <String[]>]
      [-DefaultKeyPropertySet <String[]>]
      [-PropertySerializationSet <String[]>]
      -TypeName <String>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Update-TypeData
      [-Force]
      [-TypeData] <TypeData[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

L’applet Update-TypeData de commande met à jour les données de type étendues dans la session en rechargeant les Types.ps1xml fichiers en mémoire et en ajoutant de nouvelles données de type étendu.

Par défaut, PowerShell charge les données de type étendues en fonction des besoins. Sans paramètres, Update-TypeData recharge tous les Types.ps1xml fichiers qu’il a chargés dans la session, y compris les fichiers de type que vous avez ajoutés. Vous pouvez utiliser les paramètres de l’ajout de Update-TypeData nouveaux fichiers de type et ajouter et remplacer des données de type étendues.

L’applet Update-TypeData de commande peut être utilisée pour précharger toutes les données de type. Cette fonctionnalité est particulièrement utile quand vous développez des types et que vous souhaitez charger ces nouveaux types à des fins de test.

À compter de Windows PowerShell 3.0, vous pouvez l’utiliser Update-TypeData pour ajouter et remplacer des données de type étendu dans la session sans utiliser de Types.ps1xml fichier. Les données de type ajoutées de manière dynamique, c'est-à-dire sans fichier, sont ajoutées uniquement à la session active. Pour ajouter les données de type à toutes les sessions, ajoutez une Update-TypeData commande à votre profil PowerShell. Pour plus d’informations, consultez about_Profiles.

En outre, à partir de Windows PowerShell 3.0, vous pouvez utiliser l’applet Get-TypeData de commande pour obtenir les types étendus dans la session active et l’applet Remove-TypeData de commande pour supprimer les types étendus de la session active.

Les exceptions qui se produisent dans les propriétés ou à partir de l’ajout de propriétés à une Update-TypeData commande ne signalent pas d’erreurs. Cela permet de supprimer des exceptions qui se produisent dans de nombreux types courants durant la mise en forme et la sortie. Si vous obtenez des propriétés .NET, vous pouvez contourner la suppression des exceptions à l’aide de la syntaxe de méthode à la place, comme illustré dans l’exemple suivant :

"hello".get_Length()

Notez que la syntaxe de méthode ne peut être utilisée qu’avec les propriétés .NET. Les propriétés ajoutées en exécutant l’applet de commande ne peuvent pas utiliser la Update-TypeData syntaxe de méthode.

Pour plus d’informations sur les Types.ps1xml fichiers dans PowerShell, consultez about_Types.ps1xml.

Exemples

Exemple 1 : Mettre à jour les types étendus

Update-TypeData

Cette commande met à jour la configuration de type étendu à partir des Types.ps1xml fichiers qui ont déjà été utilisés dans la session.

Exemple 2 : Mettre à jour plusieurs fois les types

Cet exemple montre comment mettre à jour les types dans un fichier de type plusieurs fois dans la même session.

La première commande met à jour la configuration de type étendu à partir des Types.ps1xml fichiers, en traitant d’abord les fichiers et TypesB.types.ps1xml les TypesA.types.ps1xml fichiers.

La deuxième commande montre comment mettre à jour la TypesA.types.ps1xml nouvelle fois, par exemple si vous avez ajouté ou modifié un type dans le fichier. Vous pouvez répéter la commande précédente pour le TypesA.types.ps1xml fichier ou exécuter une Update-TypeData commande sans paramètres, car TypesA.types.ps1xml elle figure déjà dans la liste de fichiers de type de la session active.

Update-TypeData -PrependPath TypesA.types.ps1xml, TypesB.types.ps1xml
Update-TypeData -PrependPath TypesA.types.ps1xml

Exemple 3 : Ajouter une propriété de script à des objets DateTime

Cet exemple utilise Update-TypeData pour ajouter la propriété de script Quarter aux objets System.DateTime dans la session active, telles que celles retournées par l’applet Get-Date de commande.

Update-TypeData -TypeName "System.DateTime" -MemberType ScriptProperty -MemberName "Quarter" -Value {
  if ($this.Month -in @(1,2,3)) {"Q1"}
  elseif ($this.Month -in @(4,5,6)) {"Q2"}
  elseif ($this.Month -in @(7,8,9)) {"Q3"}
  else {"Q4"}
}
(Get-Date).Quarter

Q1

La Update-TypeData commande utilise le paramètre TypeName pour spécifier le type System.DateTime , le paramètre MemberName pour spécifier un nom pour la nouvelle propriété, la propriété MemberType pour spécifier le type ScriptProperty et le paramètre Value pour spécifier le script qui détermine le trimestre annuel.

La valeur de la propriété Value est un script qui calcule le trimestre annuel actuel. Le bloc de script utilise la $this variable automatique pour représenter l’instance actuelle de l’objet et l’opérateur In pour déterminer si la valeur du mois apparaît dans chaque tableau entier. Pour plus d’informations sur l’opérateur -in , consultez about_Comparison_Operators.

La deuxième commande obtient la nouvelle propriété Quarter de la date actuelle.

Exemple 4 : Mettre à jour un type qui s’affiche dans des listes par défaut

Cet exemple montre comment définir les propriétés d’un type qui s’affiche dans les listes par défaut, c’est-à-dire quand aucune propriété n’est spécifiée. Étant donné que les données de type ne sont pas spécifiées dans un Types.ps1xml fichier, elles sont effectives uniquement dans la session active.

Update-TypeData -TypeName "System.DateTime" -DefaultDisplayPropertySet "DateTime, DayOfYear, Quarter"
Get-Date | Format-List

Thursday, March 15, 2012 12:00:00 AM
DayOfYear : 75
Quarter   : Q1

La première commande utilise l’applet Update-TypeData de commande pour définir les propriétés de liste par défaut pour le type System.DateTime . La commande utilise le paramètre TypeName pour spécifier le type et le paramètre DefaultDisplayPropertySet pour spécifier les propriétés par défaut d’une liste. Les propriétés sélectionnées incluent la nouvelle propriété de script Quarter qui a été ajoutée dans un exemple précédent.

La deuxième commande utilise l’applet Get-Date de commande pour obtenir un objet System.DateTime qui représente la date actuelle. La commande utilise un opérateur de pipeline (|) pour envoyer l’objet DateTime à l’applet Format-List de commande. Étant donné que la Format-List commande ne spécifie pas les propriétés à afficher dans la liste, PowerShell utilise les valeurs par défaut établies par la Update-TypeData commande.

Exemple 5 : Mettre à jour les données de type pour un objet redirigé

Get-Module | Update-TypeData -MemberType ScriptProperty -MemberName "SupportsUpdatableHelp" -Value {
  if ($this.HelpInfoUri) {$True} else {$False}
}
Get-Module -ListAvailable | Format-Table Name, SupportsUpdatableHelp

Name                             SupportsUpdatableHelp
----                             ---------------------
Microsoft.PowerShell.Diagnostics                  True
Microsoft.PowerShell.Host                         True
Microsoft.PowerShell.Management                   True
Microsoft.PowerShell.Security                     True
Microsoft.PowerShell.Utility                      True
Microsoft.WSMan.Management                        True
PSDiagnostics                                    False
PSScheduledJob                                    True
PSWorkflow                                        True
ServerManager                                     True
TroubleshootingPack                              False

Cet exemple montre que lorsque vous dirigez un objet vers Update-TypeData, Update-TypeData ajoute des données de type étendu pour le type d’objet.

Cette technique est plus rapide que l’utilisation de l’applet Get-Member de commande ou de la Get-Type méthode pour obtenir le type d’objet. Toutefois, si vous dirigez une collection d’objets vers Update-TypeData, il met à jour les données de type du premier type d’objet, puis retourne une erreur pour tous les autres objets de la collection, car le membre est déjà défini sur le type.

La première commande utilise l’applet Get-Module de commande pour obtenir le module PSScheduledJob. La commande canalise l’objet module vers l’applet Update-TypeData de commande, qui met à jour les données de type pour le type System.Management.Automation.PSModuleInfo et les types dérivés de celui-ci, tels que le type ModuleInfoGrouping qui Get-Module retourne lorsque vous utilisez le paramètre ListAvailable dans la commande.

Les Update-TypeData commandes ajoutent la propriété de script SupportsUpdatableHelp à tous les modules importés. La valeur du paramètre Value est un script qui retourne $True si la propriété HelpInfoUri du module est remplie et $False sinon.

La deuxième commande canalise les objets de module de l’applet de Get-Module commande, qui affiche les propriétés Name et SupportsUpdatableHelp de tous les modules d’une Format-Table liste.

Paramètres

-AppendPath

Spécifie le chemin d’accès aux fichiers facultatifs .ps1xml . Les fichiers spécifiés sont chargés dans l'ordre dans lequel ils sont répertoriés après le chargement des fichiers intégrés. Vous pouvez également diriger une valeur AppendPath vers Update-TypeData.

Type:String[]
Aliases:PSPath, Path
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultDisplayProperty

Spécifie la propriété du type affiché par l’applet Format-Wide de commande lorsqu’aucune autre propriété n’est spécifiée.

Tapez le nom d'une propriété standard ou étendue du type. La valeur de ce paramètre peut correspondre au nom d'un type ajouté dans la même commande.

Cette valeur n’est effective qu’en l’absence de vues larges définies pour le type d’un Format.ps1xml fichier.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultDisplayPropertySet

Spécifie une ou plusieurs propriétés du type. Ces propriétés sont affichées par les Format-Listapplets de commande , Format-Tableet Format-Custom les applets de commande lorsqu’aucune autre propriété n’est spécifiée.

Tapez les noms des propriétés standard ou étendues du type. La valeur de ce paramètre peut correspondre aux noms des types ajoutés dans la même commande.

Cette valeur n’est effective qu’en l’absence de liste, de table ou de vues personnalisées, respectivement définies pour le type d’un Format.ps1xml fichier.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultKeyPropertySet

Spécifie une ou plusieurs propriétés du type. Ces propriétés sont utilisées par les Group-Object applets de commande et Sort-Object quand aucune autre propriété n’est spécifiée.

Tapez les noms des propriétés standard ou étendues du type. La valeur de ce paramètre peut correspondre aux noms des types ajoutés dans la même commande.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Indique que l’applet de commande utilise les données de type spécifiées, même si les données de type ont déjà été spécifiées pour ce type.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InheritPropertySerializationSet

Indique si l’ensemble de propriétés sérialisées est hérité. La valeur par défaut est $Null. Les valeurs valides pour ce paramètre sont :

  • $True. Le jeu de propriétés est hérité.
  • $False. Le jeu de propriétés n'est pas hérité.
  • $Null. L'héritage n'est pas défini.

Ce paramètre est valide uniquement lorsque la valeur du paramètre SerializationMethod est SpecificProperties. Lorsque la valeur de ce paramètre est $False, le paramètre PropertySerializationSet est requis.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:Nullable<T>[Boolean]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MemberName

Spécifie le nom d'une propriété ou d'une méthode.

Utilisez ce paramètre avec les paramètres TypeName, MemberType, Value et SecondValue pour ajouter ou modifier une propriété ou une méthode d’un type.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MemberType

Spécifie le type du membre à ajouter ou changer.

Utilisez ce paramètre avec les paramètres TypeName, MemberType, Value et SecondValue pour ajouter ou modifier une propriété ou une méthode d’un type. Les valeurs valides pour ce paramètre sont :

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • Remarqueproperty
  • ScriptMethod
  • ScriptProperty

Pour plus d’informations sur ces valeurs, consultez énumération PSMemberTypes.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:PSMemberTypes
Accepted values:NoteProperty, AliasProperty, ScriptProperty, CodeProperty, ScriptMethod, CodeMethod
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PrependPath

Spécifie le chemin d’accès aux fichiers facultatifs .ps1xml . Les fichiers spécifiés sont chargés dans l'ordre dans lequel ils sont répertoriés avant le chargement des fichiers intégrés.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PropertySerializationSet

Spécifie les noms des propriétés qui sont sérialisées. Utilisez ce paramètre lorsque la valeur du paramètre SerializationMethod est SpecificProperties.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecondValue

Spécifie des valeurs supplémentaires pour les membres AliasProperty, ScriptProperty, CodeProperty ou CodeMethod .

Utilisez ce paramètre avec les paramètres TypeName, MemberType, Value et SecondValue pour ajouter ou modifier une propriété ou une méthode d’un type.

Lorsque la valeur du paramètre MemberType est AliasProperty, la valeur du paramètre SecondValue doit être un type de données. PowerShell convertit (autrement dit, caste) la valeur de la propriété alias en type spécifié. Par exemple, si vous ajoutez une propriété d’alias qui fournit un autre nom pour une propriété de chaîne, vous pouvez également spécifier une SecondValue de System.Int32 pour convertir la valeur de chaîne alias en entier.

Lorsque la valeur du paramètre MemberType est ScriptProperty, vous pouvez utiliser le paramètre SecondValue pour spécifier un bloc de script supplémentaire. Le bloc de script dans la valeur du paramètre Value obtient la valeur d’une variable. Le bloc de script dans la valeur du paramètre SecondValue définit la valeur de la variable.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SerializationDepth

Spécifie le nombre de niveaux d'objets de type sérialisés en tant que chaînes. La valeur 1 par défaut sérialise l’objet et ses propriétés. Une valeur de 0 sérialise l’objet, mais pas ses propriétés. Une valeur de 2 sérialise l’objet, ses propriétés et tous les objets dans les valeurs de propriété.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:Int32
Position:Named
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SerializationMethod

Spécifie une méthode de sérialisation pour le type. Une méthode de sérialisation détermine quelles sont les propriétés du type qui sont sérialisées, ainsi que la technique de sérialisation utilisée. Les valeurs valides pour ce paramètre sont :

  • AllPublicProperties. sérialisez toutes les propriétés publiques du type. Vous pouvez utiliser le paramètre SerializationDepth pour déterminer si les propriétés enfants sont sérialisées.
  • String. sérialisez le type en tant que chaîne. Vous pouvez utiliser StringSerializationSource pour spécifier une propriété du type à utiliser comme résultat de sérialisation. Sinon, le type est sérialisé à l’aide de la méthode ToString de l’objet.
  • SpecificProperties. Sérialisez uniquement les propriétés spécifiées de ce type. Utilisez le paramètre PropertySerializationSet pour spécifier les propriétés du type sérialisé. Vous pouvez également utiliser le paramètre InheritPropertySerializationSet pour déterminer si le jeu de propriétés est hérité et le paramètre SerializationDepth pour déterminer si les propriétés enfants sont sérialisées.

Dans PowerShell, les méthodes de sérialisation sont stockées dans des objets internes PSStandardMembers .

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StringSerializationSource

Spécifie le nom d'une propriété du type. La valeur de la propriété spécifiée est utilisée comme résultat de la sérialisation. Ce paramètre est valide uniquement lorsque la valeur du paramètre SerializationMethod est String.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TargetTypeForDeserialization

Spécifie le type vers lequel les objets de ce type sont convertis quand ils sont désérialisés.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypeAdapter

Spécifie le type d’un adaptateur de type, tel que Microsoft.PowerShell.Cim.CimInstanceAdapter. Un adaptateur de type permet à PowerShell d’obtenir les membres d’un type.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypeConverter

Spécifie un convertisseur de type pour convertir des valeurs entre différents types. Si un convertisseur de type est défini pour un type, une instance du convertisseur de type est utilisée pour la conversion.

Entrez une valeur System.Type dérivée des classes System.ComponentModel.TypeConverter ou System.Management.Automation.PSTypeConverter .

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypeData

Spécifie un tableau de données de type que cette applet de commande ajoute à la session. Entrez une variable qui contient un objet TypeData ou une commande qui obtient un objet TypeData , tel qu’une Get-TypeData commande. Vous pouvez également diriger un objet TypeData vers Update-TypeData.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:TypeData[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TypeName

Spécifie le nom du type à étendre.

Pour les types dans l’espace de noms Système , entrez le nom court. Sinon, le nom de type complet est obligatoire. Les caractères génériques ne sont pas pris en charge.

Vous pouvez diriger les noms de types vers Update-TypeData. Lorsque vous dirigez un objet vers Update-TypeData, Update-TypeData obtient le nom de type de l’objet et les données de type vers le type d’objet.

Utilisez ce paramètre avec les paramètres MemberName, MemberType, Value et SecondValue pour ajouter ou modifier une propriété ou une méthode d’un type.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Value

Spécifie la valeur de la propriété ou de la méthode.

Si vous ajoutez un AliasProperty, ou ScriptPropertyCodePropertyCodeMethod un membre, vous pouvez utiliser le paramètre SecondValue pour ajouter des informations supplémentaires.

Utilisez ce paramètre avec les paramètres MemberName, MemberType, Value et SecondValue pour ajouter ou modifier une propriété ou une méthode d’un type.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

String

Vous pouvez diriger une chaîne qui contient les valeurs des paramètres AppendPath, TypeName ou TypeData vers cette applet de commande.

Sorties

None

Cette applet de commande ne retourne pas de sortie.