Ligue o Wi-Fi via linha de comando

Ligue o Wi-Fi via linha de comando

Eu tenho um arquivo/script em lote que se desconecta da rede WiFi atual, conecta-se a uma rede WiFi específica e define um endereço IP estático e funciona no Windows 7, mas não no Windows 10 se o Wi-Fi estiver "desligado". Como faço para "ligar" o Wi-Fi através da linha de comando (ou arquivo/script em lote, já que normalmente consigo descobrir a sintaxe de um do outro)?

Se ajudar, o painel de controle -> Rede e Internet -> Conexões de Rede, Wi-Fi está habilitado, mas tem um X vermelho e netsh wlan connect name=%ltName%não funciona (onde ltName está definido como o nome correto do perfil Wi-Fi e é uma rede conhecida). Além disso, o botão deslizante Configurações, Wi-Fi na parte superior da página está desativado.

Além disso, o script é executado como Administrador e executando o Windows 10 Pro versão 1607.

Roteiro:

:: disconnect from the current network
netsh wlan disconnect

set ltName=insertNameHere

:: now connect to the wifi
netsh wlan connect name=%ltName%
netsh interface ip set address "Wi-Fi" static xxx.xxx.xxx.xxx 255.255.255.0

::pause

Responder1

Pelo que eu sei e pude descobrir depois de pesquisar extensivamente, não há como fazer isso diretamente. Desligar o Wi-Fi é algo semelhante ao modo avião, e também não há como desligar o modo avião com comandos. Um truque extremamente feio seria escrever um script que simule o pressionamento de teclas para realizar a tarefa. Em vbscript, seria assim (testado, pode ser necessário alterar os tempos limite)

set shell = CreateObject("WScript.Shell")
shell.run"ms-settings:network-wifi"
WScript.Sleep 2500
shell.SendKeys" "
WScript.Sleep 1500
shell.SendKeys"%{F4}"

Então você pode chamar o script como

cscript toggle-wifi.vbs

Você também pode trabalhar com ms-availablenetworks:o que leva menos tempo para abrir

informação relacionada