Dela via


Utöka utdataobjekt

Du kan utöka .NET Framework-objekt som returneras av cmdletar, funktioner och skript med hjälp av typerna filer (.ps1xml). Typer av filer är XML-baserade filer som gör att du kan lägga till egenskaper och metoder i befintliga objekt. Windows PowerShell tillhandahåller till exempel filen Types.ps1xml, som lägger till element i flera befintliga .NET Framework-objekt. Filen Types.ps1xml finns i Windows PowerShell-installationskatalogen ($PSHOME). Du kan skapa en egen typfil för att utöka objekten ytterligare eller utöka andra objekt. När du utökar ett objekt med hjälp av en typfil utökas alla instanser av objektet med de nya elementen.

Utöka System.Array-objektet

I följande exempel visas hur Windows PowerShell utökar objektet System.Array i filen Types.ps1xml. Som standard har System.Array objekt en Length egenskap som visar antalet objekt i matrisen. Men eftersom namnet "length" inte tydligt beskriver egenskapen lägger Windows PowerShell till egenskapen Count alias, som visar samma värde som egenskapen Length. Följande XML lägger till egenskapen Count i System.Array typ.

<Type>
  <Name>System.Array</Name>
  <Members>
    <AliasProperty>
      <Name>Count</Name>
      <ReferencedMemberName>Length</ReferencedMemberName>
    </AliasProperty>
  </Members>
</Type>

Om du vill se den här nya aliasegenskapen använder du kommandot Get-Member på valfri matris, som du ser i följande exempel.

Get-Member -InputObject (1,2,3,4)

Kommandot returnerar följande resultat.

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

Du kan använda antingen egenskapen Count eller egenskapen Length för att avgöra hur många objekt som finns i en matris. Till exempel:

PS> (1, 2, 3, 4).Count
4
PS> (1, 2, 3, 4).Length
4

Filer för anpassade typer

Om du vill skapa en fil med anpassade typer börjar du med att kopiera en befintlig typfil. Den nya filen kan ha valfritt namn, men den måste ha ett .ps1xml filnamnstillägg. När du kopierar filen kan du placera den nya filen i valfri katalog som är tillgänglig för Windows PowerShell, men det är användbart att placera filerna i Windows PowerShell-installationskatalogen ($PSHOME) eller i en underkatalog i installationskatalogen.

Om du vill lägga till dina egna utökade typer i filen lägger du till ett typelement för varje objekt som du vill utöka. Följande avsnitt innehåller exempel.

När du har definierat dina egna utökade typer använder du någon av följande metoder för att göra dina utökade objekt tillgängliga:

  • Om du vill göra filen med utökade typer tillgänglig för den aktuella sessionen använder du cmdleten Update-TypeData för att lägga till den nya filen. Om du vill att dina typer ska ha företräde framför de typer som definieras i andra typer av filer (inklusive filen Types.ps1xml) använder du parametern PrependData för cmdleten Update-TypeData.
  • Om du vill göra filen med utökade typer tillgänglig för alla framtida sessioner lägger du till typfilen i en modul, exporterar den aktuella sessionen eller lägger till kommandot Update-TypeData i din Windows PowerShell-profil.

Filer för signeringstyper

Typer filer bör signeras digitalt för att förhindra manipulering eftersom XML kan innehålla skriptblock. Mer information om hur du lägger till digitala signaturer finns i about_Signing

Se även

Definiera standardegenskaper för objekt

Definiera standardmetoder för objekt

Definiera standardmedlemsuppsättningar för objekt

Skriva en Windows PowerShell-cmdlet