【问题标题】:powershell - output trimmingpowershell - 输出微调
【发布时间】:2021-09-20 10:44:20
【问题描述】:

我正在尝试读取网络适配器速度设置的有效值,但 PowerShell 似乎没有输出所有内容。根据 GUI 网络适配器设置窗口,PowerShell 输出值列表中缺少“100 Mbps 全双工”和“1000 Mbps 全双工”。

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...}

我尝试过使用ft out-stringwrite-host,但没有任何运气。如何输出完整列表?

更新:我已尝试将GUI view 添加到我的网络适配器速度设置中,以便更好地了解我的问题。

【问题讨论】:

  • 如果有人要试验:用字符串*speed*替换命令中的字符串Link Speed & Duplex,因为它依赖于网卡驱动......
  • 我的系统甚至没有“链接速度和双工”,这可能是供应商/驱动程序特定的属性?
  • 你看过我的评论了吗?
  • 这只是因为 PowerShell 的默认方式 显示 并且因为它不适合屏幕的宽度,所以它会被截断。试试(Get-NetAdapterAdvancedProperty -Name Ethernet -Displayname 'Link Speed & Duplex').ValidDisplayValues'
  • @Dennis 当然是真的,但在这种情况下,OP 声称这些值应该在那里。查看他显示的输出,这通常是显示截断输出的情况。在我的荷兰语系统上,我需要使用 LAN-verbinding 而不是 Ethernet 并使用 Displayname Snelheid & duplex 而不是 Link Speed & Duplex。我个人认为必须使用 localized 属性是一个坏主意,但是..

标签: powershell output one-liner


【解决方案1】:

我认为您正在寻找 -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

但更通用的查找将使用注册表名称而不是 DisplayName(应该是本地化的)。

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

【讨论】:

  • 谢谢,注册的注册表名称对我很有价值
猜你喜欢
  • 2021-07-13
  • 2016-04-30
  • 2022-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多