· Introducción a Windows System Image Manager
Esta parte del tutorial nos servirá para empezar por algo sencillo (¡aunque aquí nada es sencillo!) y automatizar el proceso más esencial de la instalación, la propia instalación (es decir, el instalador del DVD de Windows), configurremos ciertos valores pre-establecidos, como por ejemplo el nombre de usuario, la imagen a instalar por defecto, la configuración de Red y Firewall, etc, omitiendo así cualquier ventana molesta de la instalación.
En este tema no se va a tratar la personalización estética de la instalación (BMP's, PNG's), ya que eso no se consigue con WSIM, esto es para personalizar otros aspectos más internos de la instalación, la personalización estética quizás lo veamos más adelante en otro volumen, ya que tiene mayor grado de complejidad y esto es más básico.
( Llámenme raro, pero... no hay nada que me moleste más que la parte de la instalación de Windows 8 donde no te da opción a especificar una cuenta de usuario local, tienes que pulsar un botoncito obligatoriamente "iniciar sesión usando una cuenta de Microsoft"...! para luego poder indicar que prefieres ingresar mediante una cuenta local ( una opción de la que muy pocos se dan cuenta la primera vez!, yo tuve que buscar en Google como coño ingresar un nombre de usuario local en la maldita instalación hecha por y para Microsoft ), Gracias por hacernos la vida tan sencilla, Microsoft, ¡pero sabemos como evadir tus trucos de marketing!. )
Si han leido la definición de lo que es un archivo de respuesta entonces habran leido que se trata de un archivo XML, y XML, para quien no lo sepa, es un lenguaje de programación, pero no hay que preocuparse, no es necesario saber programación de ningún tipo para crear este archivo.
Cabe mencionar que cada versión de la instalación de Windows dispone de unos valores personalizables que otras versiones no tienen o a las que no son aplicables, y quiero recordar con esto que este tutorial está basado en una imagen de Windows 8.1 x64.
2.1
· Creando un archivo de instalación desatendida (AutoUnattend.xml)
Bueno, ya basta de cháchara, empecemos!
Lo primero de todo, ejecutamos WSIM que se encuentra ubicado en %WinKit%\WSIM\imgmgr.exe.
Nota: Reconozco que la interfaz gráfica de usuario del programa no es muy amistosa y al principio puede resultar una pesadilla manejar este Software, casi prefiero recomendarles que lean más tutoriales aparte del mio, donde profundicen en el manejo de WSIM.
Debemos cargar nuestra imagen de Windows, Hacemos click en el menú Archivo > Seleccionar imagen de Windows, y abrimos la imagen Install.wim del DVD de Windows, y seleccionamos la imagen que vayamos a instalar (home, professional, etc) en el caso de que exista más de 1 imagen en el WIM.
Nos preguntará si queremos crear un archivo de catálogo, y le respondemos SÍ
La generación del catálogo tardará unos pocos minutos.
Cuando el catálogo se haya generado, lo veremos reflejado en la esquina inferior izquierda del programa, aquí se encuentra todos los componentes que podemos personalizar en la instalación, me referiré a ellos como "Componentes".
Ahora hacemos click en el menú Archivo > Nuevo archivo de respuesta y nos generará un archivo de respuesta vacío donde podremos ver varias secciones, a estas secciones me referiré como "Pasos"
2.2
· Entendiendo los pasos de la instalación de Windows
...¿Y ahora que?.
Ahora basicamente lo que debemos hacer es ir agregando componentes haciendo click derecho sobre él, para agregarlo al paso adecuada de nuestro archivo de respuesta vacío, y así es como se configura un valor.
Nota: La lista de todos los componentes, sus descripciones, y los valores aplicables paraa cada versión de Windows específica: http://technet.microsoft.com/es-es/library/ff699038.aspx
Si no entienden algo del tutorial siempre van a poder encontrar la respuesta en ese enlace.
Nota: Hay que tener muy en cuenta que si establecen un valor de forma incorrecta, esto podría imposibilitar la instalación de Windows y mostrará un error respecto al archivo de respuesta, sepan lo que están haciendo, pueden joder la instalación así que les recomiendo testear el proceso de instalación desatendida en una máquina virtual.
Hay 7 pasos distintos, y esto es para lo que sirve cada uno de ellos:
windowsPE
Configura las opciones de WinPE y las opciones básicas de instalación de Windows.
Estas opciones pueden incluir el establecimiento de la clave del producto y la configuración de un disco.
offlineServicing
Aplica las actualizaciones a una imagen de Windows.
También aplica paquetes, incluyendo correcciones de software (fixes), paquetes de idioma y otras actualizaciones de seguridad.
Durante este paso, puede agregar drivers de una imagen de Windows antes de instalar esa imagen.
specialize
Crea y aplica información específica del sistema.
Por ejemplo, puede configurar los ajustes de red, ajustes internacionales de la hora y el idioma, y la información del dominio.
generalize
Le permite configurar mínimamente el comando '/generalize' de sysprep, así como configurar otros ajustes de Windows que debe persistir en su imagen de referencia.
El comando '/generalize' de sysprep elimina información específica del sistema.
Por ejemplo, el identificador de seguridad único (SID) y otras configuraciones específicas de hardware se eliminan de la imagen.
La fase 'generalize' sólo se ejecuta si se ejecuta el comando '/generalize' de sysprep.
auditSystem
Procesa la configuración de instalación desatendida mientras Windows se está ejecutando en el contexto de sistema, antes de que un usuario inicie sesión en el equipo en modo de auditoría.
El usuario de auditoría sólo se ejecuta si se arranca en modo auditoría.
auditUser
Procesa la configuración de instalación desatendida después de que un usuario inicie sesión en el equipo en modo de auditoría.
El usuario de auditoría sólo se ejecuta si se arranca en modo auditoría.
oobeSystem
Aplica la configuración a Windows antes de que Windows inicie la pantalla de bienvenida (Windows Welcome, OOBE).
2.3
· Configurando los componentes del archivo de instalación desatendida (AutoUnattend.xml)
Empecemos a configurar (algunas) cosas...
· Omitir la configuración de idioma del instalador
Agregamos el componente Microsoft-Windows-International-Core-WinPE al paso WinPE
Y en la tabla de propiedades asignamos el valor del idioma que queramos, en mi caso es-ES, esto lo hacemos en todas las propiedades, menos la que he dejado vacía.
Agregamos el componente Microsoft-Windows-International-Core al paso Specialize y también al paso oobeSystem, y aplicamos los mismos valores que antes:
Nota: Lista de abreviaciones de otros lenguajes de Windows: http://msdn.microsoft.com/en-ie/goglobal/bb896001.aspx
· Omitir la selección de la imagen de Windows
La selección de la imagen es cuando el instalador te pregunta que edición de Windows quieres instalar (Home, professional, ultimate, etc...)
Agregamos el componente Microsoft-Windows-Setup > ImageInstall > OSImage al paso WinPE y aplicamos estos valores:
WillShowUI = OnError
En el subcomponente Microsoft-Windows-Setup > ImageInstall > OSImage > InstallFrom > Metadata podemos especificar la imagen basada en un índice (0, 1, 2, etc) o por el nombre de la imagen, en mi caso el nombre que hace referencia a la edición Core de Windows 8.1 es "Windows 8.1", así que estos serían los valores correctos:
Action = AddListItem
Key = /IMAGE/NAME
Value= Windows 8.1
· Omitir la activación del producto, establecer un serial.
Agregamos el componente Microsoft-Windows-Security-SPP-UX al paso Specialize y aplicamos estos valores:
SkipAutoActivation = True
Agregamos el componente Microsoft-Windows-Setup > UserData > ProductKey al paso WinPE y aplicamos una clave válida de activación, en mi caso uso la clave pública Trial:
Key = 334NH-RXG76-64THK-C7CKG-D3VPT
Agregamos el componente Microsoft-Windows-Shell-Setup al paso Specialize y aplicamos la misma clave de activación:
ProductKey = 334NH-RXG76-64THK-C7CKG-D3VPT
· Omitir la configuración horaria.
Agregamos el componente Microsoft-Windows-Shell-Setup al paso Specialize y también al paso oobeSystem y aplicamos estos valores:
Para los que vivan en España (GMT+01:00 Brussels, Copenhagen, Madrid, Paris):
TimeZone = Romance Standard Time
Para los que vivan en otro lugar:
http://msdn.microsoft.com/en-us/library/ms912391%28v=winembedded.11%29.aspx
· Omitir la configuración del nombre del PC.
Agregamos el componente Microsoft-Windows-Shell-Setup al paso Specialize y aplicamos el nombre que queramos que el PC tenga por defecto:
ComputerName = Nombre
Nota: El nombre del equipo tiene un límite de 15 caracteres, si lo sobrepasan la instalación dará error.
· Omitir la creación del nombre de usuario.
( Para windows 7 es bastante distinto, esto es para windows +8 )
Agregamos el componente Microsoft-Windows-Shell-Setup > UserAccounts > LocalAccounts > LocalAccount al paso oobeSystem y aplicamos estos valores:
Action = AddListItem
La descripción de la cuenta de usuario:
Description = Descripción
El nombre de la cuenta:
Name = Nombre de usuario
Nota: Si usan el nombre Administrator como hago yo entonces se activará la cuenta oculta de Administrador y tendrán todos los privilegios de acceso a cualquier archivo/carpeta sin necesidad de modificar los permisos en el futuro
El nombre que se mostrará:
DisplayName = Nombre a mostrar
El Grupo de usuarios:
Group = Administrators
Nota: Grupo Administradores.
· Omitir la pantalla de selección de usuario (Auto-Loguearse).
Agregamos el componente Microsoft-Windows-Shell-Setup > AutoLogon al paso Specialize y también al paso oobeSystem y aplicamos estos valores:
Enabled = True
El número de veces que la cuenta se ha usado:
LogonCount = 1
El nombre de la cuenta de usuario que hemos creador previamente:
Username = Nombre de usuario
· Deshabilitar UAC (User Account Controls)
Agregamos el componente Microsoft-Windows-LUA-Settings al paso offlineServicing y aplicamos estos valores:
EnableLUA = False
· Omitir la configuración OOBE (Aceptar EULA, Configurar el tipo de Red, configurar Proteger tu PC, etc...)
Agregamos el componente Microsoft-Windows-Shell-Setup > OOBE al paso oobeSystem y aplicamos estos valores:
Esconder los términos legales de Microsoft:
HideEULAPage = True
Esconder la página de registro OEM:
HideOEMRegistrationScreen = True
Esconder la página de "Unirse a una red":
HideWirelessSetupInOOBE = True
Especifica si se requiere que un usuario online se deba loguear durante el OOBE.
HideOnlineAccountScreens = True
Especifica el tipo de red:
NetworkLocation = Home
Nota: Otros tipos de red: http://technet.microsoft.com/es-es/library/ff715386.aspx
Configura la opción de "Ayudenos a proteger su PC y mejorar Windows":
ProtectYourPC = 3
Nota: Otros valores: http://technet.microsoft.com/es-es/library/ff716385.aspx
Nota: Los últimos dos parámetros de la imagen están vacios porque no son aplicables a Windows +8, pero pueden usarlos en Windows 7 para omitir la creación del usuario.
Agregamos el componente Microsoft-Windows-Setup al paso WinPE y aplicamos estos valores:
Habilitar la Red:
EnableFNetwork = True
Habilitar el Firewall de Windows:
EnableFirewall = True
En el sub-componente Microsoft-Windows-Setup > UserData aplicamos estos valores:
Aceptar términos legales de Microsoft:
AcceptEULA = True
2.4
· Finalizando el archivo de instalación desatendida (AutoUnattend.xml)
Una vez hayamos terminado de configurar todo lo que queramos, debemos validar el archivo de respuesta para comprobar que todos los valores que hemos introducido son correctos y no hay conflictos en el archivo XML.
Hacer click en el menú Herramientas > Validar archivo de configuración
Nota: Si hubiese cualquier error nos indicaría el componente y el valor conflictivo.
Ya solo nos queda guardar el archivo XML, lo guardaremos con el nombre AutoUnattend.xml y en el mismo directorio del DVD de instalación de Windows (de otra manera el instalador de Windows no tomará nuestro archivo desatendido en cuenta):
Así es como debería quedarla estructura de archivos del DVD:
2.5
· Ejemplos de un archivo de instalación desatendida (AutoUnattend.xml)
En el directorio ubicado en %WinKit%\Samples\Unattend disponen de varias plantillas de distinta arquitectura (x64/x86) que pueden estudiar:
De todas formas también les proporcionaré mi archivo de instalación desatendida por si lo quieren usar (solo sirve para Windows 8.1 Core x64), es completamente desatendido menos la selección de la partición donde instalar Windows (ya que me parece algo peligroso), y quizás quieran modificar el nombre de usuario y esas cosas... :
Código
<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="windowsPE"> <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserLocale>es-ES</UserLocale> <UILanguageFallback>es-ES</UILanguageFallback> <UILanguage>es-ES</UILanguage> <SystemLocale>es-ES</SystemLocale> <InputLocale>es-ES</InputLocale> <SetupUILanguage> <UILanguage>es-ES</UILanguage> </SetupUILanguage> </component> <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Display> <HorizontalResolution>1920</HorizontalResolution> <VerticalResolution>1080</VerticalResolution> <ColorDepth>32</ColorDepth> </Display> <UserData> <ProductKey> <WillShowUI>OnError</WillShowUI> <Key>334NH-RXG76-64THK-C7CKG-D3VPT</Key> </ProductKey> <AcceptEula>true</AcceptEula> <Organization>Elektro Studios</Organization> <FullName>Elektro</FullName> </UserData> <EnableNetwork>true</EnableNetwork> <EnableFirewall>true</EnableFirewall> <Restart>Restart</Restart> <ImageInstall> <OSImage> <InstallFrom> <MetaData wcm:action="add"> <Key>/IMAGE/NAME</Key> <Value>Windows 8.1</Value> </MetaData> </InstallFrom> <WillShowUI>OnError</WillShowUI> </OSImage> </ImageInstall> </component> </settings> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <AutoLogon> <Enabled>true</Enabled> <LogonCount>1</LogonCount> <Username>Administrator</Username> </AutoLogon> <ComputerName>Elektro-PC</ComputerName> <ProductKey>334NH-RXG76-64THK-C7CKG-D3VPT</ProductKey> <RegisteredOrganization>Elektro Studios</RegisteredOrganization> <TimeZone>Romance Standard Time</TimeZone> <WindowsFeatures> <ShowInternetExplorer>false</ShowInternetExplorer> <ShowMediaCenter>false</ShowMediaCenter> <ShowWindowsMediaPlayer>false</ShowWindowsMediaPlayer> </WindowsFeatures> <Themes> <WindowColor>0</WindowColor> </Themes> <DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet> <BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled> </component> <component name="Microsoft-Windows-HelpAndSupport" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <HelpAndSupport> <Manufacturer>Elektro Studios</Manufacturer> </HelpAndSupport> </component> <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserLocale>es-ES</UserLocale> <UILanguageFallback>es-ES</UILanguageFallback> <UILanguage>es-ES</UILanguage> <SystemLocale>es-ES</SystemLocale> <InputLocale>es-ES</InputLocale> </component> <component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SkipAutoActivation>true</SkipAutoActivation> </component> <component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DisableWER>1</DisableWER> </component> </settings> <settings pass="oobeSystem"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <OOBE> <HideEULAPage>true</HideEULAPage> <ProtectYourPC>3</ProtectYourPC> <NetworkLocation>Home</NetworkLocation> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <HideOnlineAccountScreens>true</HideOnlineAccountScreens> <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> <HideLocalAccountScreen>true</HideLocalAccountScreen> </OOBE> <VisualEffects> <FontSmoothing>On</FontSmoothing> <SystemDefaultBackgroundColor>0</SystemDefaultBackgroundColor> </VisualEffects> <TimeZone>Romance Standard Time</TimeZone> <DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet> <BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled> <Themes> <WindowColor>0</WindowColor> </Themes> <WindowsFeatures> <ShowInternetExplorer>false</ShowInternetExplorer> <ShowMediaCenter>false</ShowMediaCenter> <ShowWindowsMediaPlayer>false</ShowWindowsMediaPlayer> </WindowsFeatures> <UserAccounts> <LocalAccounts> <LocalAccount wcm:action="add"> <Name>Administrator</Name> <Group>Administrators</Group> <DisplayName>Administrator</DisplayName> <Description>Administrator User</Description> </LocalAccount> </LocalAccounts> </UserAccounts> <AutoLogon> <Enabled>true</Enabled> <Username>Administrator</Username> <LogonCount>1</LogonCount> </AutoLogon> </component> <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <InputLocale>es-ES</InputLocale> <SystemLocale>es-ES</SystemLocale> <UILanguage>es-ES</UILanguage> <UILanguageFallback>es-ES</UILanguageFallback> <UserLocale>es-ES</UserLocale> </component> </settings> <settings pass="auditSystem"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Themes> <WindowColor>0</WindowColor> </Themes> <WindowsFeatures> <ShowWindowsMediaPlayer>false</ShowWindowsMediaPlayer> <ShowMediaCenter>false</ShowMediaCenter> <ShowInternetExplorer>false</ShowInternetExplorer> </WindowsFeatures> </component> </settings> <settings pass="auditUser"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Themes> <WindowColor>0</WindowColor> </Themes> <WindowsFeatures> <ShowWindowsMediaPlayer>false</ShowWindowsMediaPlayer> <ShowInternetExplorer>false</ShowInternetExplorer> <ShowMediaCenter>false</ShowMediaCenter> </WindowsFeatures> </component> </settings> <settings pass="offlineServicing"> <component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <EnableLUA>false</EnableLUA> </component> </settings> <cpi:offlineImage cpi:source="wim:c:/users/administrador/desktop/win%208%20.1/win/sources/install.wim#Windows 8.1" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> </unattend>