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 <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

El Update-TypeData cmdlet actualiza los datos de tipo extendido en la sesión mediante la recarga de los Types.ps1xml archivos en memoria y la adición de nuevos datos de tipo extendido.

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

El Update-TypeData cmdlet se puede usar para cargar previamente todos los datos de tipo. 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 tipo extendido en la sesión sin usar un Types.ps1xml archivo. 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 tipo a todas las sesiones, agregue un Update-TypeData comando al perfil de PowerShell. Para obtener más información, consulte about_Profiles.

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

Las excepciones que se producen en las propiedades, o desde agregar propiedades a un Update-TypeData comando, no notifican errores. 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 obtiene propiedades de .NET, puede solucionar la supresión de excepciones mediante la sintaxis del método en su lugar, como se muestra en el ejemplo siguiente:

"hello".get_Length()

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

Para obtener más información sobre los Types.ps1xml archivos de PowerShell, consulte about_Types.ps1xml.

Ejemplos

Ejemplo 1: Actualización de tipos extendidos

Update-TypeData

Este comando actualiza la configuración de tipo extendido de los Types.ps1xml archivos que ya se han usado en la sesión.

Ejemplo 2: Actualizar tipos varias veces

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

El primer comando actualiza la configuración de tipo extendido de los Types.ps1xml archivos, procesando primero los TypesA.types.ps1xml archivos y TypesB.types.ps1xml .

El segundo comando muestra cómo actualizar de TypesA.types.ps1xml nuevo, como puede hacer si agregó o cambió un tipo en el archivo. Puede repetir el comando anterior para el TypesA.types.ps1xml archivo o ejecutar un Update-TypeData comando sin parámetros, ya que TypesA.types.ps1xml ya está en la lista de archivos de tipo para la sesión actual.

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

Ejemplo 3: Adición de una propiedad de script a objetos DateTime

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 Get-Date cmdlet .

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

El Update-TypeData comando usa el parámetro TypeName para especificar el tipo 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 $this variable automática 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 -in operador, consulte about_Comparison_Operators.

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

Ejemplo 4: Actualización de un tipo que se muestra en listas de forma predeterminada

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. Dado que los datos de tipo no se especifican en un Types.ps1xml archivo, solo es efectivo en la sesión actual.

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

El primer comando usa el Update-TypeData cmdlet para establecer las propiedades de lista predeterminadas para el tipo System.DateTime . El comando usa 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 Get-Date cmdlet 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 Format-List cmdlet . Dado que el Format-List comando no especifica las propiedades que se van a mostrar en la lista, PowerShell usa los valores predeterminados establecidos por el Update-TypeData comando.

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

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 canaliza un objeto a Update-TypeData, Update-TypeData agrega datos de tipo extendido para el tipo de objeto.

Esta técnica es más rápida que usar el Get-Member cmdlet o el Get-Type método 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, a continuación, 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 Get-Module cmdlet para obtener el módulo PSScheduledJob. El comando canaliza el objeto de módulo al Update-TypeData cmdlet , que actualiza los datos de tipo para el tipo System.Management.Automation.PSModuleInfo y los tipos derivados de él, como el tipo ModuleInfoGrouping que Get-Module devuelve cuando se usa el parámetro ListAvailable en el comando.

Los Update-TypeData comandos agregan 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 desde Get-Module al Format-Table cmdlet , 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 opcionales .ps1xml . Los archivos especificados se cargan en el orden con que aparecen después de que se carguen los archivos integrados. También puede canalizar un valor 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 Format-Wide cmdlet 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 vistas amplias definidas para el tipo en un Format.ps1xml archivo.

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. Estos cmdlets , y Format-Custom muestran Format-ListFormat-Tableestas 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 valor solo es efectivo cuando no hay ninguna lista, tabla o vistas personalizadas, respectivamente, definidas para el tipo en un Format.ps1xml archivo.

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. Estos cmdlets y usan Group-ObjectSort-Object 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 serializadas. 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:Nullable<T>[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 un 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 un 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.

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 opcionales .ps1xml . 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. Use este parámetro cuando el valor del parámetro SerializationMethod sea 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. 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 cadena con 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 1 predeterminado 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 de los valores de propiedad.

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

Type:Int32
Position:Named
Default value:1
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 usar el parámetro SerializationDepth para determinar si se serializan las propiedades secundarias.
  • String. serializar el tipo como una cadena. Puede usar StringSerializationSource para especificar una propiedad del tipo que se usará como resultado de la serialización. De lo contrario, el tipo se serializa mediante el método ToString del objeto .
  • SpecificProperties. Serialice solo las propiedades especificadas de este tipo. Use el parámetro PropertySerializationSet para especificar las propiedades del tipo que se serializan. También puede usar el parámetro InheritPropertySerializationSet para determinar si el conjunto de propiedades se hereda y el parámetro SerializationDepth para determinar si se serializan las propiedades secundarias.

En 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 tipo permite a 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 System.Type derivado 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 obtenga un objeto TypeData , como un Get-TypeData comando. 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.

En el caso de los tipos del espacio de nombres Del sistema , escriba el nombre corto. De lo contrario, se requiere el nombre de tipo completo. No se admiten caracteres comodín.

Puede canalizar nombres de tipo a Update-TypeData. Cuando canaliza un objeto a Update-TypeData, Update-TypeData obtiene el nombre de tipo del objeto y los datos de tipo al 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 AliasPropertymiembro , CodeProperty, ScriptPropertyo 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 este cmdlet.

Salidas

None

Este cmdlet no devuelve ningún resultado.