xero 10 Geschrieben 4. Juli 2006 Melden Teilen Geschrieben 4. Juli 2006 Hallo, ich möchte "nur" die Subnet-Maske einer NIC per vbs-Script ändern / anpassen und habe keinen Plan. Bsp.: von 255.255.255.0 zu 255.255.0.0 (IP-Adresse wird beibehalten!) (Ansatz: http://www.mcseboard.de/archiv/28/2003/09/4/13426) -> als Anmeldescript (ohne Eingaben) Zitieren Link zu diesem Kommentar
thumb 10 Geschrieben 4. Juli 2006 Melden Teilen Geschrieben 4. Juli 2006 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 Zitieren Link zu diesem Kommentar
xero 10 Geschrieben 4. Juli 2006 Autor Melden Teilen Geschrieben 4. Juli 2006 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 Zitieren Link zu diesem Kommentar
thumb 10 Geschrieben 4. Juli 2006 Melden Teilen Geschrieben 4. Juli 2006 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 Zitieren Link zu diesem Kommentar
xero 10 Geschrieben 4. Juli 2006 Autor Melden Teilen Geschrieben 4. Juli 2006 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 Zitieren Link zu diesem Kommentar
thumb 10 Geschrieben 5. Juli 2006 Melden Teilen Geschrieben 5. Juli 2006 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 Zitieren Link zu diesem Kommentar
thumb 10 Geschrieben 5. Juli 2006 Melden Teilen Geschrieben 5. Juli 2006 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 Zitieren Link zu diesem Kommentar
xero 10 Geschrieben 5. Juli 2006 Autor Melden Teilen Geschrieben 5. Juli 2006 Hallo THUMB, vielen Dank - es funktioniert! :jau: Gruß xero Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.