2016-05-08 11 views
1

Benutzer wird aufgefordert, die IP manuell eingeben dh 192.168.0.2 Das Gateway wird dann zu 192.168.0.254 Die InStrRev() und Left() -Funktion sollte nur funktionieren können Laß es nicht laufen.Ändern Standard-Gateway mit VBScript durch Ändern der letzten Oktett der IP

Set objWMIService = GetObject("winmgmts://./root/CIMV2") 
    strQuery = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress > ''" 
    Set colNetAdapters = objWMIService.ExecQuery _ 
     (strQuery) 

    strIPAddress = Array(InputBox("IP address")) 
    strSubnetMask = Array("255.255.255.0") 
    strGateway = Left(strIPAddress, InStrRev(strIPAddress, ".")) & "254" 
    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 

Antwort

1

Sieht aus wie ich mein eigenes Problem

gelöst
Set objWMIService = GetObject("winmgmts://./root/CIMV2") 
    strQuery = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress > ''" 
    Set colNetAdapters = objWMIService.ExecQuery _ 
     (strQuery) 

strIPAddress = (InputBox("IP address")) 
strSubnetMask = Array("255.255.255.0") 
strGateway = Left(strIPAddress, InStrRev(strIPAddress, ".")) & "254" 
strIPAddress = Array(strIPAddress) 
strGateway = Array(strGateway) 
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 

Ich fand die Variablen lesen bevor sie in ein Array gesetzt wurden, war der Schlüssel

2

Verwenden Split() ein Array von Bytes zu bekommen, und ändern Sie die letzte:

>> s = "192.168.0.2" 
>> a = Split(s, ".") 
>> a(3) = "254" 
>> WScript.Echo Join(a, ".") 
>> 
192.168.0.254