, muy buena idea la tuya Klez.h te felicito compadre.
Por cierto cuban hack hizo en batch la forma de crear un desatendido, elk esta trabajando en algunas cosillas, les dejo el post para que vean:
También necesitaremos una aplicación para abrir esa imágen de CD (archivo ISO) y añadirle algunos ficheros; podemos usar algún programa como el isobuster o ultraiso.
Por supuesto, necesitaremos los instalables de las aplicaciones que queramos instalar; no en todos los casos se tratará del "setup.exe" clásico, pero esto o veremos más adelante.
Por último, necesitaremos una estructura de directorios específica, que comentaremos a continuación:
Estructura de directorios $OEM$
en la carpeta que guardes la instalacion de windows tiene que llamarse
xpcd luego copien este code en un block de notas y guardenlo con el nombre
cuban-hack.bat (el nombre da igual, lo que tiene que ir es .bat)
y ejecutenlo
[code]
echo of
cls
md C:\xpcd\$oem$
pause
md C:\xpcd\$oem$\Install
pause
md C:\xpcd\$oem$\Drivers
pause
md C:\xpcd\$oem$\$$
pause
md C:\xpcd\$oem$\$$\System32
pause
md C:\xpcd\$oem$\$$\$Docs
pause
md C:\xpcd\$oem$\$$\$Progs
y la estructura de carpetas se veria asi
xpcd-----
-
----$oem$-
-
-----------------------$1
- -
- - ----instal
- -
- ------driver
-
------------$$
- -
- -------sytem32
-
-------$docs
-
-------$progs
Se necesitan todas las carpetas/subcarpetas, aunque no contengan ningún fichero
A modo de aclaración, veamos qué es cada carpeta:
$Docs - Documents and Settings (Perfiles)
$Progs - Archivos de Programa
$$ - Carpeta de Windows
$1 - Root del disco donde está instalado el windows (normalmente c:\ )
Fichero cmdlines.txt
Para iniciar el archivo RunOnceEx, que es el que va a tener la información de las instalaciones, hay que llamarlo desde el fichero cmdlines.txt
Este fichero es sencillo, crea un fichero de texto (con el wordpad, por ejemplo) y escribe lo siguiente:
[COMMANDS]
"RunOnceEx.cmd"
Guárdalo con el nombre cmdlines.txt dentro de la carpeta $OEM$
No hay más misterio.
Fichero RunOnceEx.cmd
Llegamos a un punto crítico. Este es el fichero responsable de la instalación desatendida de los programas.
Pese a la extensión (cmd), no es más que un fichero de texto que contiene una serie de instrucciones, y además las instrucciones son repetitivas, no necesitáis ser expertos en programación, no os preocupéis.
Por el momento, sólo explicaré cómo hay que usarlo, y no describiré los argumentos de las aplicaciones (lo haremos más adelante).
Como hemos dicho, se trata de un fichero de texto, por lo que abriremos el wordpad o similar para escribir en él.
Para comenzar, podemos escribir lo siguiente:
----------------------------------------------
cmdow @ /HID
@echo off
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D " .: Instalando aplicaciones extras :." /f
----------------------------------------------
Si queremos hacerlo un poco mejor, podemos escribir esto:
----------------------------------------------
@echo off
cmdow @ /HID
FOR %%i IN (D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%i:\win51ip.SP2 SET CDROM=%%i:
SET PP=%SYSTEMDRIVE%\Install\
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D " .: Instalando aplicaciones extras :." /f
EXIT
----------------------------------------------
¿Cual es la diferencia entre uno y otro?
El segundo no asume que nuestra unidad de CD-ROM/DVD es D: o E:, sino que la asigna en función de si encuentra el fichero win51ip.SP2 o no (podemos usar el fichero "pepitodelospalotes" siempre que exista en la raiz de nuestro CD).
Además asigna a la variable PP la ruta %SYSTEMDRIVE%\Install\, lo cual nos ahorrará escribir más adelante.
El fichero RunOnceEx.cmd debe estar dentro de la carpeta $OEM$, al igual que el cmdlines.txt. Aseguraros de guardar el RunOnceEx con extensión cmd y no txt.
El código responsable de la instalación de las aplicaciones, deberá estar entre REG ADD %KEY% /V TITLE /D " .: Instalando aplicaciones extras :." /f y EXIT y será del tipo:
----------------------------------------------
REG ADD %KEY%\000 /VE /D "Adobe Acrobat Reader 7" /f
REG ADD %KEY%\000 /V 1 /D "%PP%Adobereader\Setup\RdrBig\ESP\AR7.msi /quiet /norestart" /f
----------------------------------------------
Analicemos el código
Bien, a primera vista esto parece un galimatías, verdad? no tiene porque serlo.
Separemos el código por partes:
REG ADD %KEY%\000
Esto es común a todas las instrucciones; lo único que cambia será el 000, que en este caso indica que se trata del primer conjunto de instrucciones; la siguiente será 001, 002, 003, ... (luego veremos un ejemplo práctico).
/VE frente a /V 1
La primera línea contiene /VE, lo que indica que es texto y no se trata de una instrucción, sino que es el título que se verá en pantalla mientras se ejecutan las instrucciones que están abajo de él.
La segunda tiene /V 1, que indica que es la primera instrucción que se ejecutará; si hubieran más instrucciones, estás tendrían /V 2, /V 3, /V 4, ...
Código de instalación
El texto que está entre comillas es el código para instalar cada aplicación.
Lo primero que encontramos es %PP%, que como hemos declarado arriba, el sistema traducirá por %SYSTEMDRIVE%\Install\
%SYSTEMDRIVE%\ es una variable del sistema (de windows) que se traduce por "El disco donde está instalado windows", generalmente C:
De forma que la parrafada anterior busca en c:\Install\Adobereader\Setup\RdrBig\ESP\ el fichero AR7.msi y lo ejecuta con los argumentos /quiet y /norestart (veremos después que son los ficheros msi y los argumentos)
Habrás notado que busca en tu disco duro, en lugar de en el CD; esto es porque antes de la instalación de windows, copia los archivos de la carpeta $OEM$ a tu disco duro; así que dentro de la carpeta $OEM$\INSTALL tendrás que meter todos los programas que quieras instalar de forma desatendida.
Por mantener un orden, te recomiendo que uses carpetas para cada aplicación
/f
Cada instrucción debe terminar con /f
¿Puedo poner espacios en blanco en las rutas?
En principio sí, utilizando las comillas; de cualquier forma, ahorrate problemas y no usues ni nombres largos, ni caracteres especiales (incluida la ñ) ni espacios en blanco.
Añadiendo Registros al sistema
Quizá en alguna aplicación necesitemos introducir información al registro de Windows (archivos .reg), por ejemplo, para registrar un programa.
Así que deberemos utilizar una expresión especial:
----------------------------------------------
REG ADD %KEY%\010 /V 1 /D "%systemdrive%\install\alcohol\setup.exe /qn" /f
REG ADD %KEY%\010 /V 2 /D "REGEDIT /S %systemdrive%\install\alcohol\register.reg" /f
----------------------------------------------
Como véis, el REGEDIT /S introduce en el registro la entrada register.reg
¿Cómo leches obtengo mi archivo .reg?
Buena pregunta, veo que estás atento
Tendrás que tener instaldo el programa en cuestión en tu máquina, y debidamente registrado.
Ve a Inicio->Ejecutar y escribe regedit
Ahora tendrás que buscar el registro que te interese (Ctrl+B), usando el nombre de la aplicación o del desarrollador, y cuando la encuentres seleccionas Archivo->Exportar; ya tienes tu .reg
Tampoco le déis muchas vueltas a esto y usar software libre
Ejemplo de RunOnceEx.cmd del Widnwos XP Pc-cito Edition (1.0)
Como un ejemplo vale más que mil palabras:
----------------------------------------------
@echo off
cmdow @ /HID
FOR %%i IN (D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%i:\win51ip.SP2 SET CDROM=%%i:
SET PP=%SYSTEMDRIVE%\Install\SCP\
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D " .: Instalando aplicaciones extras :." /f
REG ADD %KEY%\000 /VE /D ".NET Framework v2" /f
REG ADD %KEY%\000 /V 1 /D "%PP%net\dotnetfx.exe" /f
REG ADD %KEY%\001 /VE /D "Adobe Acrobat Reader 7" /f
REG ADD %KEY%\001 /V 1 /D "%PP%Adobereader\Setup\RdrBig\ESP\AR7.msi /quiet /norestart" /f
REG ADD %KEY%\001 /V 2 /D "%PP%Adobereader\AR1.msi /quiet /norestart" /f
REG ADD %KEY%\001 /V 3 /D "%PP%Adobereader\AR2.msi /quiet /norestart" /f
REG ADD %KEY%\001 /V 4 /D "%PP%Adobereader\AR3.msi /quiet /norestart" /f
REG ADD %KEY%\002 /VE /D "-----------------------" /f
REG ADD %KEY%\003 /VE /D "Azureus 2.3.0.4" /f
REG ADD %KEY%\003 /V 1 /D "%PP%azureus\Azureus_2.3.0.4.exe /S" /f
REG ADD %KEY%\004 /VE /D "CCleaner 1.25" /f
REG ADD %KEY%\004 /V 1 /D "%PP%ccleaner\ccsetup125.exe /S" /f
REG ADD %KEY%\005 /VE /D "FlashGet 1.65" /f
REG ADD %KEY%\005 /V 1 /D "%PP%flashget\fgf165.exe /S" /f
REG ADD %KEY%\005 /V 2 /D "REGEDIT /S %PP%flashget\flashget.reg" /f
REG ADD %KEY%\006 /VE /D "Firefox 1.5 RC1" /f
REG ADD %KEY%\006 /V 1 /D "%PP%firefox\firefoxsilent.exe" /f
REG ADD %KEY%\007 /VE /D "Gimp 2.2.9" /f
REG ADD %KEY%\007 /V 1 /D "%PP%gimp\gtk+-2.6.9.exe /VERYSILENT /NORESTART /LANG=es" /f
REG ADD %KEY%\007 /V 2 /D "%PP%gimp\gimp-2.2.9.exe /VERYSILENT /NORESTART /LANG=es" /f
REG ADD %KEY%\008 /VE /D "Java VM 1.5.0.05" /f
REG ADD %KEY%\008 /V 1 /D "%PP%java\jre-1_5_0_05-windows-i586-p.exe /s /v\"/qb IEXPLORER=1 REBOOT=ReallySuppress\"" /f
REG ADD %KEY%\009 /VE /D "Nero Burning Rom v 6.0.6.16" /f
REG ADD %KEY%\009 /V 1 /D "%PP%nero\Nero-6.6.0.16.exe /SILENT /NOLICENCE /NOREBOOT /SN=XXXX/WRITE_SN" /f
REG ADD %KEY%\009 /V 2 /D "%PP%nero\Nero-6.6.0.16_esp.exe /SILENT /NOLICENCE /NOREBBOT" /f
REG ADD %KEY%\010 /VE /D "Openoffice 2.0" /f
REG ADD %KEY%\010 /V 1 /D "%PP%openoffice\openofficeorg20.msi -qn" /f
REG ADD %KEY%\010 /V 2 /D "%PP%openoffice\ES\openofficeorg20.msi -qn" /f
REG ADD %KEY%\011 /VE /D "UltraIso v7.65" /f
REG ADD %KEY%\011 /V 1 /D "%PP%ultraiso\uiso7_me.exe /VERYSILENT" /f
REG ADD %KEY%\011 /V 2 /D "REGEDIT /S %PP%ultraiso\Ultraiso.reg" /f
REG ADD %KEY%\012 /VE /D "Windows Media Player 10" /f
REG ADD %KEY%\012 /V 1 /D "%PP%wmp\wmp10.exe /Q:A /R:N" /f
REG ADD %KEY%\013 /VE /D "VLC Media Player 0.8.2" /f
REG ADD %KEY%\013 /V 1 /D "%PP%vlc\vlc-0.8.2.exe /S" /f
REG ADD %KEY%\014 /VE /D "WinRAR 3.50" /f
REG ADD %KEY%\014 /V 1 /D "%PP%winrar\WinRAR.exe /s" /f
REG ADD %KEY%\015 /VE /D "Windows Vista Inspirated 1.1" /f
REG ADD %KEY%\015 /V 1 /D "%PP%vista\vista.exe /S /NORESTART " /f
REG ADD %KEY%\016 /VE /D "Limpiando y configurando windows" /f
REG ADD %KEY%\016 /V 1 /D "%PP%Limpiar.cmd" /f
EXIT
----------------------------------------------
Argumentos de los instaladores
Lo primero, los argumentos son los "extras" que ves en las rutas, por ejemplo, /q, /s, /VERYSILENT, ...
¿Cómo saber qué argumentos usa cada aplicación?
Lo mejor es ir probando; el 90% usan los mismos, estos son:
/s ó /S
/q ó /Q
/SILENT
/VERYSILENT
/NORESTART (para que no reinicie tras la instalación)
/NOREBBOT
/NOLICENCE (no muestra la licencia de uso)
También puedes saberlo si escribes desde una consola de MS-DOS nombredelaplicacion.exe /? (en el 90% de los casos)
En caso de que no solucione esto tu problema, puedes preguntar por aquí, aunque te recomiendo que visites MSFN, en especial, su subforo destinado a la instalación silenciosa de aplicaciones; de hecho, si preguntas algo aqui, lo primero que haré será buscarlo en ese foro, así que ahorrame ese trabajo
Archivos MSI
Os habréis dado cuenta de que, por ejemplo el Adobe Reader no usa el típico exe para la instalación, si no un msi.
MSI es el instalable de Windows (más info AQUí) y lo usan muchos programas.
Más o menos esto es lo que pasa cuando le das a un setup.exe que usa el MSI.
Se descomprime el archivo MSI en una carpeta temporal (podemos acceder a ella arbriendo el explorador de archivos y escribiendo en la barra de direcciones %temp%) y comienza la instalación de la aplicación desde el MSI, no desde el Setup; así que lo que necesitamos es el MSI.
Ya te he dicho como obtenerlo, accede a la carpeta temporal, borra todos los archivos, ejecuta el exe y verás que en la carpeta temporal aparece, o bien el msi, o bien una carpeta con el msi dentro. Lo copias y listos.
Así a bote pronto, las aplicaciones de Adobe y Macromedia son las que siempre lo usan, así que si quieres instalar alguna aplicación de estas casa ya sabes qué buscar.
Limpiando el Sistema
Los más avispados se habrán dado cuenta de que en el RunOnceEx.cmd del ejemplo existe un "Limpiar.cmd"
Este script lo usé para limpiar el escritorio de accesos directos que quedan tras la instalación de programas, borrar los directorios Install y Drivers que se quedan en C: (o donde hayas instalado el Windows), y en el caso particular del Windows Xp Pc-cito Edition, para limpiar algunas cosas del tema Windows Vista Inspirated y algunos extras.
De cualquier forma, os añado sólo el código necesario para limpiar el escritorio, añadir un acceso directo al explorador de archivos y borrar los directorios antes citados.
----------------------------------------------
@echo off
DEL "%AllUsersProfile%\Escritorio\*.lnk" /S
DEL "%USERPROFILE%\Escritorio\*.lnk" /S
COPY "%USERPROFILE%\MENINI~1\Progra~1\Acceso~1\Explor~1.lnk" "%USERPROFILE%\Escrit~1\Explorador.lnk"
RD "%SYSTEMDRIVE%\Drivers" /S /Q
RD "%SYSTEMDRIVE%\Install" /S /Q
EXIT
----------------------------------------------
espero que les guste.... jejejeje
[/code]