Update-TypeData

Atualiza os dados de tipo estendidos na sessão.

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

O Update-TypeData cmdlet atualiza os dados de tipo estendido na sessão recarregando os Types.ps1xml arquivos na memória e adicionando novos dados de tipo estendido.

Por padrão, o PowerShell carrega dados de tipo estendidos conforme necessário. Sem parâmetros, Update-TypeData recarrega todos os Types.ps1xml arquivos que ele carregou na sessão, incluindo todos os arquivos de tipo que você adicionou. Você pode usar os parâmetros de para adicionar novos arquivos de tipo e adicionar e substituir dados de Update-TypeData tipo estendidos.

O Update-TypeData cmdlet pode ser usado para pré-carregar todos os dados de tipo. Esse recurso é particularmente útil quando você está desenvolvendo tipos e deseja carregar esses novos tipos para fins de teste.

A partir do Windows PowerShell 3.0, você pode usar Update-TypeData para adicionar e substituir dados de tipo estendidos na sessão sem usar um Types.ps1xml arquivo. Os dados de tipo que são adicionados dinamicamente, ou seja, sem um arquivo, são adicionados apenas à sessão atual. Para adicionar os dados de tipo a todas as sessões, adicione um Update-TypeData comando ao seu perfil do PowerShell. Para obter mais informações, consulte about_Profiles.

Além disso, a partir do Windows PowerShell 3.0, você pode usar o Get-TypeData cmdlet para obter os tipos estendidos na sessão atual e o Remove-TypeData cmdlet para excluir os tipos estendidos da sessão atual.

As exceções que ocorrem em propriedades ou na adição de propriedades a um Update-TypeData comando não relatam erros. Isso é para suprimir exceções que ocorreriam em muitos tipos comuns durante a formatação e saída. Se você estiver obtendo propriedades do .NET, poderá contornar a supressão de exceções usando a sintaxe do método, conforme mostrado no exemplo a seguir:

"hello".get_Length()

Observe que a sintaxe do método só pode ser usada com propriedades .NET. As propriedades adicionadas pela execução do cmdlet não podem usar a sintaxe do Update-TypeData método.

Para obter mais informações sobre os Types.ps1xml arquivos no PowerShell, consulte about_Types.ps1xml.

Exemplos

Exemplo 1: Atualizar tipos estendidos

Update-TypeData

Este comando atualiza a configuração de tipo estendido dos Types.ps1xml arquivos que já foram usados na sessão.

Exemplo 2: Tipos de atualização várias vezes

Este exemplo mostra como atualizar os tipos em um arquivo de tipo várias vezes na mesma sessão.

O primeiro comando atualiza a configuração de tipo estendido dos Types.ps1xml arquivos, processando os TypesA.types.ps1xml arquivos e TypesB.types.ps1xml primeiro.

O segundo comando mostra como atualizar o TypesA.types.ps1xml novamente, como você pode fazer se você adicionou ou alterou um tipo no arquivo. Você pode repetir o comando anterior para o TypesA.types.ps1xml arquivo ou executar um Update-TypeData comando sem parâmetros, porque TypesA.types.ps1xml já está na lista de arquivos de tipo para a sessão atual.

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

Exemplo 3: Adicionar uma propriedade de script a objetos DateTime

Este exemplo usa Update-TypeData para adicionar a propriedade de script Quarter aos objetos System.DateTime na sessão atual, como os retornados Get-Date pelo 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

O Update-TypeData comando usa o parâmetro TypeName para especificar o tipo System.DateTime , o parâmetro MemberName para especificar um nome para a nova propriedade, a propriedade MemberType para especificar o tipo ScriptProperty e o parâmetro Value para especificar o script que determina o trimestre anual.

O valor da propriedade Value é um script que calcula o trimestre anual atual. O bloco de script usa a $this variável automática para representar a instância atual do objeto e o operador In para determinar se o valor do mês aparece em cada matriz inteira. Para obter mais informações sobre o -in operador, consulte about_Comparison_Operators.

O segundo comando obtém a nova propriedade Quarter da data atual.

Exemplo 4: Atualizar um tipo que é exibido em listas por padrão

Este exemplo mostra como definir as propriedades de um tipo que é exibido em listas por padrão, ou seja, quando nenhuma propriedade é especificada. Como os dados de tipo não são especificados em um Types.ps1xml arquivo, eles são efetivos somente na sessão atual.

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

O primeiro comando usa o Update-TypeData cmdlet para definir as propriedades de lista padrão para o tipo System.DateTime . O comando usa o parâmetro TypeName para especificar o tipo e o parâmetro DefaultDisplayPropertySet para especificar as propriedades padrão de uma lista. As propriedades selecionadas incluem a nova propriedade de script Quarter que foi adicionada em um exemplo anterior.

O segundo comando usa o Get-Date cmdlet para obter um objeto System.DateTime que representa a data atual. O comando usa um operador de pipeline (|) para enviar o objeto DateTime para o Format-List cmdlet. Como o Format-List comando não especifica as propriedades a serem exibidas na lista, o PowerShell usa os valores padrão que foram estabelecidos pelo Update-TypeData comando.

Exemplo 5: Atualizar dados de tipo para um objeto canalizado

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

Este exemplo demonstra que, quando você canaliza um objeto para Update-TypeData, Update-TypeData adiciona dados de tipo estendidos para o tipo de objeto.

Essa técnica é mais rápida do que usar o Get-Member cmdlet ou o Get-Type método para obter o tipo de objeto. No entanto, se você canalizar uma coleção de objetos para Update-TypeDatao , ele atualizará os dados de tipo do primeiro tipo de objeto e, em seguida, retornará um erro para todos os outros objetos da coleção porque o membro já está definido no tipo.

O primeiro comando usa o Get-Module cmdlet para obter o módulo PSScheduledJob. O comando canaliza o objeto module para o Update-TypeData cmdlet, que atualiza os dados de tipo para o tipo System.Management.Automation.PSModuleInfo e os tipos derivados dele, como o tipo ModuleInfoGrouping que Get-Module retorna quando você usa o parâmetro ListAvailable no comando.

Os Update-TypeData comandos adicionam a propriedade de script SupportsUpdatableHelp a todos os módulos importados. O valor do parâmetro Value é um script que retorna $True se a propriedade HelpInfoUri do módulo estiver preenchida e $False de outra forma.

O segundo comando canaliza os objetos do Get-Module módulo para o Format-Table cmdlet, que exibe as propriedades Name e SupportsUpdatableHelp de todos os módulos em uma lista.

Parâmetros

-AppendPath

Especifica o caminho para arquivos opcionais .ps1xml . Os arquivos especificados são carregados na ordem em que são listados depois que os arquivos internos são carregados. Você também pode canalizar um valor AppendPath para Update-TypeData.

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

-Confirm

Solicita a sua confirmação antes de executar o cmdlet.

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

-DefaultDisplayProperty

Especifica a propriedade do tipo que é exibida pelo Format-Wide cmdlet quando nenhuma outra propriedade é especificada.

Digite o nome de uma propriedade padrão ou estendida do tipo. O valor desse parâmetro pode ser o nome de um tipo que é adicionado no mesmo comando.

Esse valor é efetivo somente quando não há exibições amplas definidas para o tipo em um Format.ps1xml arquivo.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-DefaultDisplayPropertySet

Especifica uma ou mais propriedades do tipo. Essas propriedades são exibidas pelos Format-Listcmdlets , Format-Tablee Format-Custom quando nenhuma outra propriedade é especificada.

Digite os nomes das propriedades padrão ou estendidas do tipo. O valor desse parâmetro pode ser os nomes dos tipos que são adicionados no mesmo comando.

Esse valor só é efetivo quando não há nenhuma lista, tabela ou modos de exibição personalizados, respectivamente, definidos para o tipo em um Format.ps1xml arquivo.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-DefaultKeyPropertySet

Especifica uma ou mais propriedades do tipo. Essas propriedades são usadas pelos Group-Object cmdlets e Sort-Object quando nenhuma outra propriedade é especificada.

Digite os nomes das propriedades padrão ou estendidas do tipo. O valor desse parâmetro pode ser os nomes dos tipos que são adicionados no mesmo comando.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-Force

Indica que o cmdlet usa os dados de tipo especificados, mesmo que os dados de tipo já tenham sido especificados para esse tipo.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-InheritPropertySerializationSet

Indica se o conjunto de propriedades que são serializadas é herdado. O valor predefinido é $Null. Os valores aceitáveis para este parâmetro são:

  • $True. O conjunto de propriedades é herdado.
  • $False. O conjunto de propriedades não é herdado.
  • $Null. A herança não está definida.

Esse parâmetro é válido somente quando o valor do parâmetro SerializationMethod é SpecificProperties. Quando o valor desse parâmetro é $False, o parâmetro PropertySerializationSet é necessário.

Esse parâmetro foi introduzido no 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 o nome de uma propriedade ou método.

Use esse parâmetro com os parâmetros TypeName, MemberType, Value e SecondValue para adicionar ou alterar uma propriedade ou método de um tipo.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-MemberType

Especifica o tipo de membro a ser adicionado ou alterado.

Use esse parâmetro com os parâmetros TypeName, MemberType, Value e SecondValue para adicionar ou alterar uma propriedade ou método de um tipo. Os valores aceitáveis para este parâmetro são:

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • Noteproperty
  • ScriptMethod
  • ScriptProperty

Para obter informações sobre esses valores, consulte Enumeração PSMemberTypes.

Esse parâmetro foi introduzido no 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 o caminho para os arquivos opcionais .ps1xml . Os arquivos especificados são carregados na ordem em que são listados antes que os arquivos internos sejam carregados.

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

-PropertySerializationSet

Especifica os nomes das propriedades que são serializadas. Use esse parâmetro quando o valor do parâmetro SerializationMethod for SpecificProperties.

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

-SecondValue

Especifica valores adicionais para membros AliasProperty, ScriptProperty, CodeProperty ou CodeMethod .

Use esse parâmetro com os parâmetros TypeName, MemberType, Value e SecondValue para adicionar ou alterar uma propriedade ou método de um tipo.

Quando o valor do parâmetro MemberType é AliasProperty, o valor do parâmetro SecondValue deve ser um tipo de dados. O PowerShell converte (ou seja, converte) o valor da propriedade alias para o tipo especificado. Por exemplo, se você adicionar uma propriedade alias que fornece um nome alternativo para uma propriedade string, você também pode especificar um SecondValue de System.Int32 para converter o valor de cadeia de caracteres aliased em um inteiro.

Quando o valor do parâmetro MemberType for ScriptProperty, você poderá usar o parâmetro SecondValue para especificar um bloco de script adicional. O bloco de script no valor do parâmetro Value obtém o valor de uma variável. O bloco de script no valor do parâmetro SecondValue define o valor da variável.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-SerializationDepth

Especifica quantos níveis de objetos de tipo são serializados como cadeias de caracteres. O valor 1 padrão serializa o objeto e suas propriedades. Um valor de 0 serializa o objeto, mas não suas propriedades. Um valor de serializa o objeto, suas propriedades e quaisquer objetos em valores de 2 propriedade.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-SerializationMethod

Especifica um método de serialização para o tipo. Um método de serialização determina quais propriedades do tipo são serializadas e a técnica usada para serializá-las. Os valores aceitáveis para este parâmetro são:

  • AllPublicProperties. Serialize todas as propriedades públicas do tipo. Você pode usar o parâmetro SerializationDepth para determinar se as propriedades filho são serializadas.
  • String. Serialize o tipo como uma cadeia de caracteres. Você pode usar o StringSerializationSource para especificar uma propriedade do tipo a ser usado como resultado da serialização. Caso contrário, o tipo é serializado usando o método ToString do objeto.
  • SpecificProperties. Serialize apenas as propriedades especificadas desse tipo. Use o parâmetro PropertySerializationSet para especificar as propriedades do tipo que são serializadas. Você também pode usar o parâmetro InheritPropertySerializationSet para determinar se o conjunto de propriedades é herdado e o parâmetro SerializationDepth para determinar se as propriedades filho são serializadas.

No PowerShell, os métodos de serialização são armazenados em objetos internos PSStandardMembers .

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-StringSerializationSource

Especifica o nome de uma propriedade do tipo. O valor da propriedade especificada é usado como o resultado da serialização. Esse parâmetro é válido somente quando o valor do parâmetro SerializationMethod é String.

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

-TargetTypeForDeserialization

Especifica o tipo para o qual o objeto desse tipo é convertido quando eles são desserializados.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-TypeAdapter

Especifica o tipo de um adaptador de tipo, como Microsoft.PowerShell.Cim.CimInstanceAdapter. Um adaptador de tipo permite que o PowerShell obtenha os membros de um tipo.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-TypeConverter

Especifica um conversor de tipo para converter valores entre tipos diferentes. Se um conversor de tipo for definido para um tipo, uma instância do conversor de tipo será usada para a conversão.

Insira um valor System.Type derivado das classes System.ComponentModel.TypeConverter ou System.Management.Automation.PSTypeConverter .

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-TypeData

Especifica uma matriz de dados de tipo que esse cmdlet adiciona à sessão. Insira uma variável que contenha um objeto TypeData ou um comando que obtenha um objeto TypeData , como um Get-TypeData comando. Você também pode canalizar um objeto TypeData para Update-TypeData.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-TypeName

Especifica o nome do tipo a ser estendido.

Para tipos no namespace System , insira o nome abreviado. Caso contrário, o nome completo do tipo é necessário. Não são suportados carateres universais.

Você pode canalizar nomes de tipo para Update-TypeData. Quando você canaliza um objeto para Update-TypeDatao , Update-TypeData obtém o nome do tipo do objeto e digita dados para o tipo de objeto.

Use esse parâmetro com os parâmetros MemberName, MemberType, Value e SecondValue para adicionar ou alterar uma propriedade ou método de um tipo.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-Value

Especifica o valor da propriedade ou método.

Se você adicionar um AliasProperty, CodeProperty, ScriptProperty, ou CodeMethod membro, poderá usar o parâmetro SecondValue para adicionar informações adicionais.

Use esse parâmetro com os parâmetros MemberName, MemberType, Value e SecondValue para adicionar ou alterar uma propriedade ou método de um tipo.

Esse parâmetro foi introduzido no Windows PowerShell 3.0.

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

-WhatIf

Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.

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

Entradas

String

Você pode canalizar uma cadeia de caracteres que contém os valores dos parâmetros AppendPath, TypeName ou TypeData para este cmdlet.

Saídas

None

Este cmdlet não retorna nenhuma saída.