Jump to content

Subnet-Maske per vbs-Script ändern


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

Empfohlene Beiträge

Geschrieben

Tach auch,

 

hier ein Script von MS. Hat bei mir funktioniert.

 

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _

& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

 

Set colNetAdapters = objWMIService.ExecQuery _

("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

 

strIPAddress = Array("192.168.1.141")

strSubnetMask = Array("255.255.255.0")

strGateway = Array("192.168.1.100")

strGatewayMetric = Array(1)

 

For Each objNetAdapter in colNetAdapters

errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)

errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)

If errEnable = 0 Then

WScript.Echo "The IP address has been changed."

Else

WScript.Echo "The IP address could not be changed."

End If

Next

 

Gruß

THUMB

Geschrieben

Hallo THUMB,

 

dieses Script ist mir schon bekannt - vielen Dank.

 

Das Script soll die bestehende IP-Adresse weiter übernehmen - ohne manuelle Vorgabe (strIPAddress = Array("192.168.1.141") ).

 

Einzige Eingabe durch das Script: strSubnetMask = Array("255.255.0.0").

 

Gruß

xero

Geschrieben

Tach auch,

 

tja, wie wäre es, diese vorher auszulesen:

 

Set IPConfigSet = GetObject("winmgmts://.").ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

For Each IPConfig In IPConfigSet

If Not IsNull(IPConfig.IPAddress) Then

For i=LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)

IPADDRESS = IPConfig.IPAddress(i)

MsgBox IPADDRESS

Next

End If

Next

 

Gruß

THUMB

Geschrieben

Hallo THUMB,

 

das ist genau mein Problem - sorry. Ich kann beide Scripte nicht miteinander kombinieren :mad: . Nach dem Motto: Lies mir die (alle) IP-Adresse(n) und Subnet-Maske(n) aus. Danach ändere nur die Subnet-Maske(n) ...

# # # Script # # #

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _

& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

 

Set colNetAdapters = objWMIService.ExecQuery _

("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

 

Set IPConfigSet = GetObject("winmgmts://.").ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

For Each IPConfig In IPConfigSet

If Not IsNull(IPConfig.IPAddress) Then

For i=LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)

IPADDRESS = IPConfig.IPAddress(i)

'MsgBox IPADDRESS

'Next

End If

'Next

 

strIPAddress = Array(IPADDRESS)

strSubnetMask = Array("255.255.0.0")

'strGateway = Array("192.168.1.100")

'strGatewayMetric = Array(1)

 

For Each objNetAdapter in colNetAdapters

errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)

'errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)

If errEnable = 0 Then

WScript.Echo "The IP address has been changed."

Else

WScript.Echo "The IP address could not be changed."

End If

Next

# # # Script-Ende # # #

 

Ergebnis: Fehlerabbruch in Zeile 15 - Anweisung erwartet (Fehler)

 

Gruß

xero

Geschrieben

Hallo xero,

 

hmmm..., ich habe die Scripte ebenfalls zusammengeführt und bei verschiedenen Rechnern getestet, es funktioniert. Hier der verwendete Code:

 

# # # Script # # #

 

Set IPConfigSet = GetObject("winmgmts://.").ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

For Each IPConfig In IPConfigSet

If Not IsNull(IPConfig.IPAddress) Then

For i=LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)

IPADDRESS = IPConfig.IPAddress(i)

 

Next

End If

Next

 

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _

& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

 

Set colNetAdapters = objWMIService.ExecQuery _

("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

 

strIPAddress = Array(IPADDRESS)

strSubnetMask = Array("255.255.255.0")

'strGateway = Array("192.168.1.100")

'strGatewayMetric = Array(1)

 

For Each objNetAdapter in colNetAdapters

errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)

errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)

If errEnable = 0 Then

WScript.Echo "The IP address has been changed."

Else

WScript.Echo "The IP address could not be changed."

End If

Next

 

# # # Script-Ende # # #

 

Gruß THUMB

Geschrieben

Hallo xero,

 

Du hast bei Deinem Script zweimal NEXT zuviel auskommentiert, das ist die Ursache des Abbruches. Guck, diese Stelle mein´ ich:

 

'MsgBox IPADDRESS

'Next

End If

'Next

 

Wenn Du die beiden NEXT wieder zulässt, geht´s.

 

Gruß

THUMB

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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...