en-us/Creating_A_New_View.walkthru.help.txt
# The next view we can improve with Write-FormatView is how devices look
# A way to get the devices on the operating system is: Get-WmiObject Win32_PnPEntity # In earlier examples, we saw how to create a quick table view. Let's do that for # Win32_PnpEntity. # To start out with, let's get the typename. $typeName = Get-WmiObject Win32_PnPEntity | Get-Member | Select-Object TypeName -Unique $typeName | Write-FormatView -Property Name, Status, Manufacturer, DeviceID -AutoSize | Out-FormatData | Add-FormatData # Let's see the difference Get-WmiObject Win32_PnpEntity # That's much better, but the Manufacturer information is repeated a lot, and it # takes up a lot of space on the screen. If we're careful about the order the data # goes in, we can improve the appearance of the output by using the -GroupByProperty parameter. $typeName | Write-FormatView -Property Name, Status, DeviceID -AutoSize -GroupByProperty Manufacturer | Out-FormatData | Add-FormatData # Let's see the difference Get-WmiObject Win32_PnpEntity | Sort-Object Manufacturer # It's very important to sort before you pipe into grouped views. # GroupBy will add a header to all items from the object pipeline that have the same property. # Whenever a new value for that property is encountered, a new header will be added. This means # that if you output a bunch of objects by a grouping that comes out of order, you will see # a lot of groups. Let's the difference by showing the same data without sorting. Get-WmiObject Win32_PnpEntity # It looks much, much better sorted Get-WmiObject Win32_PnpEntity | Sort-Object Manufacturer # The only unfortunate thing about this view is that both the deviceID and the name are # very long. It would be better to show them in a list instead. Luckily, Write-FormatView # has the -AsList switch, which does just that. $typeName | Write-FormatView -Property Name, Status, DeviceID -GroupByProperty Manufacturer -AsList | Out-FormatData | Add-FormatData # Let's see the difference Get-WmiObject Win32_PnpEntity | Sort-Object Manufacturer |