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.
Kurzbeschreibung
Beschreibt die Verwendung von Objekteigenschaften in PowerShell.
Lange Beschreibung
PowerShell verwendet strukturierte Auflistungen von Informationen, die als Objekte bezeichnet werden, um die Elemente in Datenspeichern oder den Zustand des Computers darzustellen. In der Regel arbeiten Sie mit Objekten, die Teil von Microsoft .NET Framework sind, aber Sie können auch benutzerdefinierte Objekte in PowerShell erstellen.
Die Zuordnung zwischen einem Element und seinem Objekt ist sehr eng. Wenn Sie ein Objekt ändern, ändern Sie in der Regel das Element, das es darstellt. Wenn Sie beispielsweise eine Datei in PowerShell erhalten, erhalten Sie die eigentliche Datei nicht. Stattdessen erhalten Sie ein FileInfo--Objekt, das die Datei darstellt. Wenn Sie das FileInfo-Objekt ändern, ändert sich auch die Datei.
Die meisten Objekte weisen Eigenschaften auf. Eigenschaften sind die Daten, die einem Objekt zugeordnet sind. Verschiedene Objekttypen weisen unterschiedliche Eigenschaften auf. Ein FileInfo-Objekt, das eine Datei darstellt, verfügt beispielsweise über eine IsReadOnly-Eigenschaft, die $True enthält, wenn die Datei über das schreibgeschützte Attribut verfügt, und $False, wenn sie nicht darüber verfügt. Ein DirectoryInfo-Objekt, das ein Dateisystemverzeichnis darstellt, verfügt über eine Übergeordnete-Eigenschaft, die den Pfad zum übergeordneten Verzeichnis enthält.
Objekteigenschaften
Verwenden Sie das Cmdlet Get-Member, um die Eigenschaften eines Objekts abzurufen. Um beispielsweise die Eigenschaften eines FileInfo--Objekts abzurufen, verwenden Sie das cmdlet Get-ChildItem, um das FileInfo-Objekt abzurufen, das eine Datei darstellt. Verwenden Sie dann einen Pipelineoperator (|), um das FileInfo-objekt an Get-Memberzu senden. Der folgende Befehl ruft die pwsh.exe Datei ab und sendet sie an Get-Member. Die $PSHOME automatische Variable enthält den Pfad des PowerShell-Installationsverzeichnisses.
Get-ChildItem $PSHOME\pwsh.exe | Get-Member
Die Ausgabe des Befehls listet die Mitglieder des FileInfo-Objekts auf. Mitglieder umfassen sowohl Eigenschaften als auch Methoden. Wenn Sie in PowerShell arbeiten, haben Sie Zugriff auf alle Mitglieder der Objekte.
Um nur die Eigenschaften eines Objekts und nicht die Methoden abzurufen, verwenden Sie den MemberType Parameter des Cmdlets Get-Member mit dem Wert Property, wie im folgenden Beispiel gezeigt.
Get-ChildItem $PSHOME\pwsh.exe | Get-Member -MemberType Property
TypeName: System.IO.FileInfo
Name MemberType Definition
---- ---------- ----------
Attributes Property System.IO.FileAttributes Attributes {get;set;}
CreationTime Property System.DateTime CreationTime {get;set;}
CreationTimeUtc Property System.DateTime CreationTimeUtc {get;set;}
Directory Property System.IO.DirectoryInfo Directory {get;}
DirectoryName Property System.String DirectoryName {get;}
Exists Property System.Boolean Exists {get;}
Extension Property System.String Extension {get;}
FullName Property System.String FullName {get;}
IsReadOnly Property System.Boolean IsReadOnly {get;set;}
LastAccessTime Property System.DateTime LastAccessTime {get;set;}
LastAccessTimeUtc Property System.DateTime LastAccessTimeUtc {get;set;}
LastWriteTime Property System.DateTime LastWriteTime {get;set;}
LastWriteTimeUtc Property System.DateTime LastWriteTimeUtc {get;set;}
Length Property System.Int64 Length {get;}
Name Property System.String Name {get;}
Nachdem Sie die Eigenschaften gefunden haben, können Sie sie in Ihren PowerShell-Befehlen verwenden.
Immobilienwerte
Obwohl jedes Objekt eines bestimmten Typs dieselben Eigenschaften aufweist, beschreiben die Werte dieser Eigenschaften das jeweilige Objekt. Beispielsweise verfügt jedes FileInfo--Objekt über eine CreationTime--Eigenschaft, der Wert dieser Eigenschaft unterscheidet sich jedoch für jede Datei.
Die am häufigsten verwendete Methode zum Abrufen der Werte der Eigenschaften eines Objekts besteht darin, den Operator für den Memberzugriff (.) zu verwenden. Geben Sie einen Verweis auf das Objekt ein, z. B. eine Variable, die das Objekt enthält, oder einen Befehl, der das Objekt abruft. Geben Sie dann den Operator (.) ein, gefolgt vom Eigenschaftennamen.
Mit dem folgenden Befehl wird beispielsweise der Wert der CreationTime-Eigenschaft der Datei pwsh.exe angezeigt. Der Befehl Get-ChildItem gibt ein FileInfo-Objekt zurück, das pwsh.exe file darstellt. Der Befehl ist in Klammern eingeschlossen, um sicherzustellen, dass er ausgeführt wird, bevor auf Eigenschaften zugegriffen wird.
(Get-ChildItem $PSHOME\pwsh.exe).CreationTime
Tuesday, June 14, 2022 5:17:14 PM
Sie können ein Objekt auch in einer Variablen speichern und dann seine Eigenschaften mithilfe der Memberzugriffsmethode (.) abrufen, wie im folgenden Beispiel gezeigt:
$a = Get-ChildItem $PSHOME\pwsh.exe
$a.CreationTime
Tuesday, June 14, 2022 5:17:14 PM
Sie können auch die cmdlets Select-Object und Format-List verwenden, um die Eigenschaftswerte eines Objekts anzuzeigen.
Select-Object und Format-List verfügen jeweils über einen Property-Parameter. Sie können den parameter Property verwenden, um eine oder mehrere Eigenschaften und deren Werte anzugeben. Sie können auch das Wildcardzeichen (*) verwenden, um alle Eigenschaften darzustellen.
Mit dem folgenden Befehl werden beispielsweise die Werte aller Eigenschaften der datei pwsh.exe angezeigt.
Get-ChildItem $PSHOME\pwsh.exe | Format-List -Property *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Program Files\PowerShell\7\pwsh.exe
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Program Files\PowerShell\7
PSChildName : pwsh.exe
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
Mode : -a---
ModeWithoutHardLink : -a---
VersionInfo : File: C:\Program Files\PowerShell\7\pwsh.exe
InternalName: pwsh.dll
OriginalFilename: pwsh.dll
FileVersion: 7.3.9.500
FileDescription: pwsh
Product: PowerShell
ProductVersion: 7.3.9 SHA: 116d193ed28dcc6914653c799846bbf379cea0fb
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language: Language Neutral
BaseName : pwsh
ResolvedTarget : C:\Program Files\PowerShell\7\pwsh.exe
Target :
LinkType :
Length : 293312
DirectoryName : C:\Program Files\PowerShell\7
Directory : C:\Program Files\PowerShell\7
IsReadOnly : False
FullName : C:\Program Files\PowerShell\7\pwsh.exe
Extension : .exe
Name : pwsh.exe
Exists : True
CreationTime : 10/25/2023 7:00:18 PM
CreationTimeUtc : 10/26/2023 12:00:18 AM
LastAccessTime : 11/14/2023 5:14:36 PM
LastAccessTimeUtc : 11/14/2023 11:14:36 PM
LastWriteTime : 10/25/2023 7:00:18 PM
LastWriteTimeUtc : 10/26/2023 12:00:18 AM
LinkTarget :
UnixFileMode : -1
Attributes : Archive
Statische Eigenschaften
Sie können die statischen Eigenschaften von .NET-Klassen in PowerShell verwenden. Statische Eigenschaften sind Eigenschaften der Klasse, im Gegensatz zu Standardeigenschaften, die Eigenschaften eines Objekts sind.
Verwenden Sie zum Abrufen der statischen Eigenschaften einer Klasse den Parameter Static des Cmdlets Get-Member. Beispielsweise ruft der folgende Befehl die statischen Eigenschaften der System.DateTime Klasse ab.
Get-Date | Get-Member -MemberType Property -Static
TypeName: System.DateTime
Name MemberType Definition
---- ---------- ----------
MaxValue Property static datetime MaxValue {get;}
MinValue Property static datetime MinValue {get;}
Now Property datetime Now {get;}
Today Property datetime Today {get;}
UtcNow Property datetime UtcNow {get;}
Verwenden Sie die folgende Syntax, um den Wert einer statischen Eigenschaft abzurufen.
[<ClassName>]::<Property>
Beispielsweise ruft der folgende Befehl den Wert der statischen Eigenschaft UtcNow der System.DateTime-Klasse ab.
[System.DateTime]::UtcNow
Memberzugriffsenumeration
Wenn Sie ab PowerShell 3.0 den member-access-Operator (.) verwenden, um auf eine Eigenschaft zuzugreifen, die in einer Listenauflistung nicht vorhanden ist, listet PowerShell automatisch die Elemente in der Auflistung auf und gibt den Wert der Eigenschaft für jedes Element zurück. Weitere Informationen finden Sie unter about_Member-Access_Enumeration.
Beispiele
Dieser Befehl gibt den Wert der DisplayName-eigenschaft jedes Diensts zurück, der Get-Service zurückgibt.
(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...
Alle Auflistungen verfügen über eine Count-Eigenschaft , die die Anzahl der Objekte in der Auflistung zurückgibt.
(Get-Service).Count
176
Ab PowerShell 3.0 können Sie die Count - oder Length-Eigenschaft von Singleton-Objekten abrufen, bei denen es sich nicht um Auflistungen handelt.
(Get-Service Audiosrv).Count
1
Einige Objekte verfügen jedoch über eine Length-Eigenschaft . Zum Beispiel ist die Length einer Zeichenfolge die Anzahl der Zeichen in der Zeichenfolge. Die Count-Eigenschaft gibt die Anzahl der Instanzen des Objekts an.
PS> $str = 'string'
PS> $str.Length
6
PS> $str.Count
1
Wenn eine Eigenschaft bei den einzelnen Objekten und der Auflistung existiert, wird nur die Eigenschaft der Auflistung zurückgegeben.
$collection = @(
[pscustomobject]@{length = "foo"}
[pscustomobject]@{length = "bar"}
)
# PowerShell returns the collection's Length.
$collection.length
2