Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode estender os objetos do .NET Framework que são retornados por cmdlets, funções e scripts usando arquivos de tipos (.ps1xml). Os arquivos de tipos são arquivos baseados em XML que permitem adicionar propriedades e métodos a objetos existentes. Por exemplo, o Windows PowerShell fornece o arquivo Types.ps1xml, que adiciona elementos a vários objetos existentes do .NET Framework. O arquivo Types.ps1xml está localizado no diretório de instalação do Windows PowerShell ($PSHOME). Você pode criar seu próprio arquivo de tipos para estender ainda mais esses objetos ou estender outros objetos. Quando você estende um objeto usando um arquivo de tipos, qualquer instância do objeto é estendida com os novos elementos.
Estendendo o objeto System.Array
O exemplo a seguir mostra como o Windows PowerShell estende o objeto System.Array no arquivo Types.ps1xml. Por padrão, os objetos System.Array têm uma propriedade Length que lista o número de objetos na matriz. No entanto, como o nome "length" não descreve claramente a propriedade, o Windows PowerShell adiciona a propriedade de alias Count, que exibe o mesmo valor que a propriedade Length. O XML a seguir adiciona a propriedade Count ao tipo System.Array.
<Type>
<Name>System.Array</Name>
<Members>
<AliasProperty>
<Name>Count</Name>
<ReferencedMemberName>Length</ReferencedMemberName>
</AliasProperty>
</Members>
</Type>
Para ver essa nova propriedade de alias, use um comando Get-Member em qualquer matriz, conforme mostrado no exemplo a seguir.
Get-Member -InputObject (1,2,3,4)
O comando retorna os seguintes resultados.
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
CopyTo Method System.Void CopyTo(Array array, Int32 index):
Equals Method System.Boolean Equals(Object obj)
Get Method System.Object Get(Int32 )
...
Length Property System.Int32 Length {get;}
Você pode usar a propriedade Count ou a propriedade Length para determinar quantos objetos estão em uma matriz. Por exemplo:
PS> (1, 2, 3, 4).Count
4
PS> (1, 2, 3, 4).Length
4
Arquivos de tipos personalizados
Para criar um arquivo de tipos personalizados, comece copiando um arquivo de tipos existente. O novo arquivo pode ter qualquer nome, mas deve ter uma extensão de nome de .ps1xml arquivo. Ao copiar o arquivo, você pode colocar o novo arquivo em qualquer diretório acessível ao Windows PowerShell, mas é útil colocar os arquivos no diretório de instalação do Windows PowerShell ($PSHOME) ou em um subdiretório do diretório de instalação.
Para adicionar seus próprios tipos estendidos ao arquivo, adicione um elemento de tipos para cada objeto que você deseja estender. Os tópicos a seguir fornecem exemplos.
Para obter mais informações sobre como adicionar propriedades e conjuntos de propriedades, consulte Propriedades Estendidas
Para obter mais informações sobre como adicionar métodos, consulte Métodos Estendidos.
Para obter mais informações sobre como adicionar conjuntos de membros, consulte Conjuntos de Membros Estendidos.
Depois de definir seus próprios tipos estendidos, use um dos seguintes métodos para disponibilizar seus objetos estendidos:
- Para disponibilizar o arquivo de tipos estendidos para a sessão atual, use o cmdlet Update-TypeData para adicionar o novo arquivo. Se você quiser que seus tipos têm precedência sobre os tipos definidos em outros arquivos de tipos (incluindo o arquivo Types.ps1xml), use o parâmetro
PrependDatado cmdlet Update-TypeData. - Para disponibilizar o arquivo de tipos estendidos para todas as sessões futuras, adicione o arquivo de tipos a um módulo, exporte a sessão atual ou adicione o comando Update-TypeData ao seu perfil do Windows PowerShell.
Arquivos de tipos de assinatura
Os arquivos de tipos devem ser assinados digitalmente para evitar adulteração porque o XML pode incluir blocos de script. Para obter mais informações sobre como adicionar assinaturas digitais, consulte about_Signing
Consulte Também
definindo propriedades padrão para objetos
definindo métodos padrão para objetos