我有一个很小的.ps1
脚本,用于切换以太网和WiFi之间的网络连接。我的脚本效果很好。我现在想知道如何在不禁用底层网络适配器的情况下关闭WiFi。
这是我现有的脚本:
$lanState = Get-NetAdapter -Name MyEthernetPort | where status -EQ 'up'
if ( $lanState )
{
write-host 'Enabled... Disable now'
Get-NetAdapter -Name MyEthernetPort | ? status -NE disabled | Disable-NetAdapter -Confirm:$false
# TODO switch on wifi
netsh wlan connect name=SM-GUEST
}
else
{
Write-Host 'Disabled... Enable now'
Get-NetAdapter -Name MyEthernetPort | ? status -EQ disabled | Enable-NetAdapter -Confirm:$false
# TODO switch off wifi
netsh wlan disconnect
}
我无法找到有关如何通过PowerShell关闭WiFi的任何指导(与单击Windows 10信息中心中的按钮时相同)。我发现的所有脚本都禁用了底层适配器,这不是我想要的。
有人可以建议如何从PowerShell访问此功能吗?
答案 0 :(得分:2)
我找不到任何方式以编程方式执行此操作,因此我认为答案可能是(目前)并非完全可能。
我发现当您使用Windows操作中心的按钮关闭Wifi时,netsh
将界面显示为“硬件开启”“软件关闭”:
Netsh WLAN show interfaces
There is 1 interface on the system:
Name : WiFi
State : disconnected
Radio status : Hardware On
Software Off
但是我看不到任何通过netsh
或任何*-netadapter
cmdlet触发“软件关闭”的功能。可能是这是通过注册表中的开关来控制的,但如果是这样,我就看不出哪个。
我的建议是通过使用Disable-NetAdapter
和Enable-NetAdapter
启用/禁用底层适配器来继续控制wifi,或者是否需要保持硬件启用(可能是为了重新配置)它?)但是当你这样做时想要断开无线连接,你可以通过以下方式连接/断开网络:
netsh wlan disconnect
netsh wlan connect
答案 1 :(得分:0)
这些是在命令提示符下工作的命令
检查广播状态
powershell Get-NetAdapterAdvancedProperty -Name "Wi-Fi" -AllProperties -RegistryKeyword "radioEnable"
打开收音机(以管理员身份运行)
powershell Set-NetAdapterAdvancedProperty -Name "Wi-Fi" -AllProperties -RegistryKeyword "radioEnable" -RegistryValue "1"
关闭广播(以管理员身份运行)
powershell Set-NetAdapterAdvancedProperty -Name "Wi-Fi" -AllProperties -RegistryKeyword "radioEnable" -RegistryValue "0"
要在powershell中使用这些命令,只需从一开始就删除powershell
答案 2 :(得分:-3)
我只打开“计算机管理”,然后打开“设备管理器”,然后打开“网络适配器”,然后禁用“无线”,然后再次启用它。我的无线再次激活