切换网络连接的 PowerShell 脚本

切换网络连接的 PowerShell 脚本

我想编写一个 Powershell 脚本,每次运行时充当连接到互联网的开关。我写了这个,它有效:

$isconnected = netsh wlan show interfaces | select-string SSID | Out-String

if($isconnected.length -eq 0)
{  
  netsh wlan connect "My Network Name"
}
else
{
  netsh wlan disconnect
}

但我不确定是否存在可能失败的情况。我想到的一个情况是,每当计算机处于一个新网络上时,而该网络的名称未在脚本中指定。有没有办法绕过指定网络名称?有没有更好的方法来做到这一点?

答案1

很遗憾,网络管理员适用于已知网络。

这个问题已经在这里得到解答了:

如何使用NETSH连接WIFI

答案2

我想到的是,每当计算机处于新网络上时,脚本中未指定其名称。有没有什么方法可以绕过指定网络名称?

您可以通过将输出传输到管道select-stringselect-object选择输出的第一行来动态获取网络名称。然后删除其名称前的所有字符。

$network = $isconnected -replace '.*: ',''

您的代码将如下所示:

$isconnected = netsh wlan show interfaces | select-string SSID | select-object -First 1 | Out-String

if($isconnected.length -eq 0)
{ 
  $network = $isconnected -replace '.*: ',''
  netsh wlan connect $network
}
else
{
  netsh wlan disconnect
}

相关内容