web-dev-qa-db-ja.com

コマンドラインからWi-Fiをオンにする

現在のWiFiネットワークから切断し、特定のWiFiネットワークに接続して、静的IPアドレスを設定するバッチファイル/スクリプトがあります。これは、Windows 7では機能しますが、Wi-Fiが「オフ」の場合はWindows10では機能しません。コマンドライン(または通常は一方の構文を他方から理解できるため、バッチファイル/スクリプト)を介してWi-Fiを「オン」にするにはどうすればよいですか?

問題がなければ、コントロールパネル->ネットワークとインターネット->ネットワーク接続、Wi-Fiは有効になっていますが、赤いXとnetsh wlan connect name=%ltName%は機能しません(ltNameが正しいWi-Fiプロファイル名に設定されており、既知のネットワークである場合)。また、ページの上部にある[設定]の[Wi-Fi]スライダーボタンはオフになっています。

また、スクリプトは管理者として実行され、Windows 10Proバージョン1607を実行しています。

脚本:

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

私が知り、広範囲に検索した後に見つけることができる限り、これを直接行う方法はありません。 Wi-Fiをオフにするのは機内モードに似ており、コマンドで機内モードをオフにする方法もありません。非常に醜いハックは、タスクを実行するためにキーストロークをシミュレートするスクリプトを書くことです。 vbscriptでは、これは次のようになります(テスト済み、タイムアウトを変更する必要がある場合があります)

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

次に、スクリプトを次のように呼び出すことができます

cscript toggle-wifi.vbs

ms-availablenetworks:開くのに時間がかからない

2
PulseJet