Derzeit habe ich das Problem, dass mein Kabelgebundenes LAN (genauer gesagt Powerline LAN) zwar eine bessere Latenz aufweist, jedoch von der tatsächlich möglichen Bandbreite deutlich hinter dem WLAN zurück bleibt.
Situationsbeding möchte ich also zwischen kurzen Antwortzeiten (dLAN) und hoher Übertragungsrate (WLAN) möglichst einfach wechseln.
Folgendes Powershell script erfüllt dieses:
# get the adapters, sorting "up"-Adapters first.
$adapters = Get-NetAdapter | Sort-Object Status -descending
foreach ($adapter in $adapters)
{
if($adapter.Status -eq "Up")
{
Disable-NetAdapter -InputObject $adapter -Confirm:$false
Write-Host "Disabled: " $adapter.Name
}
elseif(($adapter.Status -eq "Disconnected") -or ($adapter.Status -eq "Disabled") -or ($adapter.Status -eq "Not Present"))
{
Enable-NetAdapter -InputObject $adapter -Confirm:$false
Write-Host "Enabled: " $adapter.Name
}
}
Damit das Script ausgeführt werden kann muss man der Powershell entweder erlauben, unsignierte Scripte auszuführen, was potenziell unsicher ist oder das Script Makecert.exe selbst signieren und die Execution Policy entsprechend auf All Signed setzen.
Eine schnelle Alternative ist es, eine Verknüpfunjg auf das Powershell script zu erstellen und statt das Script (meist eine .ps1 Datei) zu starten, in der Verknüpfung dann folgendes als Ziel zu hinterlegen:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -File toggle_lan_wlan.ps1
Damit das Script funktioniert benötigt es darüber hinaus Administrator-Rechte. Diese können entweder direkt in der Verknüpfung hinterlegt werden (Eigenschaften der Verknüpfung, Reiter Verknüpfung, Erweitert: “Als Administrator ausführen”) oder man bedient sich eines Tricks und lässt das Powershell Script sich selbst mit Adminrechten starten. Wie das geht sieht man im vollständigen Script.
Update: Ich habe ein paar kleine Änderungen am Script durchgeführt, um es noch robuster zu machen.