如何更改 Windows 8.1 中 WiFi 网络的顺序,使某个网络优先于另一个网络?

如何更改 Windows 8.1 中 WiFi 网络的顺序,使某个网络优先于另一个网络?

在 Mac OS X 中,您可以通过在列表中上下移动来更改记住的无线网络的顺序。这将改变首先连接的 WiFi 网络。

我似乎无法在 Windows 8.1 中找到等效设置。如何更改设置以便优先选择特定网络?

谢谢。

答案1

不幸的是,Windows 8 缺少一种 GUI 方式来实现这一点。

  1. 在提升的(管理员)命令提示符下运行以下命令来查看可用的无线网络及其当前优先级:

    netsh wlan show profiles
    

    1

  2. 记下接口和无线网络的名称,并使用以下命令更改后者的优先级:

    netsh wlan set profileorder name="w1r3l3$$" interface="Wi-Fi" priority=1
    
  3. 再次运行netsh wlan show profiles将显示改变后的顺序。

来源

当然,人们已经制作了 GUI 来克服这个荒谬的遗漏,所以你可以使用类似WiFi配置文件管理器8反而:

2

答案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
}

相关内容