一部のPCの最後の再起動時間をリストから取得しようとしています。使用するとき
foreach ($pc in $pclist) {
Get-CimInstance -ClassName win32_operatingsystem -ComputerName $pc |
select csname, lastbootuptime
}
出力は次のようになります。
csname lastbootuptime ------ -------------- CONFA7-L1-1A 7/15/2016 9:55:16 AM CONFA7-L1-1F 5/31/2016 8:51:46 AM CONFA7-L1-1G 6/18/2016 11:09:15 AM CONFA7-L1 .. 。6/26/2016 5:31:31 PM CONFA7-L3 ... 7/24/2016 3:48:43 PM
これはすてきですが、PC名が長い場合、フルネームを見ることができません。パイプラインでFormat-Table
:
Get-CimInstance -ClassName win32_operatingsystem -ComputerName $pc |
select csname, lastbootuptime |
Format-Table -HideTableHeaders
そして、これは私が得るものです:
CONFA7-L1-1A 2016年7月15日9:55:16 AM CONFA7-L1-1E 7/21/2016 12:58: 16 PM CONFA7-L1-1F 5/31/2016 8:51:46 AM
ここには2つの問題があります。
見出しはありません。 -HideTableHeaders
を削除すると、必要のないすべての出力の見出しが表示されます。
間に多くの空白があります。
基本的には、最初のものと同様の出力を取得する必要がありますが、フルネームを切り捨てることはありません。これらを修正するにはどうすればよいですか?
特定の長さを超えてデータをトリムし、列幅を手動で指定する場合は、各プロパティ属性にWidth
プロパティを渡すことができます。
たとえば、データを次のようにしたい場合:
Column 1 Column 2 Column 3 Column 4
-------- -------- -------- --------
Data Lorem ip... Lorem ip... Important data
基本的なFormat-Table
構文、明示的なプロパティのリスト:
$data | Format-Table -Property Col1, Col2, Col3, Col4 -AutoSize
プロパティ名を渡すだけでなく、 追加のメタデータをProperty
に追加できます。
$a = @{Expression={$_.Col1}; Label="Column 1"; Width=30},
@{Expression={$_.Col2}; Label="Column 2"; Width=30},
@{Expression={$_.Col3}; Label="Column 3"; Width=30},
@{Expression={$_.Col4}; Label="Column 4"; Width=30}
$data | Format-Table -Property $a
注:これはmklement0のより完全な答えの一番下で説明されていますが、これがあなたのユースケースであり、素早くスクロールしている場合、私は願っていますこれは、この戦略をハイレベルで強調するのに役立ちます