Hallo!
Ich habe das Script noch etwas überarbeitet, jetzt werden alle DNS-Server ausgelesen und, durch Komma getrennt, angehängt! Zur Zeit habe ich leider kene IPConfg-Dateien in denen ein WINS- oder DHCP-Server eingetragen ist!
@13.08.2006 16:15: So jetzt sollten alle Werte die IPCONFIG ausgibt, ausgelesen werden!
@13.08.2006 18:30: Alle Adapter die IPCONFIG kennt eingearbeitet
@14.08.2006 13:45: Fehler aufgrund der Umlaute behoben
Spoiler anzeigen
Code
Dim $sHostname
Dim $sPriDNSSuffix
Dim $sKnotentyp
Dim $sIPRouting
Dim $sWINSProxyAktiv
Dim $sDNSSuffixSuchliste
Dim $sVerbDNSSuffix
Dim $sBeschreibung
Dim $sMACAdresse
Dim $sDHCPAktiv
Dim $sAutokonfAktiv
Dim $sIPAdresse
Dim $sSubnetzmaske
Dim $sGateway
Dim $sDNSServer
Dim $sPriWINS
Dim $sSekWINS
Dim $sLeaseErhalten
Dim $sLeaseLaeuftAb
Dim $sHeadLine = "Hostname;" & _
"Primäres DNS-Suffix;" & _
"Knotentyp;" & _
"IP-Routing aktiviert;" & _
"WINS-Proxy aktiviert;" & _
"DNS-Suffixsuchliste;" & _
"Verbindungsspezifisches DNS-Suffix;" & _
"Beschreibung;" & _
"Physikalische Adresse;" & _
"DHCP aktiviert;" & _
"Autokonfiguration aktiviert;" & _
"IP-Adresse;" & _
"Subnetzmaske;" & _
"Standardgateway;" & _
"DNS-Server;" & _
"Primärer WINS-Server;" & _
"Sekundärer WINS-Server;" & _
"Lease erhalten;" & _
"Lease läuft ab"
$sFSF = FileSelectFolder("Wählen Sie das Verzeichnis mit den IPConfig-Dateien!", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}")
If $sFSF <> "" And @error = 0 Then
$hFF = FileFindFirstFile($sFSF & "\*.txt")
if @error = 0 Then
$hDestFile = FileOpen($sFSF & "\" & @YEAR & @MON & @MDAY & "_" & @HOUR & @MIN & ".csv", 2)
; Kopfzeile schreiben
FileWriteLine($hDestFile,$sHeadLine)
While 1
$sFileName = FileFindNextFile($hFF)
if @error <> 0 Then ExitLoop
; Werte zurücksetzen
$sHostname = ""
$sPriDNSSuffix = ""
$sKnotentyp = ""
$sIPRouting = ""
$sWINSProxyAktiv = ""
$sDNSSuffixSuchliste = ""
$sVerbDNSSuffix = ""
$sBeschreibung = ""
$sMACAdresse = ""
$sDHCPAktiv = ""
$sAutokonfAktiv = ""
$sIPAdresse = ""
$sSubnetzmaske = ""
$sGateway = ""
$sDNSServer = ""
$sPriWINS = ""
$sSekWINS = ""
$sLeaseErhalten = ""
$sLeaseLaeuftAb = ""
$hSourceFile = FileOpen($sFSF & "\" & $sFileName, 0)
If $hSourceFile <> -1 Then
$iAdapters = 1
While 1
$sLine = FileReadLine($hSourceFile)
If @error <> 0 Then ExitLoop
;~ ConsoleWrite($sLine & @CRLF)
Select
Case StringInStr($sLine, "Hostname")
$sHostname = _GetLineValue($sLine)
$sLastValue = "Hostname"
Case StringInStr($sLine, "Prim") And StringInStr($sLine, "res DNS-Suffix")
$sPriDNSSuffix = _GetLineValue($sLine)
$sLastValue = "Primäres DNS-Suffix"
Case StringInStr($sLine, "Knotentyp")
$sKnotentyp = _GetLineValue($sLine)
$sLastValue = "Knotentyp"
Case StringInStr($sLine, "IP-Routing aktiviert")
$sIPRouting = _GetLineValue($sLine)
$sLastValue = "IP-Routing aktiviert"
Case StringInStr($sLine, "WINS-Proxy aktiviert")
$sWINSProxyAktiv = _GetLineValue($sLine)
$sLastValue = "WINS-Proxy aktiviert"
Case StringInStr($sLine, "DNS-Suffixsuchliste")
$sDNSSuffixSuchliste = _GetLineValue($sLine)
$sLastValue = "DNS-Suffixsuchliste"
Case StringInStr($sLine, "Verbindungsspezifisches DNS-Suffix")
$sVerbDNSSuffix = _GetLineValue($sLine)
$sLastValue = "Verbindungsspezifisches DNS-Suffix"
Case StringInStr($sLine, "Beschreibung")
$sBeschreibung = _GetLineValue($sLine)
$sLastValue = "Beschreibung"
Case StringInStr($sLine, "Physikalische Adresse")
$sMACAdresse = _GetLineValue($sLine)
$sLastValue = "Physikalische Adresse"
Case StringInStr($sLine, "DHCP aktiviert") Or _ ; WinXP
StringInStr($sLine, "DHCP-aktiviert") ; W2K (thx @Teckert)
$sDHCPAktiv = _GetLineValue($sLine)
$sLastValue = "DHCP aktiviert"
Case StringInStr($sLine, "Autokonfiguration aktiviert")
$sAutokonfAktiv = _GetLineValue($sLine)
$sLastValue = "Autokonfiguration aktiviert"
Case StringInStr($sLine, "IP-Adresse")
$sIPAdresse = _GetLineValue($sLine)
$sLastValue = "IP-Adresse"
Case StringInStr($sLine, "Subnetzmaske")
$sSubnetzmaske = _GetLineValue($sLine)
$sLastValue = "Subnetzmaske"
Case StringInStr($sLine, "Standardgateway")
$sGateway = _GetLineValue($sLine)
$sLastValue = "Standardgateway"
Case StringInStr($sLine, "DNS-Server")
$sDNSServer = _GetLineValue($sLine)
$sLastValue = "DNS-Server"
Case StringInStr($sLine, "Prim") And StringInStr($sLine, "rer WINS-Server")
$sPriWINS = _GetLineValue($sLine)
$sLastValue = "Primärer WINS-Server"
Case StringInStr($sLine, "Sekund") And StringInStr($sLine, "rer WINS-Server")
$sSekWINS = _GetLineValue($sLine)
$sLastValue = "Sekundärer WINS-Server"
Case StringInStr($sLine, "Lease erhalten")
$sLeaseErhalten = _GetLineValue($sLine)
$sLastValue = "Lease erhalten"
Case StringInStr($sLine, "Lease l") And StringInStr($sLine, "uft ab")
$sLeaseLaeuftAb = _GetLineValue($sLine)
$sLastValue = "Lease läuft ab"
;Adapterwechsel
Case StringInStr($sLine, "Unbekannter Adapter") = 1 Or _
StringInStr($sLine, "Anderer Adapter") = 1 Or _
StringInStr($sLine, "Ethernetadapter") = 1 Or _
StringInStr($sLine, "Token Ring-Adapter") = 1 Or _
StringInStr($sLine, "FDDI-Adapter") = 1 Or _
StringInStr($sLine, "Loopbackadapter") = 1 Or _
StringInStr($sLine, "PPP-Adapter") = 1 Or _
StringInStr($sLine, "SLIP-Adapter") = 1 Or _
StringInStr($sLine, "Tunneladapter") = 1
If $iAdapters > 1 Then
_WriteValues($hDestFile)
$sVerbDNSSuffix = ""
$sBeschreibung = ""
$sMACAdresse = ""
$sDHCPAktiv = ""
$sAutokonfAktiv = ""
$sIPAdresse = ""
$sSubnetzmaske = ""
$sGateway = ""
$sDNSServer = ""
$sPriWINS = ""
$sSekWINS = ""
$sLeaseErhalten = ""
$sLeaseLaeuftAb = ""
EndIf
$iAdapters += 1
; Wenn Zeile mit Leerzeichen beginnt handelt es sich um weitere DNS-Server od.
; einen weiteren Eintrag in der DNS-Suffixsuchliste
Case StringInStr($sLine, " ")
Switch $sLastValue
Case "DNS-Server"
$sDNSServer &= "," & _GetLineValue($sLine)
Case "DNS-Suffixsuchliste"
$sDNSSuffixSuchliste &= "," & _GetLineValue($sLine)
Case Else
;;;;;;
EndSwitch
Case Else
;;;;;;
EndSelect
Wend
_WriteValues($hDestFile)
FileClose($hSourceFile)
Else
MsgBox(16,"Fehler!", "Datei " & $sFileName & " kann nicht geöffnet werden!")
ExitLoop
EndIf
Wend
FileClose($hDestFile)
Else
MsgBox(16,"Datei nicht gefunden","Es sind keine IPConfig-Datein vorhanden!")
Endif
EndIf
MsgBox(64,"Fertig!", "Done!",10)
Func _GetLineValue($sString)
$Pos = StringInStr($sString,": ",0,-1)
;~ ConsoleWrite($Pos & " " & $sString & @CRLF)
If $Pos = 0 Then
$Pos = 1
Else
$Pos += 2
EndIf
Return StringStripWS(StringMid($sString,$Pos),3)
EndFunc
Func _WriteValues($hFile)
FileWriteLine($hFile, $sHostname & ";" & _
$sPriDNSSuffix & ";" & _
$sKnotentyp & ";" & _
$sIPRouting & ";" & _
$sWINSProxyAktiv & ";" & _
$sDNSSuffixSuchliste & ";" & _
$sVerbDNSSuffix & ";" & _
$sBeschreibung & ";" & _
StringReplace($sMACAdresse,"-",":") & ";" & _
$sDHCPAktiv & ";" & _
$sAutokonfAktiv & ";" & _
$sIPAdresse & ";" & _
$sSubnetzmaske & ";" & _
$sGateway & ";" & _
$sDNSServer & ";" & _
$sPriWINS & ";" & _
$sSekWINS & ";" & _
$sLeaseErhalten & ";" & _
$sLeaseLaeuftAb _
)
EndFunc
Alles anzeigen
Das mit den Leerzeilen konnte ich bei mir nicht nachvollziehen, vllt. kannst du mir ja mal die CSV-Datei und ein paar IPConfig-Dateien zur Verfügung stellen!