如何修改用户无线网络适配器的 RoamingPreferredBandType 属性?

如何修改用户无线网络适配器的 RoamingPreferredBandType 属性?

我们发现用户在连接 Wi-Fi 时会遇到间歇性问题。这似乎是由于干扰造成的,建议的解决方案是将 RoamingPreferredBandType 更改为 5GHz。

此主题,这可以通过修改注册表设置 RoamingPreferredBandType 的值来实现,将其改为 2。该线程中包含了一些代码(和)batpowershell但这些代码似乎扫描了注册表的很大一部分,查找并更新了具有该值的所有属性。虽然其他条目不太可能具有此名称的属性,但我不喜欢基于假设的代码;而且这种方法效率不高。有没有更好的方法可以做到这一点,只针对那些重要的条目?

答案1

这是英特尔论坛主题(问题中链接)上脚本的修改版本,它利用了一些东西来改进他们的脚本:

  • GUID{4D36E972-E325-11CE-BFC1-08002BE10318}始终是其下有网络适配器的 GUID,可帮助我们缩小注册表路径:https://technet.microsoft.com/en-us/library/jj130901.aspx
  • 我们可以从 WMI 类中获取网络适配器的设备 ID/索引Win32_NetworkAdapter,结合上述内容,我们可以得到适配器注册表项的完整路径。

Get-WmiObject -Class Win32_NetworkAdapter | ?{$_.Name -like '*Wireless*'} | %{("HKLM:\SYSTEM\CurrentControlSet\Control\Class\{{4D36E972-E325-11CE-BFC1-08002BE10318}}\{0:0000}" -f ([int]$_.Index))} | %{ 
    if(get-itemproperty -Path $_ -Name 'RoamingPreferredBandType' -ErrorAction SilentlyContinue) {
        Set-ItemProperty -Path $_ -Name 'RoamingPreferredBandType' -Value 2    
    } else {
        New-ItemProperty -Path $_ -Name 'RoamingPreferredBandType' -PropertyType String -Value 2
    }
}

IE

  • 获取所有网络适配器的列表
  • 无线过滤器
  • 使用每个无线适配器的设备 ID/索引来获取此设备/这些设备的完整注册路径
  • 对于找到的每个设备,检查 RoamingPreferenceBandType 属性是否存在:
    • 如果是,则将其设置为 2(如果不存在则创建它)。
    • 如果没有,请创建一个新的,值为 2(这种情况不太可能发生;但最好能满足)

相关内容