WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

 
 
Themen-Optionen Ansicht
Alt 08.09.2003, 19:44   #1
stabilo
Newbie
 
Registriert seit: 08.09.2003
Beiträge: 1


Standard IP ändern über vbs Script (Wer findet den Fehler in meinem Script?)

Hallo,

ich habe mir ein Script geschrieben um einige Netzwerkeinstellungen zu ändern

DHCP, statische IP,...


so schaut das Script aus:


Code:
' IP.vbs


cname      = "" ' Name des Zielrechners (leer = lokal)
strIP      = "10.0.2.5" ' statische Wunschadresse kann hiervorgegeben werden
strSubnet  = "255.255.255.0"   ' ebenso die Wunsch-Sbunetmaske
strGateway = "10.0.0.1"
strDNS = "195.3.96.68"

strTitel = "ip"

Set wmi = GetObject("winmgmts:\\" & cname)

strFrage = "Was soll ich tun?" & vbCrLf
strFrage = strFrage & vbCrLf & "1: DHCP aktivieren"
strFrage = strFrage & vbCrLf & "2: statische Adresse setzen"
strFrage = strFrage & vbCrLf & "3: komplette Konfiguration anzeigen"


tuwas = inputBox(strFrage & vbCrLf, strTitel, "Bitte Ziffer eingeben!")

strMeldung = ""

select case tuwas
       case 1 DHCPein
       case 2 statAdr
       case 3 infoKomplett
end select

strMeldung = strMeldung & vbCrLf & vbCrLf & "--> Aktuelle Einstellungen:" & vbCr & ReportIPSettings(wmi) 
msgBox strMeldung, , strTitel

sub DHCPein()
    ' Funktion:
    ' Eingabeparameter:
    ' Kommentar:
    ' DHCP aktivieren
    If EnableDHCP(wmi) Then
       strMeldung = "DHCP aktiviert!"
       wscript.sleep 1000
    Else
       strMeldung = "DHCP konnte nicht aktiviert werden."
    End If

end sub


sub statAdr()
    ' Funktion:
    ' Eingabeparameter:
    ' Kommentar:

    strIP = inputBox("Welche IP-Adresse?",strTitel,strIP)
    strSubnet = inputBox("Welche Subnet-Mask?",strTitel, strSubnet)
	strGateway = inputBox ("Welchen Gateway?" ,strTitel, strGateway)
	strDNS = inputBox ("Welchen DNS Server?" ,strTitle, strDNS)
	
    if EnableStatic(wmi, strIP, strSubnet, strGateway, strDNS) Then
       strMeldung = "Statische Adresse übernommen!"
    Else
       strMeldung = "IP konnte nicht statisch gesetzt werden."
    End If

end sub

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

Function EnableStatic(wmiobj, ip, subnet, gateway, dns)
   wql = "select * from win32_NetworkAdapterConfiguration where IPEnabled = true"
   Set ergebnis = wmiobj.ExecQuery(wql)
   For each karte in ergebnis
      If IsArray(karte.IPAddress) Then
         status = karte.EnableStatic(Array(ip), Array(subnet), Array(gateway), Array(dns))
         EnableStatic = (status = 0)
      End If
   Next
End Function

Function ConvertToStatic(wmiobj)
   wql = "select * from win32_NetworkAdapterConfiguration where IPEnabled = true"
   Set ergebnis = wmiobj.ExecQuery(wql)
   For each karte in ergebnis
      If IsArray(karte.IPAddress) Then
         If karte.DHCPEnabled = False Then
            ConvertToStatic = False
            Exit Function
         End If
         status = karte.EnableStatic(Array(karte.IPAddress(0)), Array(karte.IPSubnet(0)), Array(karte.DefaultIPGateway(0)), Array(karte.IPDNS(0)) )
         ConvertToStatic = (status = 0)
      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


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

sub infoKomplett()
    ' Funktion:
    ' Eingabeparameter:
    ' Kommentar:
    strText = ReportSettings(wmi)
    strText = Replace(strText, vbLf, "
" & vbCrLf)
    Set objExplorer = WScript.CreateObject("InternetExplorer.Application")
    objExplorer.Navigate "about :blank"
    objExplorer.ToolBar = 0
    objExplorer.StatusBar = 0
    objExplorer.Width=500
    objExplorer.Height = 400
    objExplorer.Left = 0
    objExplorer.Top = 0
    objExplorer.Visible = 1
    objExplorer.document.writeln "<html><title>" & strTitel & "</title><body><p style=""font-family:sans-serif;font-size:9pt;"">schließen
Netzwerkkarte: Komplette Information
" & strText & "</P></body></html>"

    wscript.quit

end sub

auf DHCP setzen funktioniert ohne Probleme

Wenn ich die statische IP setzen will wird der Gateway und der DNS Server nicht in Windows übergeben.
Das heist wenn ich dann über ipconfig mir anschaue ob der Gateway oder der DNS Server eingetrage ist. Steht dort nicht der Gateway oder der DNS Server.

Ich würde mich sehr über hilfe sehr freuen.
stabilo ist offline   Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:01 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag