azubile
Goto Top

LAN-Verbindung per Batch aktivieren-deaktivieren funktioniert nicht

Guten Morgen,

ich habe folgendes Phänomen, vielleicht kann ja da mal ein Batch-Guru drüber schauen. face-wink


ich verwende in einer Batch-Datei folgende Zeile:

netsh interface set interface name ="LAN3" admin=disabled

oder

netsh interface set interface LAN3 DISABLED


Führe ich diese Batch-Datei auf einem Windows 7 oder Windows Server 2003 aus,
wird die entsprechende Netzwerkverbindung deaktiviert. Führe ich dies aber auf einem OS
mit Windows XP aus kommt folgender Fehler:


C:\Public>netsh interface set interface LAN DISABLED
Mindestens ein erforderlicher Parameter wurde nicht angegeben.
Ungültige Syntax. Weitere Informationen finden Sie in der Hilfe des Befehls.

Syntax: set interface [name = ] Schnittstelle
[ [admin = ] ENABLED|DISABLED
[connect = ] CONNECTED|DISCONNECTED ]
[newname = ] Neuer Name ]

Legt Schnittstellenparameter fest.

Schnittstelle - Name der Schnittstelle
admin - Legt fest, ob die Schnittstelle aktiviert
werden soll (nur WAN).
connect - Legt fest, ob die Schnittstelle angeschlossen
werden soll (nur WAN).
newname - Neuer Name der Schnittstelle (nur LAN).

Hinweise:
- Zusätzlich zum Namen muss mindestens eine Option angegeben werden.
- Ist connect = CONNECTED wird die Schnittstelle automatisch
aktiviert, auch wenn admin = DISABLED angegeben wurde.


So ist da jetzt nun was an der Syntax falsch, ist etwas bei XP anders als bei Win 2003 oder Win 7?


Über eine Antwort freue ich mich schon.

Gruß
AzubiLE

Content-ID: 149754

Url: https://administrator.de/contentid/149754

Ausgedruckt am: 23.11.2024 um 05:11 Uhr

jalba93
jalba93 26.08.2010 um 09:36:12 Uhr
Goto Top
Hallo AzubiLE

Probier mal dein Skript nochmal nur anstatt LAN3 - nimste dieses Mal "LAN-Verbindung3"
( unter XP )

Gruß
Jalba
AzubiLE
AzubiLE 26.08.2010 um 09:47:34 Uhr
Goto Top
Hmmmm,

die Netzwerkverbindung heißt aber LAN3.

Egal ob ich die Netzwerkverbindungen unter Win 7 und Server 2003 in "Internet", "Netzwerk" usw... umbennene,
es funktioniert per Batch diese Netzwerkverbindung zu deaktivieren jedoch nicht unter Windows XP


Edit: Kann evtl. einer eine Batch machen und das mal bei sich testen -> Netzwerkverbindung in LAN o.ä umbennenen und Batch ausführen

Gruß
AzubiLE
jalba93
jalba93 26.08.2010 um 09:57:13 Uhr
Goto Top
verwendest du statische IPs???

wenn nicht könntest du das ganze mit ipconfig /release bzw. /renew machen
jalba93
jalba93 26.08.2010 um 09:59:46 Uhr
Goto Top
Es gäbe auch ein passendes Tool von Microsoft (devcon.exe), siehe

http://support.microsoft.com/default.aspx?scid=KB;EN-US;q311272

Du benötigst aber die Hardware-ID des Gerätes (die genaue Bezeichnung der Karte im System).

Diese findest Du heraus mit: devcon.exe hwids * | more

Das Aktivieren machst Du hiermit... devcon.exe enable HARDWAREID
Deaktivieren: devcon.exe disable HARDWAREID

Alternativ hätte ich noch ein VBS-Skript ( wenns nicht unbedingt bat sein muss):

Const ssfCONTROLS = 3

sConnectionName = "LAN-Verbindung"  

sEnableVerb = "&Aktivieren"  
sDisableVerb = "&Deaktivieren"  

set shellApp = createobject("shell.application")  
set oControlPanel = shellApp.Namespace(ssfCONTROLS)

set oNetConnections = nothing
for each folderitem in oControlPanel.items
  if folderitem.name  = "Netzwerkverbindungen" then  
    set oNetConnections = folderitem.getfolder: exit for
  end if
next

if oNetConnections is nothing then
  msgbox "Couldn't find 'Netzwerkverbindungen' folder"  
  wscript.quit
end if

set oLanConnection = nothing
for each folderitem in oNetConnections.items
  if lcase(folderitem.name)  = lcase(sConnectionName) then
    set oLanConnection = folderitem: exit for
  end if
next

if oLanConnection is nothing then
  msgbox "Couldn't find '" & sConnectionName & "' item"  
  wscript.quit
end if

bEnabled = true
set oEnableVerb = nothing
set oDisableVerb = nothing
s = "Verbs: " & vbcrlf  
for each verb in oLanConnection.verbs
  s = s & vbcrlf & verb.name
  if verb.name = sEnableVerb then
    set oEnableVerb = verb 
    bEnabled = false
  end if
  if verb.name = sDisableVerb then
    set oDisableVerb = verb 
  end if
next

'debugging displays left just in case...  
'  
'msgbox s ': wscript.quit  
'msgbox "Enabled: " & bEnabled ': wscript.quit  

'not sure why, but invokeverb always seemed to work  
'for enable but not disable.   
'  
'saving a reference to the appropriate verb object  
'and calling the DoIt method always seems to work.  
'  
if bEnabled then
'  oLanConnection.invokeverb sDisableVerb  
  oDisableVerb.DoIt
else
'  oLanConnection.invokeverb sEnableVerb  
  oEnableVerb.DoIt
end if

'adjust the sleep duration below as needed...  
'  
'if you let the oLanConnection go out of scope  
'and be destroyed too soon, the action of the verb  
'may not take...  
'  
wscript.sleep 1000 

einfach nur den "sConnectionName" anpassen

EDIT: das mit netsh funktioniert unter XP nicht ( nur bei Vista und 7) siehe hier:
http://www.pcwelt.de/start/software_os/tipps_tricks/netzwerk/2104884/ne ...
AzubiLE
AzubiLE 26.08.2010 um 12:30:29 Uhr
Goto Top
Sodele folgendes habe ich bis jetzt probiert:

Ich habe die netsh.exe vom Server 2003 genommen und auf den XP Rechner kopiert, leider kein Erfolg.

Dann habe ich devcon installiert. Damit funtioniert das ganze dann auch.

Nun tritt aber ein weiteres Problem auf was ich in meinem Szenario nicht erwähnt habe.

Ich möchte eigentlich mehrere Netzwerkverbindungen auf einmal trennen(5 von 6. Mit devcon funktioniert das dann auch wirklich
wenn die PCI HardwareID auch physikalisch vorhanden ist. In meinem Fall habe ich aber noch Adapter installiert und die lassen
sich nicht per devcon deaktivieren.

Mit devcon find pci\* finde ich die HardwareID heraus in meinem Fall PCI\VEN_8086*
MIt disable PCI\VEN_8086* deaktiviere ich dann die Verbindung.

Hier eine Ausgabe meiner HardwareIDs:
PCI\VEN_8086&DEV_10F5&SUBSYS_20EE17AA&REV_03\3&B1BFB68&0&C8 : Intel(R) 82567LM Gigabit Network Connection
PCI\VEN_8086&DEV_2448&SUBSYS_00000000&REV_93\3&B1BFB68&0&F0 : Intel(R) 82801 PCI Bridge - 2448
PCI\VEN_8086&DEV_2917&SUBSYS_00000000&REV_03\3&B1BFB68&0&F8 : Intel(R) ICH9M-E LPC Interface Controller - 2917
PCI\VEN_8086&DEV_2929&SUBSYS_20F817AA&REV_03\3&B1BFB68&0&FA : Intel(R) ICH9M-E/M SATA AHCI Controller
PCI\VEN_8086&DEV_2930&SUBSYS_20F917AA&REV_03\3&B1BFB68&0&FB : Intel(R) ICH9 Family SMBus Controller - 2930
PCI\VEN_8086&DEV_2934&SUBSYS_20F017AA&REV_03\3&B1BFB68&0&E8 : Intel(R) ICH9 Family USB Universal Host Controller - 2934
PCI\VEN_8086&DEV_2935&SUBSYS_20F017AA&REV_03\3&B1BFB68&0&E9 : Intel(R) ICH9 Family USB Universal Host Controller - 2935
PCI\VEN_8086&DEV_2936&SUBSYS_20F017AA&REV_03\3&B1BFB68&0&EA : Intel(R) ICH9 Family USB Universal Host Controller - 2936
PCI\VEN_8086&DEV_2937&SUBSYS_20F017AA&REV_03\3&B1BFB68&0&D0 : Intel(R) ICH9 Family USB Universal Host Controller - 2937
PCI\VEN_8086&DEV_2938&SUBSYS_20F017AA&REV_03\3&B1BFB68&0&D1 : Intel(R) ICH9 Family USB Universal Host Controller - 2938
PCI\VEN_8086&DEV_2939&SUBSYS_20F017AA&REV_03\3&B1BFB68&0&D2 : Intel(R) ICH9 Family USB Universal Host Controller - 2939
PCI\VEN_8086&DEV_293A&SUBSYS_20F117AA&REV_03\3&B1BFB68&0&EF : Intel(R) ICH9 Family USB2 Enhanced Host Controller - 293A
PCI\VEN_8086&DEV_293C&SUBSYS_20F117AA&REV_03\3&B1BFB68&0&D7 : Intel(R) ICH9 Family USB2 Enhanced Host Controller - 293C
PCI\VEN_8086&DEV_293E&SUBSYS_20F217AA&REV_03\3&B1BFB68&0&D8 : Microsoft UAA-Bustreiber für High Definition Audio
PCI\VEN_8086&DEV_2940&SUBSYS_00000000&REV_03\3&B1BFB68&0&E0 : Intel(R) ICH9 Family PCI Express Root Port 1 - 2940
PCI\VEN_8086&DEV_2942&SUBSYS_00000000&REV_03\3&B1BFB68&0&E1 : Intel(R) ICH9 Family PCI Express Root Port 2 - 2942
PCI\VEN_8086&DEV_2A40&SUBSYS_00000000&REV_07\3&B1BFB68&0&00 : Mobile Intel(R) 4 Series Chipset Processor to DRAM Controller - 2A40
PCI\VEN_8086&DEV_2A42&SUBSYS_20E417AA&REV_07\3&B1BFB68&0&10 : Mobile Intel(R) 4 Series Express Chipset Family
PCI\VEN_8086&DEV_2A43&SUBSYS_20E417AA&REV_07\3&B1BFB68&0&11 : Mobile Intel(R) 4 Series Express Chipset Family
PCI\VEN_8086&DEV_2A44&SUBSYS_20E617AA&REV_07\3&B1BFB68&0&18 : Intel(R) Management Engine Interface
PCI\VEN_8086&DEV_2A46&SUBSYS_20EA17AA&REV_07\3&B1BFB68&0&1A : Standard-Zweikanal-PCI-IDE-Controller
PCI\VEN_8086&DEV_2A47&SUBSYS_20EC17AA&REV_07\3&B1BFB68&0&1B : Intel(R) Active Management Technology - SOL (COM3)
22 matching device(s) found.

Hätte da jemand ne Lösung, bei weiteren Infos einfach Fragen.

Gruß
AzubiLE
jalba93
jalba93 26.08.2010 um 12:45:12 Uhr
Goto Top
was ist mit der vbs??? Hast du die schon probiert?
AzubiLE
AzubiLE 26.08.2010 um 13:16:35 Uhr
Goto Top
Ja gerade eben.

Unter XP kann ich damit eine Netzwerkverbindung deaktivieren und auch wieder aktivern. geht echt super.
Kann ich im VB-Script auch mehrere Verbindungen auf einmal deaktivieren?

Unter Win 7 erscheint der im VB-Script angegebene Hinweis :Couldn't find 'Netzwerkverbindungen'
Wenn ich den Gesamten Pfad angeben, in dem die Netzwerkverbindungen unter Win7 sind , ändert sich nichts.


Gruß
AzubiLE
jalba93
jalba93 26.08.2010 um 14:27:57 Uhr
Goto Top
zu deinem 1. punkt setz mal unter sConnecitonName= "1.Verbindung"
ein 2. sConnectionName="2.Vebindung"

zwecks win 7 muss ich erst mal testen^^
AzubiLE
AzubiLE 26.08.2010 um 15:07:41 Uhr
Goto Top
Servus,

leider funktioniert das so nicht. SObald ich mehrere sConnectionName einfüge, wird beim Ausfüher
immer nur der letzte Eintrag angesprochen.

Hab das Ganze jetzt so gelöst:

ich habe für jede Netzwerkverbindung ein VB-Script erstellt, siehe denCode-Post von Oben.

Dann habe ich in eine bat-Datei für jedes VB-Script einen start eingefügt.

Beispiel:

start lan1.vbs
start lan2.vbs
start lan3.vbs
.
.
.
.


Danke für deine Hilfe.

Falls du noch Anregungen under Lösungen hast die Besser sind, nur raus damit.

Gruß
AzubiLE
gerd99
gerd99 06.10.2010 um 21:05:40 Uhr
Goto Top
Zitat von @AzubiLE:

Unter Win 7 erscheint der im VB-Script angegebene Hinweis :Couldn't find 'Netzwerkverbindungen'
Wenn ich den Gesamten Pfad angeben, in dem die Netzwerkverbindungen unter Win7 sind , ändert sich nichts.


Hallo,
ich versuche auch gerade einmal den VB-Script und bekomme natürlich die gleiche Meldung unter Win7 Ultimate.

@jalba93: Gibt es für Win7 schon eine alternative Eingabe?