Compartir a través de


Update-TypeData

Actualiza los datos de tipo extendido en la sesión.

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 <Boolean>]
      [-StringSerializationSource <String>]
      [-DefaultDisplayPropertySet <String[]>]
      [-DefaultKeyPropertySet <String[]>]
      [-PropertySerializationSet <String[]>]
      -TypeName <String>
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Update-TypeData
      [-Force]
      [-TypeData] <TypeData[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

El cmdlet Update-TypeData actualiza los datos de tipos extendidos en la sesión; para ello vuelve a cargar los archivos Types.ps1xml en la memoria y agrega nuevos datos de tipos extendidos.

De forma predeterminada, Windows PowerShell carga los datos de tipos extendidos según sea necesario. Sin parámetros, Update-TypeData vuelve a cargar todos los archivos Types.ps1xml que ha cargado en la sesión, incluidos todos los archivos de tipos que agregó. Puede utilizar los parámetros de Update-TypeData para agregar nuevos archivos de tipos y agregar y reemplazar datos de tipos extendidos.

El cmdlet Update-TypeData se puede utilizar para cargar previamente todos los datos de tipos. Esta característica es especialmente útil cuando está desarrollando tipos y quiere cargar esos nuevos tipos con fines de prueba.

A partir de Windows PowerShell 3.0, puede usar Update-TypeData para agregar y reemplazar datos de tipos extendidos en la sesión sin utilizar un archivo Types.ps1xml. Los datos de tipos que se agregan de forma dinámica, es decir, sin un archivo, solo se agregan a la sesión actual. Para agregar los datos de tipos a todas las sesiones, agregue un comando Update-TypeData a su perfil de Windows PowerShell. Para obtener más información, consulte about_Profiles.

Además, a partir de Windows PowerShell 3.0, puede usar el cmdlet Get-TypeData para obtener los tipos extendidos en la sesión actual y el cmdlet Remove-TypeData para eliminar tipos extendidos de la sesión actual.

Las excepciones que se producen en las propiedades, o al agregar propiedades a un comando Update-TypeData, no notifican errores a StdErr. Esto es para suprimir las excepciones que se producirían en muchos tipos comunes durante la aplicación del formato y la generación del resultado. Si va a obtener las propiedades de .NET Framework, puede evitar la supresión de las excepciones utilizando la sintaxis de método en su lugar, como se muestra en el ejemplo siguiente:

"hello".get_Length()

Tenga en cuenta que la sintaxis de método solo puede utilizarse con las propiedades de .NET Framework. Las propiedades que se agregan mediante la ejecución del cmdlet Update-TypeData no pueden usar la sintaxis del método.

Para obtener más información sobre los archivos *types.ps1xml en PowerShell, vea about_Types.ps1xml.

Ejemplos

Ejemplo 1: Actualización de tipos extendidos

PS C:\> Update-TypeData

Este comando actualiza la configuración de tipos extendidos de los archivos *.types.ps1xml que ya se han utilizado en la sesión.

Ejemplo 2: Actualizar tipos varias veces

The first command updates the extended type configuration from the *.types.ps1xml files, processing the TypesA.types.ps1xml and TypesB.types.ps1xml files first.
PS C:\> Update-TypeData -PrependPath TypesA.types.ps1xml, TypesB.types.ps1xml

The second command shows how to update the TypesA.types.ps1xml again, such as you might do if you added or changed a type in the file. You can either repeat the previous command for the TypesA.types.ps1xml file, or run an **Update-TypeData** command without parameters, because TypesA.types.ps1xml is already in the type file list for the current session.
PS C:\> Update-TypeData -PrependPath TypesA.types.ps1xml

-or-

Update-TypeData

En este ejemplo se muestra cómo actualizar los tipos de un archivo de tipo varias veces en la misma sesión.

Ejemplo 3: Agregar una propiedad de script a objetos DateTime

PS C:\> 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"} }
PS C:\> (Get-Date).QuarterQ1

En este ejemplo se usa Update-TypeData para agregar la propiedad Quarter script a objetos System.DateTime en la sesión actual, como las devueltas por el cmdlet Get-Date.

El comando Update-TypeData utiliza el parámetro TypeName para especificar el tipo the System.DateTime, el parámetro MemberName para especificar un nombre para la nueva propiedad, la propiedad MemberType para especificar el tipo ScriptProperty y el parámetro Value para especificar el script que determina el trimestre anual.

El valor de la propiedad Value es un script que calcula el trimestre anual actual. El bloque de script usa la variable automática $this para representar la instancia actual del objeto y el operador In para determinar si el valor del mes aparece en cada matriz de enteros. Para obtener más información sobre el operador In, vea about_Comparison_Operators (https://go.microsoft.com/fwlink/?LinkID=113217).

El segundo comando obtiene la nueva propiedad Quarter de la fecha actual.

Ejemplo 4: Actualizar un tipo que se muestra en listas de forma predeterminada

PS C:\> Update-TypeData -TypeName "System.DateTime" -DefaultDisplayPropertySet "DateTime, DayOfYear, Quarter"
PS C:\> Get-Date | Format-List
Thursday, March 15, 2012 12:00:00 AM
DayOfYear : 75
Quarter   : Q1

En este ejemplo se muestra cómo establecer las propiedades de un tipo que se muestra en listas de forma predeterminada, es decir, cuando no se especifica ninguna propiedad. Como los datos de tipos no se especifican en un archivo Types.ps1xml, solo es efectivo en la sesión actual.

El primer comando usa el cmdlet Update-TypeData para establecer las propiedades de lista predeterminadas para el tipo System.DateTime. El comando utiliza el parámetro TypeName para especificar el tipo y el parámetro DefaultDisplayPropertySet para especificar las propiedades predeterminadas de una lista. Las propiedades seleccionadas incluyen la nueva propiedad de script Quarter que se agregó en un ejemplo anterior.

El segundo comando usa el cmdlet Get-Date para obtener un objeto System.DateTime que representa la fecha actual. El comando usa un operador de canalización (|) para enviar el objeto DateTime al cmdlet Format-List. Como el comando Format-List no especifica las propiedades que se van a mostrar en la lista, Windows PowerShell usa los valores predeterminados establecidos por el comando Update-TypeData.

Ejemplo 5: Actualización de datos de tipo para un objeto canalización

PS C:\> 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

En este ejemplo se muestra que cuando se canaliza un objeto a Update-TypeData, Update-TypeData agrega datos de tipos extendidos para el tipo de objeto.

Esta técnica es más rápida que usar el cmdlet Get-Member o el método Get-Type para obtener el tipo de objeto. Sin embargo, si canaliza una colección de objetos a Update-TypeData, actualiza los datos de tipo del primer tipo de objeto y, después, devuelve un error para todos los demás objetos de la colección porque el miembro ya está definido en el tipo.

El primer comando usa el cmdlet Get-Module para obtener el módulo PSScheduledJob. El comando canaliza el objeto de módulo al cmdlet Update-TypeData, que actualiza los datos de tipo para el tipo System.Management.Automation.PSModuleInfo y los tipos que derivan de él, como el tipo ModuleInfoGrouping que Get-Module devuelve cuando se usa el parámetro ListAvailable en el comando.

El comando Update-TypeData agrega la propiedad de script SupportsUpdatableHelp a todos los módulos importados. El valor del parámetro Value es un script que devuelve $True si la propiedad HelpInfoUri del módulo se rellena y $False de lo contrario.

El segundo comando canaliza los objetos de módulo de Get-Module al cmdlet Format-Table , que muestra las propiedades Name y SupportsUpdatableHelp de todos los módulos de una lista.

Parámetros

-AppendPath

Especifica la ruta de acceso a los archivos .ps1xml opcionales. Los archivos especificados se cargan en el orden con que aparecen después de que se carguen los archivos integrados. También se puede canalizar un valor de AppendPath a Update-TypeData.

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

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

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

-DefaultDisplayProperty

Especifica la propiedad del tipo que muestra el cmdlet Format-Wide cuando no se especifican otras propiedades.

Especifique el nombre de una propiedad estándar o extendida del tipo. El valor de este parámetro puede ser el nombre de un tipo que se agrega en el mismo comando.

Este valor solo es efectivo cuando no hay ninguna vista amplia definida para el tipo en un archivo Format.ps1xml.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-DefaultDisplayPropertySet

Especifica una o más propiedades del tipo. El cmdlet Format-List muestra estas propiedades cuando no se especifican otras propiedades.

Especifique los nombres de propiedades estándar o extendidas del tipo. El valor de este parámetro puede ser nombres de tipos que se agregan en el mismo comando.

Este valor solo es efectivo cuando no hay ninguna vista de lista definida para el tipo en un archivo Format.ps1xml.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-DefaultKeyPropertySet

Especifica una o más propiedades del tipo. Los cmdlets Group-Object y Sort-Object usan estas propiedades cuando no se especifica ninguna otra propiedad.

Especifique los nombres de propiedades estándar o extendidas del tipo. El valor de este parámetro puede ser nombres de tipos que se agregan en el mismo comando.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-Force

Indica que el cmdlet usa los datos de tipo especificados, incluso si ya se han especificado datos de tipo para ese tipo.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-InheritPropertySerializationSet

Indica si se hereda el conjunto de propiedades que se serializan. El valor predeterminado es $Null. Los valores permitidos para este parámetro son los siguientes:

  • $True. Se hereda el conjunto de propiedades.
  • $False. No se hereda el conjunto de propiedades.
  • $Null. La herencia no está definida.

Este parámetro solo es válido cuando el valor del parámetro SerializationMethod es SpecificProperties. Cuando el valor de este parámetro es $False, se requiere el parámetro PropertySerializationSet .

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-MemberName

Especifica el nombre de una propiedad o método.

Use este parámetro con los parámetros TypeName, MemberType, Value y SecondValue para agregar o cambiar una propiedad o método de un tipo.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-MemberType

Especifica el tipo del miembro que se va a agregar o cambiar.

Use este parámetro con los parámetros TypeName, MemberType, Value y SecondValue para agregar o cambiar una propiedad o método de un tipo. Los valores permitidos para este parámetro son los siguientes:

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • Propiedad note
  • ScriptMethod
  • ScriptProperty

Para obtener información sobre estos valores, vea ENUMERAción PSMemberTypes en MSDN Library.

Este parámetro se incorporó en 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

Especifica la ruta de acceso a los archivos .ps1xml opcionales. Los archivos especificados se cargan en el orden con que aparecen antes de que se carguen los archivos integrados.

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

-PropertySerializationSet

Especifica los nombres de las propiedades que se serializan. Utilice este parámetro cuando el valor del parámetro SerializationMethod es SpecificProperties.

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

-SecondValue

Especifica valores adicionales para los miembros AliasProperty, ScriptProperty, CodeProperty o CodeMethod.

Use este parámetro con los parámetros TypeName, MemberType, Value y SecondValue para agregar o cambiar una propiedad o un método de un tipo.

Cuando el valor del parámetro MemberType es AliasProperty, el valor del parámetro SecondValue debe ser un tipo de datos. Windows PowerShell convierte (es decir, convierte) el valor de la propiedad alias en el tipo especificado. Por ejemplo, si agrega una propiedad de alias que proporciona un nombre alternativo para una propiedad de cadena, también puede especificar un SecondValue de System.Int32 para convertir el valor de la cadena de alias en un entero.

Cuando el valor del parámetro MemberType es ScriptProperty, puede usar el parámetro SecondValue para especificar un bloque de script adicional. El bloque de script en el valor del parámetro Value obtiene el valor de una variable. El bloque de script en el valor del parámetro SecondValue establece el valor de la variable.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-SerializationDepth

Especifica cuántos niveles de objetos de tipo se serializan como cadenas. El valor predeterminado, 1, serializa el objeto y sus propiedades. Un valor de 0 serializa el objeto, pero no sus propiedades. Un valor de 2 serializa el objeto, sus propiedades y los objetos en los valores de propiedad.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-SerializationMethod

Especifica un método de serialización para el tipo. Un método de serialización determina qué propiedades del tipo se serializan y la técnica que se utiliza para serializarlas. Los valores permitidos para este parámetro son los siguientes:

  • AllPublicProperties. serializa todas las propiedades públicas del tipo. Puede utilizar el parámetro SerializationDepth para determinar si se serializan las propiedades secundarias.
  • String. serializar el tipo como una cadena. Puede utilizar StringSerializationSource para especificar una propiedad del tipo para usarla como resultado de la serialización. De lo contrario, el tipo se serializa utilizando el método ToString del objeto.
  • SpecificProperties. Serialice solo las propiedades especificadas de este tipo. Utilice el parámetro PropertySerializationSet para especificar las propiedades del tipo que se serializan. También puede utilizar el parámetro InheritPropertySerializationSet para determinar si se hereda el conjunto de propiedades y el parámetro SerializationDepth para determinar si se serializan las propiedades secundarias.

En Windows PowerShell, los métodos de serialización se almacenan en objetos internos PSStandardMembers.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-StringSerializationSource

Especifica el nombre de una propiedad del tipo. El valor de la propiedad especificada se utiliza como el resultado de la serialización. Este parámetro solo es válido cuando el valor del parámetro SerializationMethod es String.

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

-TargetTypeForDeserialization

Especifica el tipo al que se convierten los objetos de este tipo cuando se deserializan.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-TypeAdapter

Especifica el tipo de un adaptador de tipo, como Microsoft.PowerShell.Cim.CimInstanceAdapter. Un adaptador de tipos permite a Windows PowerShell obtener los miembros de un tipo.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-TypeConverter

Especifica un convertidor de tipos para convertir los valores entre los distintos tipos. Si se define un convertidor de tipos para un tipo, se utiliza una instancia del convertidor de tipos para la conversión.

Escriba un valor de System.Type que derive de las clases System.ComponentModel.TypeConverter o System.Management.Automation.PSTypeConverter.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-TypeData

Especifica una matriz de datos de tipo que este cmdlet agrega a la sesión. Escriba una variable que contenga un objeto TypeData o un comando que obtiene un objeto TypeData , como un comando Get-TypeData. También puede canalizar un objeto TypeData a Update-TypeData.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-TypeName

Especifica el nombre del tipo que se va a extender.

Para los tipos en el espacio de nombres System, escriba el nombre abreviado. De lo contrario, se requiere el nombre de tipo completo. No se admiten caracteres comodín.

Puede canalizar los nombres de tipos a Update-TypeData. Cuando canaliza un objeto a Update-TypeData, Update-TypeData obtiene el nombre de tipo del objeto y los datos de tipos del tipo de objeto.

Use este parámetro con los parámetros MemberName, MemberType, Value y SecondValue para agregar o cambiar una propiedad o un método de un tipo.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-Value

Especifica el valor de la propiedad o método.

Si agrega un miembro AliasProperty, CodeProperty, ScriptProperty o CodeMethod, puede usar el parámetro SecondValue para agregar información adicional.

Use este parámetro con los parámetros MemberName, MemberType, Value y SecondValue para agregar o cambiar una propiedad o un método de un tipo.

Este parámetro se incorporó en Windows PowerShell 3.0.

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

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

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

Entradas

String

Puede canalizar una cadena que contenga los valores de los parámetros AppendPath, TypeName o TypeData a Update-TypeData.

Salidas

None

Este cmdlet no genera resultados de ningún tipo.