Anonymous
Anonymous
Unregistered
|
oops i forget to post my script
;----------------------------------------------------------------------------- ;Programm initialisiern ;----------------------------------------------------------------------------- Color y+/b ;Übergabe-Parameter (zu Testzwecken, ansonsten auskommentieren) $SoftwareSource = "U:\kix\"
;Konstanten definieren $ScrName = "ip1.script" $INIFile = $SoftwareSource+"\NicAD2.ini" $LOGFile = "U:\kix\remoteip.log" $Liste = "U:\kix\liste.txt"
;Variablen initialisieren $ScriptError = 0 $regerr = 0
;Log-File öffnen $ret = Open(1, $LOGFile, 5) ;wenn Log-File nicht vorhanden, dann neues Log-File erzeugen
;----------------------------------------------------------------------------- ;PC-Namen und neue IP-Adresse auslesen ;----------------------------------------------------------------------------- $ = open(2, $Liste) ;opens the file liste.txt $Line = split(readline(1),"; ") while not @error $PC = trim($line[0]) $ret = writeline (1, "PC-Name ausgelesen...$PC") $newIP = trim($line[1]) $ret = writeline (1, "neue IP ausgelesen...$newIP") $newGW = trim($line[2]) ? "Computer: " $pc ? "New IP: " $newIP ? "New GW: " $newGW $Line = split(readline(1),"; ") Gosub "Sub_Network" Loop ;Ende ;----------------------------------------------------------------------------- ;Programm beenden ;----------------------------------------------------------------------------- :ENDE
;Logfile schließen $ret = WriteLine (1, "---"+$ScrName+" done----------------------------------"+@CRLF+@CRLF) $ret = Close (1)
;Logfile anzeigen (nur zu Testzwecken) Shell "cmd.exe /C start %SystemRoot%\notepad.exe "+$LOGFile Sleep 1 ;sonst wird das Logfile zu schnell gelöscht
Exit $ScriptError
;----------------------------------------------------------------------------- ;Netzwerkkarten auslesen und ggf. konfigurieren ;----------------------------------------------------------------------------- :Sub_Network ;Variablen initialisieren $Index = 0 $RootKeyNICs = "\\$PC\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\" $subkey = EnumKey($RootKeyNICs, $Index)
;nach Netzwerkkarten suchen While @ERROR = 0 ;Variablen initialisieren $EthID = "" $NIC_Config = "" $NIC_NoConfig = "" ;Netzwerkkarten-ID (ServiceName) auslesen $EthID = ReadValue($RootKeyNICs+$subkey,"ServiceName") ;wenn Netzwerkkarte vorhanden, If $EthID <> "" ;Netzwerkkarten-Description auslesen $Description = ReadValue($RootKeyNICs+$subkey,"Description") $ret = WriteLine (1, "Netcard: $Description"+@CRLF) $ret = WriteLine (1, "NetcardID: $EthID"+@CRLF+@CRLF) ;überprüfen, ob Netzwerkkarte bekannt und für Konfiguration definiert $NIC_Config = ReadProfileString($INIFile, "Umzustellende Netzwerkkarten" ,$Description) If $NIC_Config = "1" $ret = WriteLine (1, " Netzwerkkarte erkannt und fuer Konfiguration definiert"+@CRLF) Else ;überprüfen, ob Netzwerkkarte bekannt, aber nicht für Konfiguration definiert $NIC_NoConfig = ReadProfileString($INIFile, "Nicht-umzustellende Netzwerkkarten" ,$Description) If $NIC_NoConfig = "1" $ret = WriteLine (1, " Netzwerkkarte bekannt, aber nicht fuer Konfiguration definiert"+@CRLF+@CRLF) Else ;Netzwerkkarte unbekannt, => in INI-File als neue Netzwerkkarte eintragen $ret = WriteLine (1, "Netzwerkkarte nicht bekannt, bitte in Datei "+$INIFile+" eintragen."+@CRLF+@CRLF) ;$ret = WriteProfileString($INIFile," Neue Netzwerkkarten",$Description,$EthID) $ret = WriteLine(1, "[Neue Netzwerkkarte]"+@CRLF+$Description+"=1"+@CRLF) $ScriptError=2 GoTo ENDE EndIf EndIf EndIf ;wenn Netzwerkkarte für Konfiguration definiert If $NIC_Config <> "" ;entsprechende Aktionen ausführen Select Case $action="ip" ;IP-Adresse ändern $ret = WriteLine (1, " IP-Adresse wird nun geändert..."+@CRLF+@CRLF) Gosub "SUB_ConfigureIP" Case $action="info" $ret = WriteLine (1, " keine Aktion durchgeführt (info)..."+@CRLF) EndSelect EndIf If $regerr>0 $ret = WriteLine(1, "RegError: es konnten "+$regerr+" Registry-Einträge nicht vorgenommen werden"+@CRLF) $ScriptError=6 GoTo ENDE EndIf ;nächsten Subkey auslesen $ret = WriteLine (1, @CRLF) $Index = $Index+1 $subkey = EnumKey($RootKeyNICs, $Index) Loop Return ;Ende ;----------------------------------------------------------------------------- ;Subroutine für IP-Adressenänderung ;----------------------------------------------------------------------------- :SUB_ConfigureIP $NIC_Parameter="\\$pc\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\"+$EthID+"\Parameters\Tcpip" $regerr = $regerr + (WriteValue($NIC_Parameter, "IPAddress", "$newIP", "REG_MULTI_SZ")<>0) $regerr = $regerr + (WriteValue($NIC_Parameter, "DefaultGateway", "$newGW", "REG_MULTI_SZ")<>0) $ret = writeline (1, " neue IP-Adresse:...$newIP"+@CRLF+@CRLF) $ret = writeline (1, " neuer Gateway:...$newGW"+@CRLF+@CRLF)
$TCPIP_Parameter="\\$pc\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\"+$EthID $regerr = $regerr + (WriteValue($TCPIP_Parameter, "IPAddress", "$newIP", "REG_MULTI_SZ")<>0) $regerr = $regerr + (WriteValue($TCPIP_Parameter, "DefaultGateway", "$newGW", "REG_MULTI_SZ")<>0) $ret = WriteLine (1, " IP-Change von "$PC" abgeschlossen"+@CRLF)
Return ;Ende
|