English French German Italian Portuguese Russian Spanish Chinese (Simplified)

Ejecutar Sysprep más de tres veces en sistemas con Windows 7

 

Puede ocurrirnos que necesitemos ejecutar sysprep en una máquina a la cual ya ha sido ejecutado, porque quizás has perdido la imagen maestra, un virus ha hecho de las suyas y no tenemos una copia de seguridad, un becario del departamento de IT a metido mano donde no debía y la ha eliminado (verídico) o cualquier otra situación similar que nos podemos encontrar en nuestro día a día.

La política de Microsoft es no permitir ejecutar la herramienta de preparación de sistema más de tres veces, lo que puede ser un problema, o no.

Hay varios escenarios para superar el límite impuesto por Microsoft en Windows 7 y posteriores para ejecutar sysprep y poder capturar nuestra imagen.

El escenario más sencillo de llevar a cabo es preparar una máquina virtual y guardar una captura del estado de la máquina antes de ejecutar sysprep por primera vez en la máquina.

Otro escenario bastante común , sería capturar una imagen antes de ejecutar sysprep a través de una consola de copias de seguridad, y luego implantarla en la misma clase de máquina y proceder a actualizarla.

Alternativamente, puedes ejecutar sysprep haciendo referencia a un fichero unattend.xml que omita el armado del sistema con “SkipRearm”

por ejemplo: sysprep.exe /oobe /generalize /unattend:”C:\unattend.xml” /quit

Éste fichero unattend.xml debería de contener al menos, lo siguiente:

<settings pass=”generalize”>
<component name=”Microsoft-Windows-Security-SPP” 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”>
<SkipRearm>1</SkipRearm>
</component>
</settings>

NOTA: Aseguraros de eliminar éste unattend.xml antes de que la instalación empiece el proceso de despliegue del sistema, ya que puede generar conflictos con los ajustes que insertéis durante el OSD

Ahora bien, y he aquí el origen de ésta entrada, si accidentalmente se ha alcanzado el límite de tres rearmados, hay una forma de poder llevar a cabo ésta acción sin necesidad de empezar la maqueta desde cero y la pérdida de tiempo que ello conlleva.

Deberemos de ejecutar slmgr.vbx /dlv para comprobar la cantidad de rearmados restantes que nos quedan. Si el contador se encuentra a cero, tal como muestra la siguiente imagen:

y al momento de ejecutar sysprep, el proceso se pone en marcha durante unos segundos y luego la ventana desaparece, deberemos de revisar los logs que se encuentran dentro de la carpeta C:\Windows\System32\sysprep\Panther y si, los mismos tienen alguna de las siguientes líneas (o similar):

Error [0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn’t update the recorded state, dwRet = 31

Error [0x0f0082] SYSPRP LaunchDll: Failure occurred while executing ‘C:\Windows\System32\slc.dll, SLReArmWindows’, returned error code -1073425657

Error [0x0f0070] SYSPRP RunExternalDlls: An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = -1073425657

Error [0x0f00a8] SYSPRP WinMain: Hit failure while processing sysprep generalize providers; hr = 0xc004d307

A continuación deberemos proceder con éstos pasos para realizar un  bypass y terminar con éxito la tarea:

  1. Abrir el editor de registros (Inicio > Ejecutar > regedit)
  2. Navegar hasta HKEY_LOCAL_MACHINE\System\Setup\Status\Sysprep Status
  3. Cambiar el valor de “CleanupState” a 2 (0×00000002)
  4. Cambiar el valor de “GeneralizationState” a 7 (0×00000007)
  5. Navegar hasta HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\SoftwareProtectionPlatform
  6. Cambiar el valor de “SkipRearm” a 1 (0×00000001)
  7. Abrir una consola de comandos con permisos administrativos (Inicio > Ejecutar > cmd… click con el botón derecho sobre el ícono y seleccionar Ejecutar como Administrador)
  8. Introducir msdtc -uninstall y presionar enter. Esperar un minuto y reiniciar
  9. Introducir msdtc -install y presionar enter. Esperar un minuto y reiniciar
  10. Navegar hasta “C:\Windows\System32\sysprep” y eliminar la carpeta “panther”
  11. Ejecutar sysprep nuevamente. Ahora debería de finalizar correctamente y dejarnos capturar la imagen.

NOTA: Éste proceso ha de realizarse cada vez que se pretenda capturar una imagen, es un poco tedioso, pero desde luego es mucho menos trabajo que recrear la imagen desde cero.

By | 2017-10-12T21:51:53+00:00 abril 2nd, 2014|Hardware, Informática, Navegadores, Seguridad, Windows|2 Comments