Freigeben über


Informationen zu intrinsischen Elementen

Kurze Beschreibung

Stellt Informationen zu den systeminternen Elementen von PowerShell bereit, die für alle PowerShell-Objekte verfügbar sind.

Detaillierte Beschreibung

Wenn Objekte erstellt werden, fügt PowerShell jedem Objekt einige "ausgeblendete" Eigenschaften und Methoden hinzu. Diese Eigenschaften und Methoden werden als systeminterne Member bezeichnet. Diese intrinsischen Member werden normalerweise in der Ansicht ausgeblendet. Einige dieser Member können mithilfe des Get-Member -Force Befehls angezeigt werden.

Objektansichten

Die systeminternen Member enthalten eine Reihe von MemberSet-Eigenschaften , die eine Ansicht des Objekts darstellen. Sie können die MemberSet-Eigenschaften mithilfe des Get-Member -Force Befehls für ein beliebiges PowerShell-Objekt finden. Jedes PowerShell-Objekt enthält die folgenden MemberSet-Eigenschaften .

psbase

Diese psbase enthält die Member des Basisobjekts ohne Erweiterung oder Anpassung.

psadapted

Die psadapted-Ansicht zeigt das Basisobjekt plus die angepassten Member an, falls vorhanden. Angepasste Member werden vom erweiterten Typsystem (Extended Type System, ETS) hinzugefügt.

psextended

Die Psextended-Ansicht zeigt nur die Member an, die von den Types.ps1xml-Dateien und dem Add-Member-Cmdlet hinzugefügt wurden. Jedes Objekt kann zur Laufzeit mit dem Add-Member Cmdlet erweitert werden.

psobject

Der Basistyp aller PowerShell-Objekte ist [PSObject]. Wenn jedoch ein Objekt erstellt wird, umschließt PowerShell das Objekt auch mit einem [PSObject] instance. Das psobject-Element ermöglicht den Zugriff auf den [PSObject] Wrapper instance. Der Wrapper enthält Methoden, Eigenschaften und andere Informationen zum Objekt. Die Verwendung des psobject-Members ist vergleichbar mit der Verwendung von Get-Member, es gibt jedoch einige Unterschiede, da nur auf den Wrapper instance zugegriffen wird.

Typinformationen

pstypenames

PSTypeNames ist ein CodeProperty-Element , das die Objekttyphierarchie in der Reihenfolge der Vererbung auflistet. Beispiel:

$file = Get-Item C:\temp\test.txt
$file.pstypenames
System.IO.FileInfo
System.IO.FileSystemInfo
System.MarshalByRefObject
System.Object

Wie oben gezeigt, beginnt sie mit dem spezifischsten Objekttyp, System.IO.FileInfound wird bis zum generischsten Typ, System.Objectfortgesetzt.

Methoden

PowerShell fügt allen PowerShell-Objekten zwei ausgeblendete Methoden hinzu. Diese Methoden werden mit dem Befehl oder der Get-Member -Force Tabstopp-Vervollständigung nicht angezeigt.

ForEach() und Where()

Die ForEach() Methoden und Where() sind für alle PowerShell-Objekte verfügbar. Sie sind jedoch am nützlichsten für die Arbeit mit Sammlungen. Weitere Informationen zur Verwendung dieser Methoden finden Sie unter about_Arrays.

Eigenschaften

Anzahl und Länge

Die Eigenschaften Anzahl und Länge sind für alle PowerShell-Objekte verfügbar. Diese ähneln einander, funktionieren aber je nach Datentyp unterschiedlich. Weitere Informationen zu diesen Eigenschaften finden Sie unter about_Properties.

Arrayindizierung skalarer Typen

Wenn ein Objekt keine indizierte Auflistung ist, gibt die Verwendung des Indexoperators für den Zugriff auf das erste Element das Objekt selbst zurück. Indexwerte über das erste Element hinaus geben zurück $null.

PS> (2)[0]
2
PS> (2)[-1]
2
PS> (2)[1] -eq $null
True
PS> (2)[0,0] -eq $null
True

Weitere Informationen finden Sie unter about_Operators.

New()-Methode für Typen

Ab PowerShell 5.0 fügt PowerShell eine statische New() Methode für alle .NET-Typen hinzu. Die folgenden Beispiele erzeugen das gleiche Ergebnis.

$expression = New-Object -TypeName regex -ArgumentList 'pattern'
$expression = [regex]::new('pattern')

Die Verwendung der new() -Methode ist besser als die Verwendung von New-Object.

Weitere Informationen finden Sie unter about_Classes.