Search code examples
powershelloutputone-liner

powershell - output trimming


I am trying to read valid values of network adapter speed settings, but it looks like PowerShell does not output everything. According to the GUI network adapter settings window, there is '100 Mbps Full Duplex' and '1000Mbps Full Duplex' missing in the list of PowerShell outputted values.

PS> Get-NetAdapterAdvancedProperty Ethernet -Displayname 'Link Speed & Duplex' | fl ValidDisplayValues

ValidDisplayValues : {Auto Negotiation, 10 Mbps Half Duplex, 10 Mbps Full Duplex, 100 Mbps Half Duplex...}

I've tried to play with ft out-string and write-host but haven't had any luck. How do I output a complete list?

UPDATE: I've tried adding GUI view to my network adapter speed settings for better understanding of my problem.


Solution

  • I think you are looking for -ExpandProperty of Select-Object

    Get-NetAdapterAdvancedProperty | where DisplayName -like '*speed*' | 
    select -first 1 -ExpandProperty ValidDisplayValues
    
    Auto Negotiation
    10 Mbps Half Duplex
    10 Mbps Full Duplex
    100 Mbps Half Duplex
    100 Mbps Full Duplex
    1.0 Gbps Full Duplex
    

    But a more generic lookup would be using the Registry name instead of DisplayName (that are supposed to be localized).

    Get-NetAdapterAdvancedProperty | where RegistryKeyWord -eq '*SpeedDuplex' | 
    select -ExpandProperty ValidDisplayValues