Delen via


Uitvoerobjecten uitbreiden

U kunt de .NET Framework-objecten die worden geretourneerd door cmdlets, functies en scripts uitbreiden met behulp van typen bestanden (.ps1xml). Typen bestanden zijn XML-bestanden waarmee u eigenschappen en methoden kunt toevoegen aan bestaande objecten. Windows PowerShell biedt bijvoorbeeld het bestand Types.ps1xml, waarmee elementen worden toegevoegd aan verschillende bestaande .NET Framework-objecten. Het bestand Types.ps1xml bevindt zich in de installatiemap van Windows PowerShell ($PSHOME). U kunt uw eigen bestandstypen maken om deze objecten verder uit te breiden of om andere objecten uit te breiden. Wanneer u een object uitbreidt met behulp van een typebestand, wordt elk exemplaar van het object uitgebreid met de nieuwe elementen.

Het object System.Array uitbreiden

In het volgende voorbeeld ziet u hoe Windows PowerShell het System.Array--object uitbreidt in het bestand Types.ps1xml. System.Array--objecten hebben standaard een Length eigenschap waarin het aantal objecten in de matrix wordt vermeld. Omdat de naam 'lengte' echter niet duidelijk de eigenschap beschrijft, voegt Windows PowerShell de eigenschap Count alias toe, waarmee dezelfde waarde wordt weergegeven als de eigenschap Length. Met de volgende XML wordt de eigenschap Count toegevoegd aan het System.Array- type.

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

Als u deze nieuwe aliaseigenschap wilt zien, gebruikt u een opdracht Get-Member- op een matrix, zoals wordt weergegeven in het volgende voorbeeld.

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

De opdracht retourneert de volgende resultaten.

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

U kunt de eigenschap Count of de eigenschap Length gebruiken om te bepalen hoeveel objecten zich in een matrix bevinden. Voorbeeld:

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

Bestanden met aangepaste typen

Als u een bestand met aangepaste typen wilt maken, kopieert u eerst een bestaand bestandstype. Het nieuwe bestand kan elke naam hebben, maar het moet een .ps1xml bestandsnaamextensie hebben. Wanneer u het bestand kopieert, kunt u het nieuwe bestand in een map plaatsen die toegankelijk is voor Windows PowerShell, maar het is handig om de bestanden in de windows PowerShell-installatiemap ($PSHOME) of in een submap van de installatiemap te plaatsen.

Als u uw eigen uitgebreide typen aan het bestand wilt toevoegen, voegt u een typeelement toe voor elk object dat u wilt uitbreiden. De volgende onderwerpen bevatten voorbeelden.

Nadat u uw eigen uitgebreide typen hebt gedefinieerd, gebruikt u een van de volgende methoden om uw uitgebreide objecten beschikbaar te maken:

  • Als u het bestand met uitgebreide typen beschikbaar wilt maken voor de huidige sessie, gebruikt u de cmdlet Update-TypeData om het nieuwe bestand toe te voegen. Als u wilt dat uw typen voorrang hebben op de typen die zijn gedefinieerd in andere typen bestanden (inclusief het bestand Types.ps1xml), gebruikt u de parameter PrependData van de cmdlet Update-TypeData.
  • Als u het bestand met uitgebreide typen beschikbaar wilt maken voor alle toekomstige sessies, voegt u het bestandstype toe aan een module, exporteert u de huidige sessie of voegt u de opdracht Update-TypeData toe aan uw Windows PowerShell-profiel.

Ondertekeningstypenbestanden

Typen bestanden moeten digitaal worden ondertekend om manipulatie te voorkomen omdat de XML scriptblokken kan bevatten. Zie about_Signing voor meer informatie over het toevoegen van digitale handtekeningen

Zie ook

Standaardeigenschappen voor objecten definiëren

Standaardmethoden voor objecten definiëren

Standaardlidsets definiëren voor objecten

Een Windows PowerShell-cmdlet schrijven