Mit dem Cmdlet Select-Object können Sie neue benutzerdefinierte Windows PowerShell-Objekte erstellen, die ausgewählte Eigenschaften aus den Objekten enthalten, mit denen sie erstellt wurden. Geben Sie den folgenden Befehl ein, um ein neues Objekt zu erstellen, das lediglich die Name-Eigenschaft und die FreeSpace-Eigenschaft der Win32_LogicalDisk-WMI-Klasse enthält:
PS> Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace Name FreeSpace ---- --------- C: 50664845312
Der Datentyp wird nach der Ausgabe des Befehls nicht angezeigt, wenn Sie das Ergebnis jedoch nach Select-Object über die Pipeline an Get-Member übergeben, wird der neue Objekttyp "PSCustomObject" angezeigt:
PS> Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace| Get-Member TypeName: System.Management.Automation.PSCustomObject Name MemberType Definition ---- ---------- ---------- Equals Method System.Boolean Equals(Object obj) GetHashCode Method System.Int32 GetHashCode() GetType Method System.Type GetType() ToString Method System.String ToString() FreeSpace NoteProperty FreeSpace=... Name NoteProperty System.String Name=C:
Select-Object kann sehr unterschiedlich verwendet werden. Beispielsweise können Sie Daten replizieren, um sie anschließend zu bearbeiten. Nun kann auch das Problem im Abschnitt zuvor gelöst werden. Der Wert von "FreeSpace" in den neu erstellten Objekten kann aktualisiert werden, sodass die beschreibende Bezeichnung in der Ausgabe enthalten ist.
Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace | ForEach-Object -Process {$_.FreeSpace = ($_.FreeSpace)/1024.0/1024.0; $_} Name FreeSpace ---- --------- C: 48317.7265625