2 IPs auf einer Netzwerkkarte mit vbscript eintragen
Moin Moin,
ich sitze hier gerade am Problem, das ich mittels vbscript einer Netzwerkkarte zwei IPs zuweisen möchte. Eine IP bekommt man ja einfach so hin:
a) Nur wie bekomme ich jetzt die zweite da noch rein?
b) Wie kann ich die zweite wieder löschen (die erste soll aber bestehen bleiben?
Hintergrund:
Ich schreibe gerade ein KFall Script, welches diverse Dinge auf einem Server erledigt, dazu gehört auch die Änderung der Netzwerkkonfiguration.
Grüße
LordShelmchen
ich sitze hier gerade am Problem, das ich mittels vbscript einer Netzwerkkarte zwei IPs zuweisen möchte. Eine IP bekommt man ja einfach so hin:
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
a) Nur wie bekomme ich jetzt die zweite da noch rein?
b) Wie kann ich die zweite wieder löschen (die erste soll aber bestehen bleiben?
Hintergrund:
Ich schreibe gerade ein KFall Script, welches diverse Dinge auf einem Server erledigt, dazu gehört auch die Änderung der Netzwerkkonfiguration.
Grüße
LordShelmchen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82944
Url: https://administrator.de/contentid/82944
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo LordShelmchen!
Zu a)
Es hat natürlich einen Grund, warum die jeweiligen Einstellungen als "Array" zu übergeben sind, daher:
Zu b)
Hier werden zunächst die Einstellungen in Arrays ausgelesen und nur das erste Element wieder zurückgeschrieben. Zu ergänzen wären noch jeweils Sicherheitsabfragen der Art
Grüße
bastla
Zu a)
Es hat natürlich einen Grund, warum die jeweiligen Einstellungen als "Array" zu übergeben sind, daher:
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", "192.168.0.41")
strSubnetMask = Array("255.255.255.0", "255.255.255.0")
strGateway = Array("192.168.1.100", "192.168.0.1")
strGatewayMetric = Array(1, 5)
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
Zu b)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter in colNetAdapters
strIPAddressCurrent = objNetAdapter.IPAddress
strSubnetMaskCurrent = objNetAdapter.IPSubnet
strGatewayCurrent = objNetAdapter.DefaultIPGateway
strGatewayMetricCurrent = objNetAdapter.GatewayCostMetric
strIPAddress = Array(strIPAddressCurrent(0))
strSubnetMask = Array(strSubnetMaskCurrent(0))
strGateway = Array(strGatewayCurrent(0))
strGatewayMetric = Array(strGatewayMetricCurrent(0))
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
If IsNull(objNetAdapter.IPAddress) Then
WScript.Echo "Keine IP-Adresse gefunden"
'weitere Vorgangsweise erfragen oder hier festlegen
Else
strIPAddressCurrent = objNetAdapter.IPAddress
strIPAddress = Array(strIPAddressCurrent(0))
End If
Grüße
bastla