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.