Jump to content

VB-Script -- Netzwerkeinstellungen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

REG - Einträge zur Netzkonfiguration per Hand ändern - lieber nicht.

 

Unter WinXP gibt es ein schönes Tool namens netsh, mit dem solche Dinge interaktiv oder per Batch gehen. Dieses ruft - wenn ich es richtig weiß - WMI auf, das geht natürlich auch direkt. Habe ein bißchen gekramt und ein Beispiel leicht abgewandelt.

 

-------------- Begin Code ------------------------------------

Sub kleines_WMI_Beispiel()

Dim myS As WbemScripting.SWbemServices, _

myObjectSet As WbemScripting.SWbemObjectSet, _

myNetworkAdapter As WbemScripting.SWbemObject, _

objInParam As WbemScripting.SWbemObjectEx, _

myResult As WbemScripting.SWbemObject

 

Dim myWP As WbemScripting.SWbemObject

Dim method As WbemScripting.SWbemMethod

 

Set myS = GetObject("winmgmts://./root/cimv2")

Set myObjectSet = myS.execQuery("Select * From Win32_NetworkAdapterConfiguration " & _

"Where Caption Like '%web DSL PPP%'")

 

If myObjectSet.Count > 1 Then Exit Sub 'nicht an zweien gleichzeitig herumspielen

 

For Each myNetworkAdapter In myObjectSet

Set method = myNetworkAdapter.Methods_("EnableStatic")

Set objInParam = method.InParameters.SpawnInstance_()

objInParam.Properties_.Item("IPAddress").Value = myNetworkAdapter.Properties_("IPAddress").Value

objInParam.Properties_.Item("SubnetMask").Value = Array("255.255.0.0")

Set myResult = myNetworkAdapter.ExecMethod_("EnableStatic", objInParam)

 

Next myNetworkAdapter

End Sub

--------------------- End Code ---------------------------

Den Code kann man bsp. nach Excel oder Word in ein Makro-Modul packen, dann muß man sich zusätzlich unter Extras-Verweise noch die Microsoft WMI Scripting - Lib einklinken. Schreibt man das ganze als VBScript, so fliegen die Variablendeklarationen hinaus - bloß sieht man dann nichts mehr, in Word/Excel läßt sich Intellisence zum Lernen nutzen.

 

Zum Code: Verweis auf das Wurzelobjekt holen, auf diesem Query ausführen, dort einen eindeutigen Teilnamen einsetzen (bei mir läuft FRITZ!). WMI ist manchmal merkwürdig, daß einelementige Arrays zurückgegeben werden, die man mit einer Schleife durchlaufen muß - was soll's. Das obige Beispiel behält die IP-Adresse bei und setzt die Maske neu (oder zurück), myResult ist anschließend zwar vielleicht auf 96 (DNS - Notify gescheitert), das macht aber nichts, der Eintrag wurde trotzdem geändert.

 

---------------

Gruß, Auer

Link zu diesem Kommentar

Warum so kompliziert?

 

Mit NetSH ind der Eingabeaufforderrung steht Dir alles zur verfügung, was du brauchst

 

netsh -c interface dump all > Netcfg.txt

 

erstellst du ein Konfigurationsscript aller intallierten Netzwerkkarten. Ideal um sich die Syntax anzuschauen.

 

mit "netsh -f dein Laufwerk:\netcfg.txt" kannst Du die entsprechende Konfiguration wieder laden:) Wenn du nun hingehst und dir für jeden einzelnen Anwendungsfall eine Konfigurationsdatei erstellst, macht es Sinn sich einen eigenen Befehl zu definieren, dem Du als Parameter den namen der Konfigurationsdatei übergibst.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...