La máquina de referencia no es capaz de arrancar Windows PE cuando se intenta realizar una captura de imagen en un sistema operativo Windows con un idioma diferente a la versión US.English


Dado que muchos de nuestros sistemas están en otros idiomas diferentes al inglés (español fundamentalmente) este es una situación que se nos puede presentar con facilidad.


Para solventar esta situación se ha publicado el artículo referente a MDT 2008 al que se puede acceder desde http://support.microsoft.com/?id=952573


En resumen, este error se debe a que el script Ztibcdutility.vbs se queda esperando un “Successfully” tras la ejecución de BcdEdit y si el sistema no esta en US.English esto no ocurre, por lo que la fase de edición del arranque no es correctamente actualizada.


Para solucionarlo habrá que modificar el script Ztibcdutility.vbs del siguiente modo:


1.     En MDT 2008 en la carpeta de distribución abrir la carpeta “scripts”.


2.     Editar el script Ztibcdutility.vbs


3.     Localizar el código que contiene la función CreateNewRamDiskEntry



If iRetVal <> Failure Then


            arrTemp = split(iRetVal, ” “)


             sNewGuid = arrTemp(2)


      Else


            CreateNewRamDiskEntry = iRetVal     


              Exit Function


      End If     


 


Borrar el código original y cambiarlo por el siguiente:


 



If iRetVal <> Failure Then


            Dim aGuidTemp


arrTemp = split(iRetVal, “{“)


            aGuidTemp = split(arrTemp(1), “}”)


            sNewGuid = “{” & aGuidTemp(0) & “}”


      Else


            CreateNewRamDiskEntry = iRetVal     


              Exit Function


      End If     


4.     Localizar la function RunBCDEdit


5.     Utilizar el siguiente código para reemplazar la función original de RunBCDEdit


 



Function RunBcdEdit (sCommand, bCapture)


 Dim iRetVal, oExec, sLine,oExec1, sLine1,arrTemp1


 Dim re


       sBcdEdit = oEnv.Item(“SystemRoot”) & “\system32\bcdedit.exe”


       If not oFSO.FileExists(sBcdEdit) Then


            SetBcdError (“Unable to locate bcdedit.exe”)


            RunBcdEdit = Failure


            Exit Function


      End If


      sCommand = sBcdEdit & ” ” & sCommand


      Set oExec = oShell.Exec(sCommand)


      sLine = oExec.StdOut.ReadLine


      if bCapture = True Then


          iRetVal = sLine


      Else


          iRetVal = Success


      End If


       RunBcdEdit = iRetVal


End Function


 


Espero que esta información ayuda a solucionar algunas situaciones comprometidas a la hora de preparar una instalación distribuida de nuestros sistemas en otros idiomas.


 


Raúl del Moral Guirado


Tecnico de Soporte Premier España


 

Comments (0)