If your modify This source code, your problem is solvented.

Regards... Javier Sanchez

code:
  
;----------------------------------------------------------------------
; Script by Javier Sanchez Alcazar
; js.alcazar@terra.es
;Please, if your use the script send me one E-Mail. Thanks
;----------------------------------------------------------------------
;
; Revisión : 1.01
; Date: 3-4-2002
;
;---------------------------------------------------------------------------
; Runing process with: Kix32 DHCPScript.txt
;----------------------------------------------------------------------------------
;----------------------------------------
; Registry Key
;----------------------------------------
$REG1="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\"
$REG2="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\"
$C1="Parameters"
$C2="Tcpip"
$SubCadena=$C1+"\"+$C2

;----------------------------------------------------
; Line to modify
;----------------------------------------------------
$IPAddress="0.0.0.0"
$IPMask="0.0.0.0"
$IPValue=""

;---------------------------------
;Directory definition
;---------------------------------
$Backup="C:\BackupDHCP\"

;-----------------------------------------
;ASCII Char
;-----------------------------------------
$CR=chr(13)
$LF=crh(10)

;---------------------------------
;Var
;---------------------------------
$RCode=""
$Contador=0
$Valor=""
$mensaje="Reiniciando la estacion de trabajo"
$mcambio="Se inicia proceso de cambios en el equipo"
$mLinea="------------------------------------------"
$mTexto="Script de Actualizacion del sistema DHCP"
$mBackup="Backup del registro generado correctamente"
$mErr=" ERROR DE BACKUP - Contacte con el Administrador "
$mNCambio="No se realizan Cambios"
$mCambioR="Modificando Clave del registro"
$mInicio="Iniciando Backup del registro"
$Notifica="El ERROR a estado notificado al Administrador"
$Finaliza="Cambios realizados correctamente"

;---------------------------------
;Start SCRIPT (MAIN)
;---------------------------------

$RCode= ExistKey($REG1)
If $RCode <> 0
? "Ya dispone de DHCP en este equipo"
goto ("END1")
else
? $mcambio
gosub ("COPIASEG")
gosub ("INICIO")

? $Finaliza
;gosub ("RESTART")

endif
goto ("END1")

:END1
; Finalización de todos los procedimientos.
quit
RETURN


;------------------------------------------------------------------
; SUBRUTINA Inicio de lectura de los datos - Registro
; El proceso de Backup corresponde a varios bloques
; COPIASEG
;------------------------------------------------------------------
:COPIASEG

? $mInicio
MD $Backup
$Registro = SAVEKEY ($REG1,$Backup+"Registro.bk")
If $Registro = 0
? $mLinea
? $mBackup
? $mLinea
Else
? $mLinea
? $mErr
? $mLinea
goto ("END1")
Endif
$Registro = SAVEKEY ($REG2,$Backup+"Registro2.bk")
If $Registro = 0
? $mLinea
? "Backup2->"+$mBackup
? $mLinea
Else
? $mLinea
? $mErr
? $mLinea
goto ("END1")
Endif

RETURN

;---------------------------------------------------------------------
; SUBRUTINA Inicio de lectura de los datos - Registro
; BLOQUE 1
; INICIO - RUN Function - Scan Registry
;---------------------------------------------------------------------
:INICIO
$Contador=0
:Loop
$KeyName=ENUMKEY($REG1,$Contador)
IF @ERROR=259
? "Final de Subclaves"
Endif
IF @ERROR=0
;? "Subcadena : " + $KeyName
$Valor=RTRIM(SUBSTR($KeyName,1,1))
IF $Valor="{"
? $mLinea
? "Valor de NetworkString Localizado"
? "Subcadena : " + $KeyName
? $mLinea

$ValGen= $REG1+$KeyName+"\"+$SubCadena
gosub ("SUBVALOR") ; Verificacion para cambios
Endif
$Contador = $Contador + 1
goto ("Loop")
Endif
RETURN

;---------------------------------------------------------
; LOCALIZACION DE DATOS DE SUBVALOR
; BLOQUE 1
; SUBVALOR
; Scan Subval, and change values (DHCP)
;---------------------------------------------------------
:SUBVALOR
$Contador2=0
$Valor2=0
? $mLinea
? "Verificando Datos DHCP"
? $mLinea
:Loop2
$KeyName2=ENUMVALUE($VALGen,$Contador2)
$Valor2=READVALUE($ValGen,$KeyName2)

IF @ERROR=0
? $KeyName2 + ":" + $Valor2
;------------------------------------------------------
; Verificacion de la clave Inicial EnableDHCP
;------------------------------------------------------
If $KeyName2 = "EnableDHCP"
If $Valor2 <> "1"
? "El Valor dispone de IP Fija no es DHCP****"
? $mNCambio
; añadir cambio del registro en la siguiente clave EnableDHCP = 1

$REG01="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\"+$KeyName+"\Parameters\tcpip"
$REG02="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\"+$KeyName
$REG03="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"

WriteValue($REG01,"EnableDHCP","1", "REG_DWORD")
WriteValue($REG01,"SubnetMask","0.0.0.0","REG_MULTI_SZ")
WriteValue($REG01,"DefaultGateway","","REG_MULTI_SZ")
WriteValue($REG01,"IPAddress","0.0.0.0","REG_MULTI_SZ")
WriteValue($REG1,"Start","2","REG_DWORD")

;------------------------------------------------------------------------------------
; activa el uso de WINS para Windows y la resolución DNS
;------------------------------------------------------------------------------------
WriteValue($REG02,"EnableDHCP","1", "REG_DWORD")
WriteValue($REG02,"SubnetMask","0.0.0.0","REG_MULTI_SZ")
WriteValue($REG02,"IPAutoconfigurationAddress","0.0.0.0","REG_SZ")
WriteValue($REG02,"DefaultGateway","","REG_MULTI_SZ")
WriteValue($REG02,"DefaultGatewayMetric","","REG_MULTI_SZ")
WriteValue($REG02,"IPAddress","0.0.0.0","REG_MULTI_SZ")

;** Abria que tocar estas variables del registro pero de momento no son necesarias.
;WriteValue($REG1+"NetBT\Parameters\Interfaces\tcpip_"+$KeyName,"NameServer","","REG_SZ")
;WriteValue($REG1+"NetBT\Parameters\Interfaces\tcpip_"+$KeyName,"NameServerBackup","","REG_SZ")

WriteValue($REG03,"SearchList","","REG_SZ")
WriteValue($REG03,"Domain","","REG_SZ")
WriteValue($REG03,"NameServer","","REG_SZ")

? "KEYNAME***" +$KeyName+"***"
else
? "El valor DHCP esta activado****"
? $mLinea
? "NO se realizan Cambios"
;? "KEYNAME***" +$KeyName+"***"
Endif
Endif
;---------------------------------------------------
; Verificacion de la clave Inicial IPAddress
;---------------------------------------------------
If $KeyName2 = "IPAddress"
If $Valor2 = "0.0.0.0" OR $Valor2 = "0.0.0.0|"
?$mLinea
? "El valor de IPAddress ES DHCP"
?$mLinea
else
? "El Valor dispone de IP Fija no es DHCP"
; añadir cambio del registro

;? "El valor Parece que ES DHCP"

Endif
Endif
;------------------------------------------------------
; Verificacion de la clave Inicial SubnetMask
;------------------------------------------------------
If $KeyName2 = "SubnetMask"
If $Valor2 = "0.0.0.0" OR $Valor2 = "0.0.0.0|"
?$mLinea
? "El valor de SubNetMask es DHCP"
?$mLinea
else
? "El Valor dispone de SubNetMask no es DHCP"
; añadir cambio del registro
? "El valor Parece que ES DHCP"
Endif
Endif
$Contador2 = $Contador2 + 1
goto ("Loop2")
Endif

RETURN


;--------------------------------------------
; Reinicio de la estacion de trabajo
;--------------------------------------------
:RESTART
; Eliminar comentario de la orden SHELL una vez verificado el correcto funcionamiento del
; respectivo SCRIPT de DHCP.

SHELL "%COMPSPEC% /C Reinicia.bat"

RETURN


_________________________
Regads... Javier Sanchez