在 Mac OS X 中,您可以通过在列表中上下移动来更改记住的无线网络的顺序。这将改变首先连接的 WiFi 网络。
我似乎无法在 Windows 8.1 中找到等效设置。如何更改设置以便优先选择特定网络?
谢谢。
答案1
不幸的是,Windows 8 缺少一种 GUI 方式来实现这一点。
在提升的(管理员)命令提示符下运行以下命令来查看可用的无线网络及其当前优先级:
netsh wlan show profiles
记下接口和无线网络的名称,并使用以下命令更改后者的优先级:
netsh wlan set profileorder name="w1r3l3$$" interface="Wi-Fi" priority=1
再次运行
netsh wlan show profiles
将显示改变后的顺序。
当然,人们已经制作了 GUI 来克服这个荒谬的遗漏,所以你可以使用类似WiFi配置文件管理器8反而:
答案2
我编写了一个脚本,允许用户使用记事本编辑它:
# Prioritize WLAN networks
# Prepare the temporary file
$tempfile = "$($Env:Temp)\wifiprio.txt"
Set-Content -Path $tempfile -encoding UTF8 @"
# Edit (re-arrange) the list of networks, putting the highest priority at the top.
# Empty lines and lines starting with # will be ignored.
#
"@
# Add the network list to the file
& netsh wlan show profiles | Where-Object {$_ -match(":")} | ForEach-Object {(($_.split(":"))[1]).trim()} | Out-File $tempfile -encoding UTF8 -Append
# Allow the user to edit the list
Start-Process -FilePath "notepad.exe" -ArgumentList $tempfile -PassThru -Wait
# Get the edited list
$networks = Get-Content $tempfile | Where-Object {$_ -notmatch "^\s*#"} | Where-Object {$_ -notmatch "^\s*$"}
# Clean up
Remove-Item $tempfile
# Set priority according to the edited list
$priority = 1
ForEach ($network in $networks)
{
& netsh wlan set profileorder name="$($network)" interface="Wi-Fi" priority=$priority
$priority += 1
}