Wlan per Script deaktivieren wenn LAN Kabel eingesteckt ist.
Wichtig!!
Hallo,
ich möchte das mein WLAN in der Netzwerkübersicht deaktiviert wird sobald ein LAN Kabel eingesteckt ist und das ganze automatisch.
Hat jemand schon so etwas per Script oder anders eingerichtet??
Hallo,
ich möchte das mein WLAN in der Netzwerkübersicht deaktiviert wird sobald ein LAN Kabel eingesteckt ist und das ganze automatisch.
Hat jemand schon so etwas per Script oder anders eingerichtet??
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 158064
Url: https://administrator.de/contentid/158064
Ausgedruckt am: 26.11.2024 um 08:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo AndiSu,
bei Windows Vista/7 gibt es die Möglichkeit, über die Aufgabenplanung einen Task bei Eintritt eines Ereignisses zu starten. Wenn Du eines dieser Systeme nutzt, kann Dir geholfen werden.
[EDIT 11.01.2010]
Falls hier nochmal jemand vorbeikommt, soll er wenigstens eine Lösung vorfinden, auch wenn es den TO anscheinend nicht mehr interessiert.
Die Lösung funktioniert aber doch nicht mit Hilfe der Aufgabenplanung von Windows 7, sondern über ein WMI-Skript in VBS und mit Hilfe von DEVCON, dem Gerätemanager für die Kommandozeile von Microsoft, erhältlich hier, für 32Bit und 64Bit. Das bedeutet, die Lösung lässt sich auch auf XP verwenden. Das DEVCON-Paket von Microsoft funktioniert bei mir auch unter Windows 7 Ultimate 32Bit einwandfrei.
Damit das ganze funktioniert, muss DEVCON im Verzeichnis
Das Skript holt sich zuerst über eine WMI-Abfrage die Hardware-ID des WLAN-Adapters (wird für den DEVCON-Aufruf benötigt) und beauftragt dann WMI mit der Erstellung eines Event-Objekts, das danach in der Endlos-WHILE-Schleife zyklisch abgefragt wird. Wenn der Netzwerkadapter online geht, wird über DEVCON der WLAN-Adapter deaktiviert. Wenn der Netzwerkadapter wieder offline geht, wird WLAN wieder aktiviert. Unter Vista und Win7 kommt natürlich zuerst eine UAC-Abfrage, ob DEVCON Änderungen am Computer vornehmen darf, die man abnicken muss.
Wenn man das Skript als
Es läuft dann die ganze Zeit ein Konsolenfenster, das NICHT geschlossen werden darf, höchstens minimiert. Wer will, kann den Aufruf ja in ein Batchfile packen und vorher noch eine Zeile mit einem Aufruf von CMDOW einfügen,
mit dem sich das Fenster verstecken lässt, sodass es auch nicht mehr in der Taskleiste auftaucht.
PS:
Statt DEVCON einen Aufruf von NETSH (in Windows enthalten) zu benutzen, ist erst mit Windows 7 (evtl. auch Vista?) möglich, da sich unter XP mit NETSH nur WAN-Interfaces aktivieren/deaktivieren lassen
Gruß
Friemler
bei Windows Vista/7 gibt es die Möglichkeit, über die Aufgabenplanung einen Task bei Eintritt eines Ereignisses zu starten. Wenn Du eines dieser Systeme nutzt, kann Dir geholfen werden.
[EDIT 11.01.2010]
Falls hier nochmal jemand vorbeikommt, soll er wenigstens eine Lösung vorfinden, auch wenn es den TO anscheinend nicht mehr interessiert.
Die Lösung funktioniert aber doch nicht mit Hilfe der Aufgabenplanung von Windows 7, sondern über ein WMI-Skript in VBS und mit Hilfe von DEVCON, dem Gerätemanager für die Kommandozeile von Microsoft, erhältlich hier, für 32Bit und 64Bit. Das bedeutet, die Lösung lässt sich auch auf XP verwenden. Das DEVCON-Paket von Microsoft funktioniert bei mir auch unter Windows 7 Ultimate 32Bit einwandfrei.
Damit das ganze funktioniert, muss DEVCON im Verzeichnis
C:\Windows\System32
abgespeichert werden. Zusätzlich müssen am Anfang des Skrpits die Variablen strMonitoredNIC
(für die Netzwerkkarte) und strWLANAdapter
(für den zu deaktivierenden WLAN-Adapter) angepasst werden. Die Namen der Netzwerkadapter kann man im "Verzeichnis" Netzwerkverbindungen unter den Icons der Adapter ablesen. Wer DEVCON nicht im System32-Verzeichnis abspeichern will, muss noch die Konstante DEVCON_PATH anpassen.Das Skript holt sich zuerst über eine WMI-Abfrage die Hardware-ID des WLAN-Adapters (wird für den DEVCON-Aufruf benötigt) und beauftragt dann WMI mit der Erstellung eines Event-Objekts, das danach in der Endlos-WHILE-Schleife zyklisch abgefragt wird. Wenn der Netzwerkadapter online geht, wird über DEVCON der WLAN-Adapter deaktiviert. Wenn der Netzwerkadapter wieder offline geht, wird WLAN wieder aktiviert. Unter Vista und Win7 kommt natürlich zuerst eine UAC-Abfrage, ob DEVCON Änderungen am Computer vornehmen darf, die man abnicken muss.
strMonitoredNIC = "VIA Rhine II Fast Ethernet Adapter"
strWLANAdapter = "Gigaset USB Stick 54"
Const DEVCON_PATH ="""C:\Windows\System32\Devcon.exe"""
' Für XP SP2, SP1 und ohne SP
' Const LAN_CONNECTED = 9
' Ab XP SP3 und neuer
Const LAN_CONNECTED = 2
Const LAN_DISCONNECTED = 7
Const MINIMIZED = 7
WAIT = TRUE
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetworkAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE Name='" & strWLANAdapter & "'")
For Each objNIC in colNetworkAdapters
strWLANOn = DEVCON_PATH & " enable ""@" & objNIC.PNPDeviceID & """"
strWLANOff = DEVCON_PATH & " disable ""@" & objNIC.PNPDeviceID & """"
Next
Set colMonitoredEvents = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE "_
& "Targetinstance ISA 'Win32_NetworkAdapter' AND "_
& "TargetInstance.Name='" & strMonitoredNIC & "'")
Set WshShell = WScript.CreateObject("WScript.Shell")
Do While TRUE
Set objEventObject = colMonitoredEvents.NextEvent()
If objEventObject.Path_.Class = "__InstanceModificationEvent" Then
Select Case objEventObject.TargetInstance.NetConnectionStatus
Case LAN_CONNECTED
WshShell.Run strWLANOff, MINIMIZED, WAIT
Case LAN_DISCONNECTED
WshShell.Run strWLANOn, MINIMIZED, WAIT
End Select
End If
Loop
Wenn man das Skript als
MonitorNIC.vbs
abspeichert, wird das ganze mit folgender Eingabe gestartet (auf der Kommandozeile oder über Start->Ausführen):cscript /nologo "[[Laufwerk:]\Pfad\]MonitorNIC.vbs"
@echo off
"[[Laufwerk:]\Pfad\]cmdow.exe" @ /hid
cscript /nologo "[[Laufwerk:]\Pfad\]MonitorNIC.vbs"
PS:
Statt DEVCON einen Aufruf von NETSH (in Windows enthalten) zu benutzen, ist erst mit Windows 7 (evtl. auch Vista?) möglich, da sich unter XP mit NETSH nur WAN-Interfaces aktivieren/deaktivieren lassen
Gruß
Friemler