単一のPowerShellコマンドを使用して、2つ(またはそれ以上)のプロパティをテーブルとして返します


1

システムに接続されているディスクドライブに関するすべての種類のプロパティを返す次のPowerShellコマンドがあります。

Get-WmiObject -Class Win32_Volume | Where-Object {$_.DeviceID -like "\\?\*"}

プロパティDriveLetterDeviceIDプロパティにのみ興味があり、次のようなテーブルで返されるようにします。

DriveLetter    DeviceID
C:             \\?\Volume{5b982fce-d9e5-11e1-9c28-806e6f6e6963}\
D:             \\?\Volume{e9820c98-d688-11e1-a45f-001e673f1fc5}\

元のコマンドを囲み、ドット演算子を使用して、一度に1つのプロパティを返すことができることを知っています。

(Get-WmiObject -Class Win32_Volume | Where-Object {$_.DeviceID -like "\\?\*"}).DriveLetter

代わりに生成されるもの:

C:
D:

しかし、2つ(またはそれ以上)のプロパティをテーブルとして返す単一のステートメントの書き方がわかりません。 単一のステートメントでこれを達成できない場合、目的のテーブル出力を生成するにはどうすればよいですか?

Googleで回答を検索しましたが、PowerShellにかなり慣れていないため、検索用語を正確に表現していない可能性があります。

回答:


2

これを試して:

Get-WmiObject -Class Win32_Volume | Where-Object {$_.DeviceID -like "\\?\*"} | Select-Object -Property DriveLetter,DeviceID

Get-Help Select-Object -Detailed詳細については使用してください。


2

Format-Tableコマンドレットを使用して出力をフォーマットするだけです。

Get-WmiObject -Class Win32_Volume | 
Where-Object {$_.DeviceID -like "\\?\*"} | 
Format-Table DriveLetter,DeviceID

出力を生成します:

DriveLetter                                                            DeviceID                                                              
-----------                                                            --------                                                              
C:                                                                     \\?\Volume{118e4062-2eba-4f35-9b1b-015c3c1087dc}\                     
                                                                       \\?\Volume{e2a184aa-dac8-4196-80c6-fd8c7662e377}\                     
                                                                       \\?\Volume{33697e48-1197-464c-8553-cef00429e5a4}\                     

書式設定コマンドレット(ft、flなど)がパイプライン上のオブジェクトとどのように統合されるかを理解してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.