您可以使用 Select-Object Cmdlet 從其他物件選取所要包含的屬性,進而建立自訂化的新 Windows PowerShell 物件。若要建立新物件以便只包含 Win32_LogicalDisk WMI 類別的 Name 和 FreeSpace 屬性,請輸入下列命令:

PS> Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace

Name                                    FreeSpace
----                                    ---------
C:                                      50664845312

發出此命令後雖然看不到資料的類型,但若將 Select-Object 的結果傳送給 Get-Member,即可得知已建立新類型的物件 PSCustomObject:

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 有很多種用途。其中一種用途是複製資料來加以修改。上一節遇到的問題如今即可獲得解決。您不僅可以更改新建物件的 FreeSpace 值,還能在輸出中加上描述性標籤:

Get-WmiObject -Class Win32_LogicalDisk | Select-Object -Property Name,FreeSpace | ForEach-Object -Process {$_.FreeSpace = ($_.FreeSpace)/1024.0/1024.0; $_}
Name                                                                  FreeSpace
----                                                                  ---------
C:                                                                48317.7265625




目錄