Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
#Requires -Version 4.0 -RunAsAdministrator
Manage-WiFiStatus.ps1 - Enable/Disable WiFi based on wired connectivity status
Disables the Wi-Fi adapter if the wired one is connected, and vice versa.
This is built for internal use on Windows 8.1, and depends on the new *-NetAdapter cmdlets in PS 4.0
The point of this script is to run it based on System Event Log events that the NIC drivers
create when the physical NIC is plugged in or unplugged. Alternatively, you could just schedule it
to run periodically.
Written By: Daniel Streefkerk
Change Log
v1.0, 06/03/2014 - Initial version
v1.1, 07/07/2015 - Replaced Write-Host with Write-Verbose
# Get the NICs. This depends on them being named according to Windows 8's defaults
$wiredNic = Get-NetAdapter "ethernet" -ErrorAction SilentlyContinue -WarningAction SilentlyContinue
$wirelessNic = Get-NetAdapter "wi-fi" -ErrorAction SilentlyContinue -WarningAction SilentlyContinue
# If we can't figure out the NICs, bail out
If (($wiredNic -eq $null) -or ($wirelessNic -eq $null)) {
Write-Verbose "Couldn't find network adapters. Perhaps they're not named 'Ethernet' and 'Wi-Fi'?"
Write-Verbose "Wired NIC: $($wiredNic.InterfaceDescription)"
Write-Verbose "Wireless NIC: $($wirelessNic.InterfaceDescription)"
switch ($wiredNic.MediaConnectionState) {
"Connected" {
Write-Verbose "Physical NIC is connected. Disabling Wi-Fi Adapter"
$wirelessNic | Disable-NetAdapter -Confirm:$false
"Disconnected" {
Write-Verbose "Physical NIC is disconnected. Enabling Wi-Fi Adapter"
$wirelessNic | Enable-NetAdapter -Confirm:$false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment