THEMA about_Properties KURZBESCHREIBUNG Beschreibt, wie Objekteigenschaften in Windows PowerShell verwendet werden. DETAILBESCHREIBUNG Windows PowerShell verwendet strukturierte Auflistungen von Informationen, die als Objekte bezeichnet werden, um die Elemente in Datenspeichern oder den Computerzustand darzustellen. In der Regel arbeiten Sie mit Objekten, die Teil von Microsoft .NET Framework sind, Sie können jedoch auch benutzerdefinierte Objekte in Windows PowerShell erstellen. Die Zuordnung zwischen einem Element und seinem Objekt ist sehr nah. Wenn Sie ein Objekt ändern, ändern Sie das Element, das von dem Objekt dargestellt wird. Wenn Sie beispielsweise eine Datei in Windows PowerShell abrufen, erhalten Sie nicht die eigentliche Datei. Stattdessen wird ein FileInfo-Objekt abgerufen, das die Datei darstellt. Wenn Sie das FileInfo-Objekt ändern, wird die Datei ebenfalls geändert. Die meisten Objekte verfügen über Eigenschaften. Eigenschaften sind die Daten, die mit einem Objekt verknüpft sind. In diesen Daten wird das Objekt beschrieben. Das FileInfo-Objekt enthält beispielsweise die Length-Eigenschaft, die die Größe der von dem Objekt dargestellten Datei angibt. Objekteigenschaften Verwenden Sie zum Auflisten der Eigenschaften eines Objekts das Cmdlet "Get-Member". Um beispielsweise die Eigenschaften eines FileInfo-Objekts abzurufen, rufen Sie mit dem Cmdlet "Get-ChildItem" das FileInfo-Objekt ab, das eine Datei darstellt. Anschließend senden Sie das FileInfo-Objekt mit einem Pipelineoperator (|) an Get-Member. Mit dem folgendem Befehl wird die Datei "PowerShell.exe" abgerufen und an Get-Member gesendet. Die automatische Variable "$Pshome" enthält den Pfad zum Windows PowerShell-Installationsverzeichnis. get-childitem $pshome\powershell.exe | get-member Die Ausgabe des Befehls enthält die Elemente des FileInfo-Objekts. Elemente umfassen sowohl Eigenschaften als auch Methoden. Wenn Sie in Windows PowerShell arbeiten, haben Sie Zugriff auf alle Elemente der Objekte. Um nur die Eigenschaften und nicht die Methoden eines Objekts abzurufen, verwenden Sie den MemberType-Parameter des Cmdlets "Get-Member" mit dem Wert von "property", wie im folgenden Beispiel veranschaulicht. get-childitem $pshome\powershell.exe | get-member -membertype property TypeName: System.IO.FileInfo Name MemberType Definition ---- ---------- ---------- Attributes Property System.IO.FileAttributes Attribute {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 Windows PowerShell-Befehlen verwenden. Eigenschaftenwerte Auch wenn alle Objekte eines bestimmten Typs über die gleichen Eigenschaften verfügen, beschreiben die Werte dieser Eigenschaften das bestimmte Objekt. Beispielsweise verfügt jedes FileInfo-Objekt über eine CreationTime-Eigenschaft, der Wert dieser Eigenschaft unterscheidet sich jedoch je nach Datei. Die gängigste Möglichkeit zum Abrufen der Werte von Eigenschaften eines Objekts besteht in der Verwendung der DOT-Methode. Geben Sie einen Verweis auf das Objekt ein, beispielsweise eine Variable, die das Objekt enthält, oder einen Befehl, mit dem das Objekt abgerufen wird. Geben Sie anschließend einen Punkt (.) und dann den Eigenschaftennamen ein. Der folgende Befehl zeigt beispielsweise den Wert der CreationTime-Eigenschaft für die Datei "PowerShell.exe" an. Der Befehl "Get-ChildItem" gibt ein FileInfo-Objekt zurück, das die Datei "PowerShell.exe" darstellt. Der Befehl wird in Klammern notiert, um sicherzustellen, dass er ausgeführt wird, bevor auf Eigenschaften zugegriffen wird. Auf den Befehl "Get-ChildItem" folgt ein Punkt, und anschließend wird der Name der CreationTime-Eigenschaft notiert, wie nachfolgend dargestellt: C:\PS> (Get-ChildItem $pshome\powershell.exe).creationtime Dienstag, 18. März 2008, 00:07:52 Sie können ein Objekt auch in einer Variablen speichern und dann die Eigenschaften mit der DOT-Methode abrufen, wie im folgenden Beispiel veranschaulicht wird: C:\PS> $a = Get-ChildItem $pshome\powershell.exe C:\PS> $a.CreationTime Dienstag, 18. März 2008, 00:07:52 Sie können die Eigenschaftenwerte eines Objekts auch mit dem Cmdlet "Select-Object" und mit dem Cmdlet "Format-List" anzeigen. Select-Object und Format-List verfügen jeweils über einen Property-Parameter. Mit dem Property-Parameter können Sie eine oder mehrere Eigenschaften und ihre Werte angeben. Sie können auch das Platzhalterzeichen (*) für alle Eigenschaften angeben. Der folgende Befehl zeigt beispielsweise die Werte aller Eigenschaften für die Datei "PowerShell.exe" an. C:\PS> Get-ChildItem $pshome\powershell.exe | Format-List -property * PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0 PSChildName : powershell.exe PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem PSIsContainer : False VersionInfo : File: C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe InternalName: POWERSHELL OriginalFilename: PowerShell.EXE.MUI File Version: 6.1.6570.1 (fbl_srv_powershell(nigels).070711-0102) FileDescription: PowerShell.EXE Product: Microsoft® Windows® Operating System ProductVersion: 6.1.6570.1 Debug: False Patched: False PreRelease: False PrivateBuild: True SpecialBuild: False Language: Deutsch (Deutschland) BaseName : powershell Mode : -a--- Name : powershell.exe Length : 160256 DirectoryName : C:\Windows\system32\WindowsPowerShell\v1.0 Directory : C:\Windows\system32\WindowsPowerShell\v1.0 IsReadOnly : False Exists : True FullName : C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe Extension : .exe CreationTime : 18.3.2008 00:07:52 CreationTimeUtc : 18.3.2008 07:07:52 LastAccessTime : 19.3.2008 08:13:58 LastAccessTimeUtc : 19.3.2008 15:13:58 LastWriteTime : 18.3.2008 00:07:52 LastWriteTimeUtc : 18.3.2008 07:07:52 Attributes : Archive SIEHE AUCH about_Objects Get-Member Select-Object Format-List