イーサネット接続時にWindowsでWi-Fiを自動的にオフにするのは、特に自動でオフにならない場合があり、少々面倒です。イーサネット接続時でもWindowsがWi-Fiをアクティブなままにしていることに気付くかもしれません。これはバッテリーの無駄遣いになり、特にノートパソコンではネットワークの競合を引き起こすこともあります。ここでの目標は、有線接続が利用可能な場合は常にWi-Fiを自動的に無効にするようにシステムを設定することです。そうすれば、毎回手動で切り替える手間が省けます。幸いなことに、BIOSの調整からスクリプトやタスクのスケジュール設定まで、これを自動化する方法はいくつかあります。それぞれに癖があるので、自分の環境に最適なものを選んでください。
イーサネット接続時にWi-Fiがオフにならない問題を解決する方法
BIOS/UEFI の WLAN 切り替えオプション
多くのラップトップやデスクトップには、Wi-Fi とイーサネットを自動的に切り替える独自の組み込み機能があり、これは LAN/WLAN 切り替えと呼ばれています。これは、BIOS または UEFI ファームウェアで構成できる場合があります。製造元がサポートしている場合、この機能を有効にすると、デバイスは Wi-Fi よりもイーサネットを優先し、ケーブルが接続されると Wi-Fi アダプターへの電源が切断されます。そのため、デバイスにLAN/WLAN 切り替えやワイヤレス無線制御などのオプションがある場合は、BIOS/UEFI 設定に移動して (通常はDelまたはF2起動中に を押すことによって) 有効にしてください。注: 一部のマシンでは、この機能は別の名前で呼ばれたり、まったく利用できない場合があります。これは当然のことながら、Windows がそれを必要以上に難しくする必要があるためです。
ワイヤレスアダプタドライバを使用して有線接続時にWi-Fiを無効にする
一部のWi-Fiドライバーは、イーサネットがアクティブな場合の自動シャットダウンをサポートしています。お使いのドライバーにこの機能が搭載されている場合は、デバイスマネージャーから有効にできます。 でデバイスマネージャーを開きdevmgmt.msc、お使いのワイヤレスアダプター(Intel WirelessやKiller Wi-Fiなど)を見つけてダブルクリックし、プロパティを開いて「詳細設定」タブに進みます。 「有線接続時に無効にする」や「LANが検出されたらWi-Fiを有効にする」などの名前のオプションを探します。その設定を「有効」に変更して適用します。すべてのドライバーにこの機能が搭載されているわけではないので、見つからない場合でも心配はいりません。スクリプトやスケジュールされたタスクなどのオプションが次に表示されます。
タスク スケジューラを使用してネットワーク対応スクリプトを設定する
これは少し複雑ですが、なかなか巧妙な方法です。基本的には、Windows にネットワーク ステータス イベントを監視し、イーサネットが接続されているかどうかに応じて Wi-Fi をオンまたはオフにするスクリプトを実行するように指示します。まず、dot3svcサービス (Wired AutoConfig) が実行されていて、自動開始するように設定されていることを確認します。これはリンク状態を検出するサービスです。
Set-Service dot3svc -StartUpType Automatic Start-Service dot3svc Get-Service dot3svc
次に、イベントビューアー( )を開き、 「アプリケーションとサービスログ」>「Windows」>「Wired-AutoConfig」>「Operational」eventvwr.mscでWi-Fi接続/切断イベントを探します。イベントIDは15501(接続)や15500(切断)などです。旧バージョンのWindowsでは、ネットワークリンクステータスのイベントIDは32/27になる場合があります。
次に、これらのイベントをリッスンし、Disable-NetAdapter -Name "YourWiFiAdapter"イーサネットが接続されたときやEnable-NetAdapter -Name "YourWiFiAdapter"切断されたときなどのコマンドを実行するスケジュールタスクを作成します。Wi-Fiアダプターの名前を確認するにはGet-NetAdapter、PowerShellで実行します。PowerShellでは、すべてのネットワークインターフェースが一覧表示されます。コマンドにその名前を代入します。例えば、Wi-Fiアダプターの名前がWi-Fiの場合、無効化コマンドは次のようになります。
Disable-NetAdapter -Name "Wi-Fi" -Confirm:$False
Wi-Fiを無効化するには「接続」イベントをトリガーに設定し、Wi-Fiを再度有効化するには「切断」イベントを設定します。タスクのプロパティを調整し、ユーザーがログインしているかどうかに関係なく実行されるようにします。ほとんどの設定では、ケーブルを抜き差ししてから数秒以内にこの処理が実行されます。Wi-Fiの自動オフ/オンをスムーズに行うには十分な時間です。
自動切り替えにWLANマネージャーPowerShellスクリプトを使用する
スクリプトに慣れている方には、WLAN Managerスクリプトが非常に便利なソリューションです。このスクリプトは、Windowsのスケジュールタスクを作成し、ネットワークの状態を1秒ごとにチェックし、イーサネット接続の状態に応じてWi-Fiアダプターを有効または無効にします。Windows 11、10、そしてそれ以前のバージョンでも動作します。
スクリプトをインストールするには、実行ポリシーを正しく設定する必要があります。
Set-ExecutionPolicy RemoteSigned
次にインストール コマンドを実行します。
.\WLANManager.ps1 -Install:System
これは、ネットワークの変化を常に監視するバックグラウンドプロセスを設定します。イーサネットが接続されると、すべてのWi-Fiアダプターが無効になり、接続が解除されるとWi-Fiが再び有効になります。このスクリプトには、ネットワークの切り替え時に通知するオプションも用意されており、以下のコマンドを実行するだけで削除できます。
.\WLANManager.ps1 Remove:System
初期設定後はスクリプトがかなり安定するので、これが役に立つことを祈っています。起動時にタスクが実際に実行されることを確認しておけば、毎回手動で操作することなくシームレスに切り替えられます。
非ドメインネットワークをブロックするようにグループポリシーを構成する
企業環境でWindows ProまたはEnterpriseをご利用の場合、グループポリシーエディターを使用して、有線ドメインネットワークへの接続時にWi-Fiの切断を強制することもできます。「コンピューターの構成」>「ポリシー」>「管理用テンプレート」>「ネットワーク」>「Windows接続マネージャー」で、「ドメイン認証ネットワークに接続している場合は、ドメイン外ネットワークへの接続を禁止する」ポリシーを有効にします。これにより、Windowsが既に有線ネットワークに接続しているときにWi-Fiへの接続が停止され、ネットワークの整理とセキュリティが維持されます。
あるいは、「インターネットまたはWindowsドメインへの同時接続数を最小化」(3に設定)することで、イーサネット接続時にWi-Fiが起動しないように設定することもできます。ただし、仮想アダプターや仮想ネットワークソフトウェアによってこの設定が無効になる場合があるので、微調整が必要になる場合もありますのでご了承ください。
まとめ
- サポートされている場合は、BIOS/UEFI LAN/WLAN 切り替えを有効にします。
- 自動無効化オプションについては、Wi-Fi ドライバーの設定を確認してください。
- カスタム制御のために、タスク スケジューラを使用してイベント トリガー スクリプトを設定します。
- 自動切り替えには、WLAN マネージャー PowerShell スクリプトを試してください。
- グループ ポリシーを使用して、企業 LAN 上での Wi-Fi 接続を防止します。
まとめ
これらの方法は万能ではありませんが、ほとんどのユーザーシナリオに対応しています。多くの場合、BIOSオプションをいじったり、PowerShellスクリプトを設定したりすることで解決できます。イーサネットを抜き差しするたびに手動で切り替える煩わしさはもうありません。ただし、一部の方法はハードウェアとドライバーのサポート状況に依存することを覚えておいてください。一部のマシンでは、試行錯誤が必要になる場合があります。
これで誰かの時間節約になれば幸いです。頑張ってください。そして、設定後は各方法を必ずテストしてください。場合によっては、再起動や再設定だけですべてがスムーズに動作することもあります。