Activar Wi-Fi a través de la línea de comando

Activar Wi-Fi a través de la línea de comando

Tengo un archivo/script por lotes que se desconecta de la red WiFi actual, se conecta a una red WiFi específica, luego establece una dirección IP estática y funciona en Windows 7 pero no en Windows 10 si el Wi-Fi está "apagado". ¿Cómo "enciendo" el Wi-Fi a través de la línea de comando (o un archivo por lotes/script, ya que normalmente puedo descifrar la sintaxis de uno del otro)?

Si ayuda, el panel de control -> Red e Internet -> Conexiones de red, Wi-Fi está habilitado, pero tiene una X roja y netsh wlan connect name=%ltName%no funciona (donde ltName está configurado con el nombre correcto del perfil de Wi-Fi y es una red conocida). Además, el botón deslizante Configuración, Wi-Fi en la parte superior de la página dice desactivado.

Además, el script se ejecuta como administrador y ejecuta Windows 10 Pro versión 1607.

Guion:

:: 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

Respuesta1

Hasta donde yo sé y pude encontrar después de buscar extensamente, no hay forma de hacer esto directamente. Desactivar el Wi-Fi es algo similar al modo avión, y tampoco hay forma de desactivar el modo avión con comandos. Un truco extremadamente feo sería escribir un script que simule las pulsaciones de teclas para realizar la tarea. En vbscript, esto se vería así (probado, es posible que deba cambiar los tiempos de espera)

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

Entonces puedes llamar al script como

cscript toggle-wifi.vbs

También podrías trabajar con ms-availablenetworks:el que tarda menos en abrirse.

información relacionada