Checho's Blog

Talking about Windows Internals, Deployment and Troubleshooting

Artículos recientes

News and Awards

Follow me on Twitter and LinkedIn

@secalderonr

View Sergio Calderon's profile on LinkedIn

Recomendados

Tags

Community

Email Notifications

Archives

Quitar la marca de agua “El arranque seguro no está configurado correctamente” en Windows 8.1 manualmente

Hace solo algunos días que finalmente se lanzó Windows 8.1 como Disponibilidad General (17 de Octubre), y como era de esperarse, los problemas no tardaron en llegar a los diferentes Foros, empezando por supuesto, los de Microsoft Community. Aunque esto es perfectamente normal en cada lanzamiento, debido tantos escenarios donde se prueba el sistema operativo, también suelen verse determinados problemas que empiezan a ocurrirle a gran cantidad de las personas, problemas que eventualmente se pueden convertir en un bug, y después en alguna KB de Microsoft, acompañado de un fix oficial.

Sin embargo, hay que tener en cuenta que también sucede que es un cambio de característica en el sistema operativo y nos empieza a confundir mientras se liberan las palabras oficiales por parte de los equipos de producto. De cualquier forma, siempre sale algún workaround desde la comunidad.

Hoy quiero enfocarme a un problema que surgió desde el mismo día de lanzamiento y conforme van actualizando más usuarios a 8.1, se vuelve más común y claro está, empieza la insatisfacción por no tener una respuesta oficial de Microsoft.

[Actualización]

El día de ayer (28/10/2013), Microsoft finalmente ha liberado una KB donde se aborda este problema: http://support.microsoft.com/kb/2902864 

Esta KB incluye el Hotfix (actualización) encargado de quitar de una forma limpia la marca de agua en Windows 8.1/Server 2012 R2. La descarga a continuación:

Para Windows 8.1 de 32 bits:
http://www.microsoft.com/es-es/download/details.aspx?id=40878

Para Windows 8.1 de 64 bits:
http://www.microsoft.com/es-es/download/details.aspx?id=40879

Para Windows Server 2012 R2:
http://www.microsoft.com/es-es/download/details.aspx?id=40880

Dejo el artículo como referencia técnica, pero bastará con lo anterior para solucionar el problema.

*Importante:

La siguiente parte del artículo describirá una solución al problema poco ortodoxa, que implica manipular archivos importantes del sistema operativo y que por ende, puede ocasionar otros problemas si no se manipula con precausión. Este procedimiento además no representa una recomendación oficial de Microsoft (¡No hago parte de la compañía!), no está soportado y debe hacerse bajo su propio riesgo.

El problema

Después de una actualización a través de la tienda a Windows 8.1, o una implementación en limpio, sobre equipos actuales (menos de uno o dos años de comprados), algunos usuarios están viendo una marca de agua en la parte inferior derecha del escritorio similar a esta:

image

FileDownloadHandler

En inglés:SecureBoot isn’t configured correctly”.

En español:El Arranque seguro no está configurado correctamente”.

En la Marca de Agua, como pueden ver, también aparece la edición instalada del sistema operativo junto con el número de compilación, que en este caso es 9600.

La primera y la última son normales cuando la instalación corresponde a una versión de evaluación, o como en muchos casos, cuando el equipo no se encuentra activado; la solución pasa entonces por realizar el proceso de activación y después de un reinicio desaparece.

Ahora, el mensaje de Arranque Seguro es completamente nuevo, aunque desde Windows 8 se encontraba listo para mostrarse y el verdadero problema, es que toda la marca de agua está saliendo en equipos que incluso están correctamente licenciados.

La causa

En pocas palabras, la marca de agua se origina por causa de una característica introducida en Windows 8 llamada Arranque Seguro (Secure Boot). Se encuentra disponible solo en equipos que su firmware es basado en UEFI y se encarga básicamente de hacer una comprobación para evitar que código no autorizado se ejecute en el tiempo de arranque. Quiere decir que verifica el ROM del fabricante, sus aplicaciones UEFI y por supuesto el sistema operativo con una base de datos conocida por el firmware.

Como el Arranque Seguro tiene componente físico y lógico, es necesario que esté activado en la BIOS para poder funcionar; pero, a partir de Windows 8.1 (por lo que se está viendo), cuando el Arranque Seguro se encuentra deshabilitado desde la BIOS, una vez Windows se encuentre instalado, mostrará esta marca de agua indicando que no está configurado correctamente y, eso es independiente de si el equipo está o no activado.

Microsoft recientemente se pronunció al respecto a través del siguiente artículo de TechNet:
Secure Boot isn't configured correctly watermark on the desktop

¿Cuál es la solución? A pesar de que el procedimiento varía dependiendo del modelo de equipo que cada uno tenga, es necesario entrar hasta la BIOS y proceder a habilitar nuevamente el Arranque Seguro para que Windows sea notificado y no muestre más la molesta marca de agua en el próximo reinicio.

*Nota: Ver los manuales de su fabricante para saber cómo activar el Arranque Seguro o Secure Boot si está en inglés.

El problema (Segunda parte)

Hay usuarios que indican el mismo problema, pero sucede que o no tienen ninguna configuración de Arranque Seguro (Secure Boot) disponible en la BIOS, o se encuentra completamente deshabilitada. Ahí es donde empieza la insatisfacción mencionada al comienzo de este artículo.

*Nota: Algunos pueden ver la opción deshabilitada porque tienen un tipo de BIOS mixta, y pueden tener el sistema operativo instalado en Legacy Mode.

La solución

Cuando no hay nada más para hacer, es necesario recurrir a procedimientos un poco más complejos, pero que representan una solución parcial o total.

El mensaje de la marca de agua reside principalmente en los archivos: shell32.dll.mui y basebrd.dll.mui.

En los archivos .mui se encuentran todos los recursos que el módulo utiliza en el respectivo idioma del sistema operativo, quiere decir que varía de acuerdo al idioma, también en su ubicación.

Shell32.dll.mui está en el directorio C:\Windows\System32\<Idioma>. Donde <Idioma> es la terminación de acuerdo al lenguaje para mostrar que tengamos, por ejemplo en-US para inglés, o es-ES para español.

Basebrd.dll.mui está en el directorio C:\Windows\Branding\Basebrd\<Idioma>. Donde <Idioma> es igualmente en-US o es-ES según el caso.

El procedimiento consiste en abrir manualmente estos dos archivos, quitar el texto correspondiente a la marca de agua y remplazarlos por el original para que Windows no tenga de dónde escribir la marca de agua en cada fondo de pantalla.

Requerimientos y recomendaciones

1. Utilizar una cuenta perteneciente al grupo de Administradores locales.

2. Descargar e instalar Resource Hacker. Link de la web oficial:
http://www.angusj.com/resourcehacker/reshack_setup.exe

3. Descargar PsExec de Sysinternals:
http://technet.microsoft.com/en-us/sysinternals/bb897553

Luego descomprimimos y copiamos psexec.exe al directorio C:\Windows\System32

*Nota: Es muy importante asegurar el paso 3. Windows pedirá confirmación para copiar el archivo en System32.

4. Opcional: Crear un punto de restauración antes de proceder a manipular los archivos. Aquí un artículo con el paso a paso de Refresh (sigue igual en 8.1):
http://geeks.ms/blogs/checho/archive/2012/02/29/configurando-reset-y-refresh-en-windows-8-consumer-preview.aspx

5. Crear una carpeta en la unidad C:\ llamada Fuentes (C:\Fuentes).

6. Realizar una copia de los archivos originales antes de manipuarlos.

Procedimiento

Si el equipo está en español:

Navegar hasta el directorio C:\Windows\System32\es-ES, copiar el archivo shell32.dll.mui a la carpeta C:\Fuentes creada desde los requerimientos.

Navegar hasta el directorio C:\Windows\Branding\Basebrd\es-ES, copiar basebrd.dll.mui a la carpeta C:\Fuentes creada desde los requerimientos.

Si el equipo está en inglés:

Navegar hasta el directorio C:\Windows\System32\en-US, copiar el archivo shell32.dll.mui a la carpeta C:\Fuentes creada desde los requerimientos.

Navegar hasta el directorio C:\Windows\Branding\Basebrd\en-US, copiar basebrd.dll.mui a la carpeta C:\Fuentes creada desde los requerimientos.

Deberán terminar con los dos archivos copiados en la carpeta Fuentes, así:

image

Desde la Pantalla de Inicio, buscar Resource Hacker, clic derecho y Ejecutar como administrador:

image

*Nota: Clic en el botón del Control de Cuentas de Usuario para elevar los privilegios.

Clic en el menú File, seleccionar Open, navegar hasta C:\Fuentes, indicar en la parte inferior All files (*.*) donde dice Tipo; seleccionar shell32.dll.mui y clic en el botón Abrir:

image

*Nota: Si no se indica como tipo All files (*.*), no se verán los dos archivos en la carepta.

Si el equipo está en español:

Expandir el nodo de String Table dentro de Resource Hacker, buscar la carpeta de 2070 y clic en 3082. En el panel derecho deben ver varios textos, incluidos el del Arranque Seguro:

P1

Si el equipo está en inglés:

Expandir el nodo de String Table dentro de Resource Hacker, buscar la carpeta de 2070 y clic en 1033. En el panel derecho deben ver varios textos, incluidos el de Secure Boot:

P2

Lo que haremos será indicar como vacío (“ “) las siguientes cadenas:

En español:

"%ws Build %ws"
"El Arranque seguro no está configurado correctamente”

En inglés:

"%ws Build %ws"
"SecureBoot isn't configured correctly"


Debería verse así:

image

*Nota: Independiente del idioma, noten que es la primera y la última.

Una vez hecho esto, hacemos clic en el botón Compile Script en la parte superior:

image

Notarán que al copilar, el botón pasará a estar en gris nuevamente. Finalmente, clic en el menú File y Save (CTRL + S):

image

En la carpeta C:\Fuentes, verán dos archivos similares, uno llamado shell32.dll.mui y shell32.dll_original.mui. El primero es el modificado y el segundo, es el archivo original de Windows. Aunque trabajaremos con el primero, es bueno dejar a salvo el otro también.

Clic en el menú File, luego Open, buscamos la carpeta C:\Fuentes, indicamos All files (*.*) en el Tipo y abrimos esta vez el archivo basebrd.dll.mui

image

Si el equipo está en español:

Expandimos el String Table, luego el nodo 1 y clic en 3082. Veremos el texto correspondiente a las ediciones de Windows 8.1:

image

Si el equipo está en inglés:

Expandimos el String Table, luego el nodo 1 y clic en 1033. Veremos el texto correspondiente a las ediciones de Windows 8.1:

image

En las líneas 12 y 13, les aparecerá repetido el nombre de su edición instalada, así que probablemente, a diferencia de las capturas, vean Windows 8.1 o Windows 8.1 PRO.

La línea 12, como hicimos en shell32.dll.mui, la dejaremos como vacía (“ “), así:

image

Después de esto, clic en el botón Compile Script, y finalmente, clic en el menú File, Save

image

Cuando esté guardado, debemos ver una copia de basebrd.dll.mui también en la carpeta Fuentes. En total serán 4 archivos:

image

Tanto shell32.dll.mui como basebrd.dll.mui deben ser remplazados por los originales pero, para poder hacer esto, es necesario tomar posesión y garantizar permisos, ya que el propietario es TrustedInstaller.

La siguiente parte se puede hacer de forma gráfica, pero toma más pasos, así que lo haremos desde el Símbolo del Sistema con el fin de minimizar la probabilidad de error. Para esto:

Clic derecho en el botón de Inicio y  seleccionamos Símbolo del sistema (administrador):

image

En la consola ejecutamos (de acuerdo al idioma):

Si el equipo está en español:

takeown /f C:\Windows\System32\es-ES\shell32.dll.mui

Luego:

takeown /f C:\Windows\Branding\Basebrd\es-ES\basebrd.dll.mui

image

Si el equipo está en inglés:

takeown /f C:\Windows\System32\en-US\shell32.dll.mui

Luego:

takeown /f C:\Windows\Branding\Basebrd\en-US\basebrd.dll.mui

image

*Nota: El usuario indicado por la consola varía para cada uno. Les debe decir que fue correcto.

Ejecutamos ahora cls para limpiar todo lo hecho y posteriormente (de acuerdo al idioma):

Si el equipo está en español:

icacls C:\Windows\System32\es-ES\shell32.dll.mui /grant Administradores:F

Luego:

icacls C:\Windows\Branding\Basebrd\es-ES\basebrd.dll.mui /grant Administradores:F

image

Si el equipo está en inglés:

icacls C:\Windows\System32\en-US\shell32.dll.mui /grant Administrators:F

Luego:

icacls C:\Windows\Branding\Basebrd\en-US\basebrd.dll.mui /grant Administrators:F

image

Con todo lo anterior –para los que se pregunten-, hemos garantizado tanto la propiedad como los permisos totales sobre el archivo, de esta forma podremos remplazarlo por el que modificamos previamente.

Desde la misma consola y teniendo en cuenta que ene l paso 3 de los requerimientos copiamos el ejecutable de psexec.exe a la carpeta de System32, ejecutamos:

PsExec.exe –SID cmd.exe

Se debe abrir otro símbolo del sistema nuevo:

image

*Nota: El nuevo símbolo del sistema ahora tendrá privilegios de System, es decir, más podermosos que el mismo administrador.

*Importante: En este punto es donde es importante respaldar los archivos originales de shell32.dll.mui y basebrd.dll.mui.

Cerramos el Símbolo del Sistema desde donde se lanzó PsExec y en la nueva consola ejecutamos:

Si el equipo está en español:

DEL C:\Windows\System32\es-ES\shell32.dll.mui

Luego:

DEL C:\Windows\Branding\Basebrd\es-ES\basebrd.dll.mui

image

Si el equipo está en inglés:

DEL C:\Windows\System32\en-US\shell32.dll.mui

Luego:

DEL C:\Windows\Branding\Basebrd\en-US\basebrd.dll.mui

image

Con la herramienta DEL lo que hicimos fue borrar los archivos originales de shell32.dll.mui y basebrd.dll.mui y nuestro último paso es finalmente copiar los dos archivos que modificamos en los primeros pasos  a esa misma ubicación, es decir, de la carpeta Fuentes, a la respectiva en System32 y Basebrd.

Si quieren aprovechar el símbolo del sistema para automatizar esto también, ejecutamos:

Si el equipo está en español:

copy C:\Fuentes\shell32.dll.mui C:\Windows\System32\es-ES\

Luego:

copy C:\Fuentes:\basebrd.dll.mui C:\Windows\Branding\Basebrd\es-ES\

image

Si el equipo está en inglés:

copy C:\Fuentes\shell32.dll.mui C:\Windows\System32\en-US\

Luego:

copy C:\Fuentes:\basebrd.dll.mui C:\Windows\Branding\Basebrd\en-US\

image

Es muy probable que aún después de reiniciar Windows, continúen viendo la marca de agua correspondiente a la compilación y al mensaje de arranque seguro:

image

No hay por qué preocuparse, porque nos falta un paso primordial para reconstruir el caché y que desaparezca la marca por completo. Para esto, clic derecho en el botón de Inicio y nuevamente clic en Símbolo del sistema (administrador). En la consola ejecutamos:

mcbuilder

image

Notarán que tarda algunos segundos, tiempo que es completamente normal.

Reiniciamos el equipo otra vez y una vez hecho, nuestra marca de agua habrá desaparecido:

image

Hay una consecuencia que se debe tener en cuenta al borrar la marca de agua manualmente, y es que en las Propiedades del sistema no aparecerá la edición de Windows:

image

La razón es que Windows lee el texto también de shell32.dll.mui y al borrarlo, desaparece de ambas partes. Si pueden vivir con eso… =)

Espero les sea de utilidad.

PD. No olviden seguirme en Twitter: www.twitter.com/secalderonr

Saludos,

Checho

Posted: 22/10/2013 11:41 por Checho | con 3 comment(s) |
Comparte este post:

Comentarios

Kiquenet ha opinado:

Muy bueno, Checho.

Con Powershell se podría automatizar parte del proceso.

Saludos.

# October 23, 2013 2:36 PM

Checho ha opinado:

@Kiquenet, ¡gracias por comentar! y tienes razón, se  podría crear un script de PowerShell para lanzar una sola ejecución.

# October 23, 2013 3:46 PM

maRs ha opinado:

oye #Kiquenet me funciono a medias :S  

aun me sale solo la leyenda "modo de prueba"   lo demás si se le quito.   que hice mal??  ayuda

# October 22, 2014 6:16 PM