Many times people may have both their wireless NIC and wired NIC connected at the same time. This can create a bridge and cause your network performance to degrade. Here is a powershell script that could be setup as a scheduled task to run at start up. What it does it detect if the wired nic is connected and if so it will disable the wireless connections. The -Filter parameters may need to be tweaked to match your network adapter names though.
Code:
Function Get-WiredStatus
{
$nics = Get-WmiObject -Class Win32_NetworkAdapter -Filter "Name LIKE '%Ethernet%'"
ForEach ($nic In $nics)
{
If ($nic.NetConnectionStatus -eq 2)
{
Disable-WirelessConnection
break
}
Else
{
Enable-WirelessConnection
break
}
}
}
Function Disable-WirelessConnection
{
$nics = Get-WmiObject -Class Win32_NetworkAdapter -Filter "Name LIKE '%Wireless%'"
ForEach ($nic In $nics)
{
$nic.Disable() >> $null
}
$nics.Dispose()
}
Function Enable-WirelessConnection
{
$nics = Get-WmiObject -Class Win32_NetworkAdapter -Filter "Name LIKE '%Wireless%'"
ForEach ($nic In $nics)
{
$nic.Enable() >> $null
}
$nics.Dispose()
}
While($true)
{
Get-WiredStatus
Start-Sleep -Seconds 5
}
It won't iterate through all of them though because of the break statements. Look at your logic. The if statement tests for a specific condition and if true, breaks, otherwise if the first iteration evaluation is false, the else block still breaks from the foreach loop.
Try this:
Code:
foreach ($num in 1,2,3,4,5) {
write-output $num
break
}
Hi @Neemobeer Very good theory; but I must confess, way over this old country boys pay grade.
I'm sure we have some members here that can use this switcher.
I don't think that the for loop is necessary if both code path's break from it in the first iteration of your first function. Not a bad idea though, but sometimes I like to have multiple networks
It won't iterate through all of them though because of the break statements. Look at your logic. The if statement tests for a specific condition and if true, breaks, otherwise if the first iteration evaluation is false, the else block still breaks from the foreach loop.
Try this:
Code:
foreach ($num in 1,2,3,4,5) {
write-output $num
break
}