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
.
Tipo: | String[] |
Aliases: | PSPath, Path |
Position: | 0 |
valor predeterminado: | None |
Requerido: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Position: | Named |
valor predeterminado: | False |
Requerido: | 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.
Tipo: | String |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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-List
Format-Table
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 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.
Tipo: | String[] |
Position: | Named |
valor predeterminado: | None |
Requerido: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultKeyPropertySet
Especifica una o más propiedades del tipo. Estos cmdlets y usan Group-Object
Sort-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.
Tipo: | String[] |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | SwitchParameter |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | Nullable<T>[Boolean] |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | String |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | PSMemberTypes |
valores aceptados: | NoteProperty, AliasProperty, ScriptProperty, CodeProperty, ScriptMethod, CodeMethod |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | String[] |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | String[] |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | Object |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | Int32 |
Position: | Named |
valor predeterminado: | 1 |
Requerido: | 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.
Tipo: | String |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | String |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | Type |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | Type |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | Type |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | TypeData[] |
Position: | 0 |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | String |
Position: | Named |
valor predeterminado: | None |
Requerido: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Value
Especifica el valor de la propiedad o método.
Si agrega un AliasProperty
miembro , 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.
Tipo: | Object |
Position: | Named |
valor predeterminado: | None |
Requerido: | 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.
Tipo: | SwitchParameter |
Aliases: | wi |
Position: | Named |
valor predeterminado: | False |
Requerido: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
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.
Vínculos relacionados
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de