- #1
E
eRKa
Guest
Der genaue Sachverhalt ist hier im Forum: http://www.wintotal-forum.de/index....1a7dcae41e825a3cd66&topic=51269.msg286740 und bei den Tipps http://www.wintotal.de/Tipps/tipp991,urubrik3.html vermerkt.
Nachdem ich jetzt schon 5x selbst die Einträge nachziehen musste, und ich kein passendes Script gefunden habe, das die Arbeit für mich erledigt, habe ich mal selbst ein AutoIt3-Script dafür erstellt.
Falls sonst noch jemand die gleiche Probleme hat, stelle ich das Script hiermit zur Verfügung:
Geht bestimmt noch eleganter, aber erfüllt seinen Zweck
Also nicht am Programmierstil nörgeln.
Gruß,
eRKa
Nachdem ich jetzt schon 5x selbst die Einträge nachziehen musste, und ich kein passendes Script gefunden habe, das die Arbeit für mich erledigt, habe ich mal selbst ein AutoIt3-Script dafür erstellt.
Falls sonst noch jemand die gleiche Probleme hat, stelle ich das Script hiermit zur Verfügung:
Code:
; TCP/IP CP gemeldeter Fehler 2-Reparatur-Script
Dim $Meldung=
Dim $MaxEntries=100
Dim $RegEntries1[$MaxEntries+1]
Dim $RegEntries2[$MaxEntries+1]
; Meldung ausgeben
$Meldung=Dieses Script behebt den Fehler beim Verbindungsaufbau, der die Felermeldung&@CRLF
$Meldung=$Meldung&TCP/IP CP gemeldeter Fehler 2: Das System kann die angegebene Datei nicht finden&@CRLF
$Meldung=$Meldung&ausgibt.&@CRLF&@CRLF&@CRLF
$Meldung=$Meldung&Hierzu überprüft das Script, ob alle Schlüssel im Reg-Zweig:&@CRLF
$Meldung=$Meldung&HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces&@CRLF
$Meldung=$Meldung&auch im folgenden Reg-Zweig (mit führendem Tcpip_) vorhanden sind:&@CRLF
$Meldung=$Meldung&HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces&@CRLF&@CRLF&@CRLF
$Meldung=$Meldung&Falls nicht, wird der Reg-Schlüssel angelegt, und darin ein REG_MULTI_SZ-Wert mit&@CRLF
$Meldung=$Meldung&dem Namen NameServerList und dem Wert , sowie ein DWord-Wert mit dem&@CRLF
$Meldung=$Meldung&Namen NetbiosOptions und dem Wert 0 angelegt.&@CRLF&@CRLF
$PressedButton=MsgBox(65, TCP/IP CP gemeldeter Fehler 2-Reparatur-Script:, $Meldung)
If $PressedButton==2 Then Exit ; Script verlassen
; Einträge unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces einlesen
For $i= 1 to $MaxEntries
$RegEntries1[$i] = RegEnumKey(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces, $i)
If @error <> 0 then ExitLoop
Next
$RegEntries1[0]=$i-1
; Einträge unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces einlesen
For $i= 1 to $MaxEntries
$RegEntries2[$i] = RegEnumKey(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces, $i)
If @error <> 0 then ExitLoop
Next
$RegEntries2[0]=$i-1
If $RegEntries1[0]<=$RegEntries2[0] Then ; Rep. nur bei umgekehrtem Verhältnis, < kam bei mir nie vor
MsgBox(64, TCP/IP CP gemeldeter Fehler 2-Reparatur-Script:, Gefundene Einträge Tcpip/NetBT: &$RegEntries1[0]&/&$RegEntries2[0]&@CRLF&@CRLF&Es wird keine Korrektur vorgenommen!)
Exit
Else
MsgBox(64, TCP/IP CP gemeldeter Fehler 2-Reparatur-Script:, Gefundene Einträge Tcpip/NetBT: &$RegEntries1[0]&/&$RegEntries2[0]&@CRLF&@CRLF&Es müssen Korrekturen vorgenommen werden!)
For $i=1 To $RegEntries1[0]
$AddEntryFlag=1 ; ist der Wert nach dem Vergleich immer noch auf 1, dann Eintrag neu anlegen
For $ii=1 To $RegEntries2[0]
If $RegEntries1[$i]==StringTrimLeft($RegEntries2[$ii], 6) Then; Vergleich ohne führendes Tcpip_
$AddEntryFlag=0 ; Eintrag ist bereits vorhanden
EndIf
Next
If $AddEntryFlag==1 Then ; Eintrag anlegen
MsgBox(64, TCP/IP CP gemeldeter Fehler 2-Reparatur-Script:, folgender Eintrag wird angelegt:&@CRLF&@CRLF&HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces&\Tcpip_&$RegEntries1[$i],2)
; Key anlegen
RegWrite(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces&\Tcpip_&$RegEntries1[$i])
; Schreibe REG_MULTI_SZ-Eintrag mit Namen NameServerList und Wert
RegWrite(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces&\Tcpip_&$RegEntries1[$i], NameServerList, REG_MULTI_SZ, )
; Schreibe REG_DWORD-Eintrag mit Namen NetbiosOptions und Wert 0
RegWrite(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces&\Tcpip_&$RegEntries1[$i], NetbiosOptions, REG_DWORD, 0)
EndIf
Next
EndIf
MsgBox(64, TCP/IP CP gemeldeter Fehler 2-Reparatur-Script:, Alle Einträge korregiert!)
Geht bestimmt noch eleganter, aber erfüllt seinen Zweck
Also nicht am Programmierstil nörgeln.
Gruß,
eRKa