Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können die .NET Framework-Objekte erweitern, die von Cmdlets, Funktionen und Skripts zurückgegeben werden, indem Sie Typendateien (.ps1xml) verwenden. Typendateien sind XML-basierte Dateien, mit denen Sie vorhandenen Objekten Eigenschaften und Methoden hinzufügen können. Beispielsweise stellt Windows PowerShell die Datei "Types.ps1xml" bereit, die mehreren vorhandenen .NET Framework-Objekten Elemente hinzufügt. Die Types.ps1xml-Datei befindet sich im Windows PowerShell-Installationsverzeichnis ($PSHOME). Sie können eigene Typendatei erstellen, um diese Objekte weiter zu erweitern oder andere Objekte zu erweitern. Wenn Sie ein Objekt mithilfe einer Typendatei erweitern, wird jede Instanz des Objekts mit den neuen Elementen erweitert.
Erweitern des System.Array-Objekts
Das folgende Beispiel zeigt, wie Windows PowerShell das System.Array-Objekt in der Datei Types.ps1xml erweitert. Standardmäßig verfügen System.Array--Objekte über eine Length-Eigenschaft, die die Anzahl der Objekte im Array auflistet. Da der Name "length" die Eigenschaft jedoch nicht eindeutig beschreibt, fügt Windows PowerShell die Count Aliaseigenschaft hinzu, die denselben Wert wie die Length-Eigenschaft anzeigt. Der folgende XML-Code fügt die Count-Eigenschaft dem System.Array Typ hinzu.
<Type>
<Name>System.Array</Name>
<Members>
<AliasProperty>
<Name>Count</Name>
<ReferencedMemberName>Length</ReferencedMemberName>
</AliasProperty>
</Members>
</Type>
Um diese neue Aliaseigenschaft anzuzeigen, verwenden Sie einen Get-Member--Befehl auf einem beliebigen Array, wie im folgenden Beispiel gezeigt.
Get-Member -InputObject (1,2,3,4)
Der Befehl gibt die folgenden Ergebnisse zurück.
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;}
Sie können entweder die Count-Eigenschaft oder die Length-Eigenschaft verwenden, um zu bestimmen, wie viele Objekte sich in einem Array befinden. Beispiel:
PS> (1, 2, 3, 4).Count
4
PS> (1, 2, 3, 4).Length
4
Dateien mit benutzerdefinierten Typen
Um eine benutzerdefinierte Typendatei zu erstellen, kopieren Sie zunächst eine vorhandene Typendatei. Die neue Datei kann einen beliebigen Namen haben, muss aber über eine .ps1xml Dateinamenerweiterung verfügen. Wenn Sie die Datei kopieren, können Sie die neue Datei in einem beliebigen Verzeichnis platzieren, auf das windows PowerShell zugreifen kann. Es ist jedoch hilfreich, die Dateien im Windows PowerShell-Installationsverzeichnis ($PSHOME) oder in einem Unterverzeichnis des Installationsverzeichnisses zu platzieren.
Wenn Sie der Datei eigene erweiterte Typen hinzufügen möchten, fügen Sie ein Typenelement für jedes Objekt hinzu, das Sie erweitern möchten. Die folgenden Themen enthalten Beispiele.
Weitere Informationen zum Hinzufügen von Eigenschaften und Eigenschaftensätzen finden Sie unter erweiterten Eigenschaften
Weitere Informationen zum Hinzufügen von Methoden finden Sie unter erweiterten Methoden.
Weitere Informationen zum Hinzufügen von Membersätzen finden Sie unter erweiterten Membersätze.
Nachdem Sie ihre eigenen erweiterten Typen definiert haben, verwenden Sie eine der folgenden Methoden, um die erweiterten Objekte verfügbar zu machen:
- Um die Datei für erweiterte Typen für die aktuelle Sitzung verfügbar zu machen, verwenden Sie das Cmdlet Update-TypeData, um die neue Datei hinzuzufügen. Wenn Ihre Typen Vorrang vor den Typen haben sollen, die in anderen Typendateien definiert sind (einschließlich der Datei Types.ps1xml), verwenden Sie den
PrependData-Parameter des Cmdlets Update-TypeData. - Um Die Datei für erweiterte Typen für alle zukünftigen Sitzungen verfügbar zu machen, fügen Sie die Typendatei zu einem Modul hinzu, exportieren Sie die aktuelle Sitzung, oder fügen Sie den Befehl Update-TypeData Ihrem Windows PowerShell-Profil hinzu.
Signaturtypendateien
Typendateien sollten digital signiert werden, um Manipulationen zu verhindern, da der XML-Code Skriptblöcke enthalten kann. Weitere Informationen zum Hinzufügen digitaler Signaturen finden Sie unter about_Signing
Siehe auch
Definieren von Standardeigenschaften für Objekte
Definieren von Standardmethoden für Objekte