You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

德语Windows系统下PowerShell执行Set-NetAdapterAdvancedProperty命令时英文参数失效问题咨询

为什么德语Windows系统中PowerShell的Set-NetAdapterAdvancedProperty不支持英文参数?

这个问题的核心原因很明确:-DisplayValue参数依赖于Windows系统的本地化显示文本,而非通用的英文参数值。下面详细拆解原因和解决方案:

1. 本地化的显示值是问题根源

Windows的网络适配器高级属性(包括功能名称和可选值)都是和系统语言绑定的。在德语系统中:

  • "Green-Ethernet"功能的显示值会被本地化为Deaktiviert(对应英文的Disabled)和Aktiviert(对应英文的Enabled)
  • 当你在脚本中传入-DisplayValue 'Disabled'时,PowerShell会在德语系统的网卡属性列表里查找这个英文文本,自然找不到匹配项,于是抛出你看到的No matching display value found错误。

2. 用RegistryValue替代DisplayValue实现跨语言兼容

PowerShell的Set-NetAdapterAdvancedProperty其实提供了两种设置参数的方式:

  • -DisplayValue:对应GUI中看到的本地化文本,随系统语言变化,适合手动操作,但不适合跨语言脚本
  • -RegistryValue:对应网卡属性背后的注册表键值,是固定的通用数值(通常是0/1或特定字符串),不随系统语言改变,这才是编写通用脚本的正确选择

修改后的脚本命令

针对Green-Ethernet功能,通常RegistryValue设为0表示禁用,1表示启用。你可以把脚本中的PowerShell命令改成:

powershell.exe Set-NetAdapterAdvancedProperty -Name '%%J' -DisplayName 'Green-Ethernet' -RegistryValue '0'

如何确认正确的RegistryValue

如果你不确定某个属性的RegistryValue是什么,在德语系统中运行以下PowerShell命令查询:

Get-NetAdapterAdvancedProperty -Name "你的网卡名称" -DisplayName "Green-Ethernet"

查看输出里的RegistryValue字段,就能得到该功能对应的通用数值,确保脚本在任何语言的Windows系统上都能正常工作。

内容的提问来源于stack exchange,提问作者Temal

火山引擎 最新活动