IP Config über vbs setzen

Mitglied: capct1

capct1 (Level 1) - Jetzt verbinden

11.09.2007, aktualisiert 16.10.2007, 8518 Aufrufe, 8 Kommentare

Hallo, ich möchte über ein VBS-Script die IP Configuration von einem/mehreren Rechnern schnell und ohne Tippfehler vornehmen.
Ich habe da schon einiges hinbekommen, aber nun hab ich beim setzen der Werte so meine Probleme. Evt. kann mir jemand helfen, denke das wir auch noch andere Interessieren.

'Konfiguration der festen Werte
IPFW1 = "193.31.235." ' IP-Adresse FW1
IPFW2 = "172.16.14." ' IP-Adresse FW2
IPFW3 = "172.16.11." ' IP-Adresse FW3

'Dim strSubnet
' strSubnet = "255.255.255.0"



strGatewayFW1 = "193.31.235.229" ' Gateway FW1
strGatewayFW2 = "172.16.14.229" ' Gateway FW2
strGatewayFW3 = "172.16.14.229" ' Gateway FW3


strSubnet = Array("255.255.255.0") ' Subnetzmask
strDNS = Array("193.31.224.2","172.16.224.2","192.168.0.1") ' DNS-Server
strPWINS = "193.31.224.2" ' Primary Wins
strSWINS = "172.16.224.2" ' Secondary Wins

'Ende der festen Werte

'Komponenten Name ermitteln
Public Pc
Set WshNetwork = WScript.CreateOBject("WScript.Network")
pc = WshNetwork.Computername

'NicIndex der Netzwerkkarten ermitteln
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)
text = text & vbcrlf & IPConfig.Caption & vbcrlf & "Index: " & IPConfig.Index & vbcrlf
Next
End If
Next

'NicIndex der Netzwerkkarte auswählen (wird vorher angezeigt)
Public NicIndex
NicIndex = InputBox("Netzwerkkarte(n) von: " & Pc & vbcrlf & text & vbcrlf & "Geben Sie hier den Index der zu Konfigurierenden Netzwerkkarte ein:" , "Administration", "")
If NicIndex = 0 Then
wscript.quit
Else
' MsgBox "Ihr eingegebener NicIndex" & vbcrlf & "zur Konfiguration ist: " & vbcrlf & NicIndex,vbExclamation , "Administration"
End If

'IP Adresse die letzte 1/2/3 Ziffern
Public ip
ip = InputBox("Geben Sie hier die IP Adresse ein.","Administration")
If ip = 0 Then
wscript.quit
Else
' MsgBox "Ihr eingegebene IP " & vbcrlf & "zur Konfiguration ist: " & vbcrlf & ip,vbExclamation , "Administration"
End If

'Feuerwache auswählen
strFrage = "Welches Netz möchten Sie nutzen?" & vbCrLf
strFrage = strFrage & vbCrLf & "1: Feuerwache 1"
strFrage = strFrage & vbCrLf & "2: Feuerwache 2"
strFrage = strFrage & vbCrLf & "3: Feuerwache 3"
'strFrage = strFrage & vbCrLf
'strFrage = strFrage & vbCrLf & "9: config"

ipfw = inputBox(strFrage & vbCrLf, "Administration", "Bitte Ziffer eingeben!")
If ipfw = 1 Then
ipfw = IPFW1
ElseIf ipfw = 2 Then
ipfw = IPFW2
ElseIf ipfw = 3 Then
ipfw = IPFW3
Else
wscript.quit
End If

'NicIndex mit IPConfig vergleichen und den Namen (IPConfig.Caption) der gewählten Karte anzuzeigen
For Each IPConfig In IPConfigSet
If (":" & IPConfig.Index = ":" & NicIndex) Then
NicName = IPConfig.Caption
'MsgBox IPConfig.Index & " " & NicIndex
End If
Next

'MsgBox "Diese IP: "& vbcrlf & ipfw & ip & vbcrlf & "wird auf folgender Netzwerkkarte: "& vbcrlf & NicName & vbcrlf & vbcrlf & "konfiguriert.", vbExclamation , "BF-Wiesbaden Administration"
MsgBox "Für den Rechner: " & pc & vbcrlf & "wird die Netzwerkkarte:" & vbcrlf & NicName & vbcrlf & "mit folgender Daten:" & vbcrlf & "IP-Adresse: " & ipfw & ip & vbcrlf & "konfiguriert.", vbExclamation , "BF-Wiesbaden Administration"

'Ab hier test zum Daten schreiben

MsgBox "hier weiter"
conf = ipfw & ip
Set WshShell = CreateObject("Wscript.Shell")
ProxyEnable="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable"
wql = "Select * from win32_NetworkAdapterConfiguration Where IPEnabled=True"
Set oWMI = GetObject("winmgmts:\root\cimv2").ExecQuery(wql)

test = MsgBox ("Wollen Sie die Installation ausführen ?", 49 , "BF-Wiesbaden Administration")
If test <> 1 Then
wscript.quit
Else
For Each IPConfig In IPConfigSet
If (":" & IPConfig.Index = ":" & NicIndex) Then
WshShell.regwrite ProxyEnable,"00000001","REG_DWORD"
IPConfig = EnableStatic(Array(conf), Array(strSubnet))
'MsgBox ""& karte
End If
Next
End If


MsgBox "ende"
wscript.quit

Die Probleme habe ich ab dem Punkt "test zum Daten schreiben.
Ich muß dazu sagen, das ich in Punkto VBS absoluter Neuling bin. (Hoffe mann sieht es nicht so deutlich, und ich bin hier in der richtigen Rubrik)
Vielen Dank
Gruß
Capct
Mitglied: SvenGuenter
24.09.2007 um 10:55 Uhr
was für probleme hast du denn genau? Kommt eine Fehlermeldung? Ich habe mir den Quellcode nicht genau angesehen. Aber es ist auch schlecht was zu suchen von dem man nicht weiß was es ist ;o)


Gruß

Sven
Bitte warten ..
Mitglied: capct1
24.09.2007 um 14:38 Uhr
Hallo Sven,
erst mal danke das du dir das mal angesehen hast.
Ab dem Punkt MsgBox"hier weiter" verstehe ich das ganze nicht mehr so richtig.
Das problem ist wohl die Zeile"IPConfig = EnableStatic(Array......" hier wird wohl die IP Adresse
geschrieben, weiter gehts dann noch mit dem Subnet und Gateway.
Der Anfang mit den Msgboxen usw. habe ich ja noch auf die Reihe gebracht, aber nun komme ich halt nicht weiter.
Gruß
Carsten
Bitte warten ..
Mitglied: SvenGuenter
24.09.2007 um 15:04 Uhr
Hallo,

nochmal nachgefragt FUNKTIONIERT der Quellcode oder wird eine Fehlermeldung geworfen ( ausgegeben ).
Oder geht es Dir nur um die Funktionsweise des Quellcodes.
Bitte warten ..
Mitglied: capct1
24.09.2007 um 16:08 Uhr
Sorry,
es kommt die Standartmeldung "Typen unverträglich"
Bitte warten ..
Mitglied: SvenGuenter
24.09.2007 um 16:21 Uhr
Gut dann weiß ich da schon mal bescheid.

Die letzte Frage die ich nun noch habe ist das Netzwerk.

Innerhalb des Netzwerkes werden die oben im Quellcode angegebenen Werte benutzt und es ist KEIN DHCP Server vorhanden.
Bitte warten ..
Mitglied: capct1
25.09.2007 um 10:12 Uhr
Hallo Sven,
nein, es wird kein DHCP-Server verwendet.
Das ganze ist ein städtisches Netzwerk welches von einer externen Firma betreut wird.
Allerding haben wir als Amt 37 unsere Server noch im Haus stehen.
Kommen nun neue Clients stimmen in der Regel die ganzen Neztwerkparameter nicht,
da auch ich hier und da Tippfehler habe möchte ich das ganze über dieses Script regeln.
So ist auch sicher das alle Rechner gleich konfiguriert sind.
Sorry das ich jetzt erst Antworte, hatte gestern zu Hause noch einen Stromausfall.
Bin nun heute wieder arbeiten. Hier kann ich auch Zugreifen.
Gruß und Danke
Carsten
Bitte warten ..
Mitglied: SvenGuenter
25.09.2007 um 10:37 Uhr
Hallo Carsten,

also erstmal muss ich sagen das ich auf Anhieb keinen Fehler sehe oder finde. Problem ist aber auch das du nicht den kompletten Quellcode gepostet hast. Sprich wie du die Funktionen aufrufst wie deine main die abarbeitet usw. Bitte Maile mir doch mal den kompletten Quellcode an


Sven.Guenter@Sven-Guenter.com
Bitte warten ..
Mitglied: capct1
16.10.2007 um 20:24 Uhr
Hallo Sven und dem Rest der Mitleser,
mit Hilfe eines Kollegen habe ich nun einen funktionierenden Code.
Für Interessierte, hier ist er:
(Ach ja, die IP Adressen sin Fiktiv, zum testen am besten eine VMWare System verwenden,
schon den eigenen Rechner und die Nerven)


Dim strIPFW(3)
Dim strGatewayFW(3)

' Beginn DER KONFIGURATION
strTitel = "Admin IPConfig 1.0"
strIPFW(1) = "193.31.235." ' IP-Adresse Gebäude 1
strIPFW(2) = "172.16.14." ' IP-Adresse Gebäude 2
strIPFW(3) = "172.16.11." ' IP-Adresse Gebäude 3




strGatewayFW(1) = "193.40.235.222" ' Gateway Gebäude 1
strGatewayFW(2) = "172.20.30.229" ' Gateway Gebäude 2
strGatewayFW(3) = "172.20.40.229" ' Gateway Gebäude 3

strSubnet = Array("255.255.255.0") ' Subnetzmask'
strDNS = Array("193.40.224.2","172.20.224.2","192.168.0.1") ' DNS-Server
strPWINS = "193.10.322.2" ' Primary Wins
strSWINS = "172.10.322.2" ' Secondary Wins


' ENDE DER KONFIGURATION

'Komponenten Name ermitteln
Set WshNetwork = WScript.CreateOBject("WScript.Network")
pc = WshNetwork.Computername

'NicIndex der Netzwerkkarten ermitteln
Set IPConfigSet = GetObject("winmgmts://.").ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")



' Alle Karten auflisten
For Each IPConfig In IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For i=LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
'text = text & IPConfig.Index & ":" & Chr(9) & IPConfig.Caption & vbcrlf
text = text & vbcrlf & "Index: " & IPConfig.Index & vbcrlf & IPConfig.Caption & vbcrlf
Next
End If
Next
'NicIndex der Netzwerkkarte auswählen (wird vorher angezeigt)
text = "Netzwerkkarte(n) von: " & Pc & vbcr & linie & vbcr & text
text = text & vbcr & linie & "Geben Sie hier den Index der zu Konfigurierenden Netzwerkkarte ein:"
NicIndex = InputBox( text, strTitel , "")
If NicIndex = 0 Then wscript.quit

'Feuerwache auswählen
strFrage = "Welches Netz möchten Sie nutzen?" & vbCrLf
strFrage = strFrage & vbCrLf & "1: Gebäude 1"
strFrage = strFrage & vbCrLf & "2: Gebäude 2"
strFrage = strFrage & vbCrLf & "3: Gebäude 3"
strFrage = strFrage & vbCrLf & ""

fw = inputBox(strFrage & vbCrLf, strTitel , "Bitte Ziffer eingeben!")
If fw=0 Then wscript.quit

'IP Adresse die letzte 1/2/3 Ziffern
ip = InputBox("Geben Sie hier denn letzten Block Ihrer IP Adresse ein.",strTitel)
If ip = 0 Then wscript.quit
conf = strIPFW(fw)+ ip
'MsgBox conf

'"Karte" ermitteln (NicIndex mit IPConfig vergleichen)
For Each Karte In IPConfigSet
If (":" & Karte.Index = ":" & NicIndex) Then Exit For
Next

text = "Für den Rechner: " & pc & vbcrlf & "wird die Netzwerkkarte:" & vbcrlf & Karte.Caption & vbcrlf & "mit folgender Daten:"_
& vbcrlf & "IP-Adresse:" & vbtab & conf & vbcrlf & "Gateway:" & vbtab & vbtab & strGatewayFW(fw) & vbcrlf &_
"DNS:" & vbtab & vbtab & strDNS (DNSSeverSearchOrder)_
& vbcrlf & "Pri.WINS:" & vbtab & vbtab & strPWINS & vbcrlf & "Sec.WINS:" & vbtab & strSWINS & vbcrlf & "konfiguriert."

x = MsgBox(text, 49 , strTitel)
If x <> vbok Then wscript.quit

' IPs in "Karte" schreiben, dabei Fehler abfangen und Erfog ausgeben
'Fehler1 = karte.EnableStatic(Array(ip), strSubnet)
Fehler1 = karte.EnableStatic(Array (conf) , strSubnet)
Fehler2 = karte.SetGateways(Array(strGatewayFW(fw)), Array(1))
Fehler3 = karte.SetDNSServerSearchOrder(strDNS)
Fehler4 = Karte.SetWINSServer(strPWINS,strSWins)
If Fehler1 = 0 Then
strMeldung = strmeldung & "Netzwerkadresse" & vbtab & "für FW " & fw & " erfolgreich eingerichtet." & vbcrlf
Else
strMeldung = strmeldung & "Netzwerkadresse" & vbtab & "für FW " & fw & " Fehler " & fehler1 & vbcrlf
End if
If Fehler2 = 0 Then strMeldung = strmeldung & "NetzwerkGateway" & vbtab & "für FW " & fw & " erfolgreich eingerichtet." & vbcrlf
If Fehler3 = 0 Then strMeldung = strmeldung & "Netzwerk-DNS" & vbtab & "für FW " & fw & " erfolgreich eingerichtet." & vbcrlf
If Fehler4 = 0 Then strMeldung = strmeldung & "Netzwerk-Wins" & vbtab & "für FW " & fw & " erfolgreich eingerichtet." & vbcrlf

'MsgBox strmeldung, 48 , strTitel

Set wmi = GetObject("winmgmts:\\" )
strEinstellungen = strEinstellungen & vbCrLf & vbCrLf & "--> Aktuelle Einstellungen:" & vbCr & ReportIPSettings(wmi)
msgBox strmeldung & strEinstellungen , 48 , strTitel

wscript.quit

Function ReportIPSettings(wmiobj)
wql = "select Caption, DHCPEnabled, DHCPLeaseObtained, DHCPLeaseExpires, DHCPServer, IPAddress, IPSubnet, DefaultIPGateway, DNSServerSearchOrder, DNSDomain, MACAddress from win32_NetworkAdapterConfiguration where IPEnabled = true"
Set ergebnis = wmiobj.ExecQuery(wql)
For each karte in ergebnis
If IsArray(karte.IPAddress) Then
ReportIPSettings = ReportIPSettings & karte.getObjectText_ & vbCrLf
End If
Next
End Function

Function ReportSettings(wmiobj)
wql = "select * from win32_NetworkAdapterConfiguration where IPEnabled = true"
Set ergebnis = wmiobj.ExecQuery(wql)
For each karte in ergebnis
If IsArray(karte.IPAddress) Then
ReportSettings = ReportSettings & karte.getObjectText_ & vbCrLf
End If
Next
End Function


So, sollte jemand eine Verbesserung haben würde ich mich freuen.
Als nächstes sollte der Punkt DHCP und statische IP´s ins Menü mit rein.
Gruß
Capct
Bitte warten ..
Heiß diskutierte Inhalte
Switche und Hubs
Kaufberatung (10G) Switche für Unternehmensnetzwerk
ipzipzapFrageSwitche und Hubs27 Kommentare

Moin, unsere Firma zieht um und am neu renovierten Standort muss/soll alles neu. Auf drei Etagen stehen Racks, in ...

Drucker und Scanner
Vorlage Endlospapier Nadeldrucker
Hanspeter82FrageDrucker und Scanner17 Kommentare

Hallo, hab die Aufagbe bekommen, eine Vorlage zuerstellen bzgl. Druck auf Endlos Papier über einen Nadeldrucker. Habe allerdings kein ...

Exchange Server
Primäre Mailadresse auf Kleinbuchstaben anpassen
JoergDdorfFrageExchange Server16 Kommentare

Hallo Alle, wir betreiben ein Exchange Hybrid (2016/365). Ich stehe vor dem Problem, dass ich die bestehenden primären Mailadresse ...

LAN, WAN, Wireless
2 Lan Dosen (Unterputz) miteinander Verbinden
gelöst RickHHFrageLAN, WAN, Wireless12 Kommentare

Moin zusammen, ich würde mir gerne auf dem Dachboden 2 Landosen in einen Raum Bauen. Ein Netzwerkkabel geht hoch, ...

Windows Userverwaltung
Active Directory Gruppen auslesen
gelöst MMaiwaldFrageWindows Userverwaltung12 Kommentare

Guten Abend, ich habe mir das Codeschnipsel geschnappt und möchte dieses noch erweitern. Dazu möchte ich noch die Beschreibung ...

Windows Netzwerk
Tool zum prüfen ob Gerät noch online ist
Ringi1970FrageWindows Netzwerk10 Kommentare

Hallo zusammen, ich suche nach einer Freeware, die mir bestimmte Geräte / Workstations (Windows Geräte, feste IP Adressen) prüft ...

Ähnliche Inhalte
Windows 7
Greenshot Config File
uridium69FrageWindows 721 Kommentare

Tag miteinander Ich habe Greenshot so eingerichtet, dass ich es per Software Distributionssoftware im Netzwerk verteilen kann. Im CMD ...

Router & Routing

Firewalls mit Konzept - Bootfest speichern - copy running-config startup-config

Der-PhilFrageRouter & Routing17 Kommentare

Hallo! Ich schaue gerade, welche Router-Firewalls für mich künftig in Frage kommen. Wichtig ist vor allem die Kombination aus ...

Router & Routing

Mikrotik Config PTP

Marcel94FrageRouter & Routing18 Kommentare

Hallo, kennt sich jemand mit Mikrotik aus? Möchte gerne eine PTP Verbindung mit zwei SYTsq 5ac Antennen erstellen. So ...

Netzwerkmanagement

Running-Config oder Startup-Config bei Cisco-Geräten sichern?

gelöst M.MarzFrageNetzwerkmanagement9 Kommentare

Hallo zusammen, ich möchte gerne die Konfigs meiner Cisco-Switche sichern. In google finde ich immer wieder die Anleitung das ...

Firewall

OPNsense OpenVPN Config fehlt

matze2090FrageFirewall7 Kommentare

Hallo, ich habe mir den OpenVPN Road Warrior eingerichtet nach Anleiung von der OPNsense Doku. Unter dem Client Export ...

Batch & Shell

Batch für NetSH Config

SPSmanFrageBatch & Shell1 Kommentar

Hi ich möchte eine Batchdatei die mir schnell meine IP-Configuration ändert. Folgendes soll Passieren: -Token1 aus Configfile ausgeben -Userauswahl ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT