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