WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   IP ändern über vbs Script (Wer findet den Fehler in meinem Script?) (http://www.wcm.at/forum/showthread.php?t=108204)

stabilo 08.09.2003 19:44

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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:20 Uhr.

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