![如何修改用户无线网络适配器的 RoamingPreferredBandType 属性?](https://linux22.com/image/697893/%E5%A6%82%E4%BD%95%E4%BF%AE%E6%94%B9%E7%94%A8%E6%88%B7%E6%97%A0%E7%BA%BF%E7%BD%91%E7%BB%9C%E9%80%82%E9%85%8D%E5%99%A8%E7%9A%84%20RoamingPreferredBandType%20%E5%B1%9E%E6%80%A7%EF%BC%9F.png)
我们发现用户在连接 Wi-Fi 时会遇到间歇性问题。这似乎是由于干扰造成的,建议的解决方案是将 RoamingPreferredBandType 更改为 5GHz。
每此主题,这可以通过修改注册表设置 RoamingPreferredBandType 的值来实现,将其改为 2。该线程中包含了一些代码(和)bat
;powershell
但这些代码似乎扫描了注册表的很大一部分,查找并更新了具有该值的所有属性。虽然其他条目不太可能具有此名称的属性,但我不喜欢基于假设的代码;而且这种方法效率不高。有没有更好的方法可以做到这一点,只针对那些重要的条目?
答案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(这种情况不太可能发生;但最好能满足)