Function AdapterSwitcher {
While ($true) {
$Ethernet = Get-NetAdapter | where-object {$_.Status -contains "Up"} | Where-Object {$_.PhysicalMediaType -eq "802.3" -and {$_.Name -notlike "PANGP" }}
if ($Ethernet -eq $null)
{
Write-Host "Ethernet Not Detected, Enabling WiFi"
#When the value is null this means that there is no wired connection and the wireless must be enabled
$WiFiNetadapter = get-netadapter | where-object {$_.Status -contains "Up"} | Where-Object {$_.PhysicalMediaType -eq "Native 802.11"}
$WiFiNetadapter | Enable-NetAdapter -Confirm:$false -Verbose
}
else
{
Write-Host "Disabling WiFi Network Adapter"
#When the value is not null, the value consists of the object information about the Local Area Network Connection and
#that the wireless connection needs to be disabled.
$WiFiNetadapter = get-netadapter | where-object {$_.Status -contains "Up"} | Where-Object {$_.PhysicalMediaType -eq "Native 802.11"}
$WiFiNetadapter | Disable-NetAdapter -Confirm:$false -Verbose }
Start-Sleep -s 2
}
Start-Sleep -s 3
}
#Remove-Variable -Name WIRED -Force
AdapterSwitcher
When i run this script, even though the value of $ethernet
is not $null
, the script still returns the below so it goes to the else block when it shouldn't?
write-host "Disabling Network Adapter"
Could anybody tell me why? This doesn't make logical sense