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

Inyectar el Update de Windows 8.1 a un sistema online utilizando DISM

En las pasadas entregas, mostré cómo podríamos inyectar el Update 1 de Windows 8.1 a una imagen offline, pensando en que ya se tiene la imagen maestra, y la forma de implementarlo utilizando Microsoft Deployment Toolkit (MDT). En este último post, referente a instalación del Update, expondré la forma de instalarlo en un sistema operativo online; es decir, desde Windows 8.1, y utilizando DISM, inyectar el update manualmente sin necesidad de montar imágenes o realizar instalaciones adicionales.

Requerimientos

- Antes que nada, la KB2919442, necesaria para poder instalar Windows 8.1:

Descarga para 32 (x86) bits:
http://www.microsoft.com/es-es/download/details.aspx?id=42135

Para 64 (x64) bits:
http://www.microsoft.com/es-ES/download/details.aspx?id=42162

*Nota: Es posible que esta KB ya se encuentre instalada en sus equipos, pues hizo parte del paquete de actualizaciones que liberó Microsoft el mes pasado.

- Teniendo en cuenta que la anterior es la primera (1), necesitamos bajar los otros 5 paquetes disponibles desde Windows Update:

2.  KB2919355
3.  KB2932046
4.  KB2934018
5.  KB2937592
6.  KB2938439

Como todos hacen parte de una misma descarga, basta con buscarla de acuerdo a la arquitectura y bajarlos:

Descarga para 32 (x86) bits:
http://www.microsoft.com/es-es/download/details.aspx?id=42327

Descarga para 64 (x64) bits:
http://www.microsoft.com/es-es/download/details.aspx?id=42335

*Importante: Vamos a copiar todas las 6 actualizaciones en una carpeta llamada Update1 en la raíz del sistema operativo, es decir: C:\Update1

image

En todo el post haré referencia a este nombre y ubicación, aunque le pueden poner como deseen.

- Un equipo con Windows 8.1, en cualquiera de las ediciones.

*Nota: Como dato interesante, si aún están planeando probar Windows 8.1 antes de comprarlo o instalarlo, pueden bajar el período de prueba de Enterprise e inyectarle el Update 1.

Implementando el Update de forma online

Lo primero que hay que tener en cuenta, es que en una imagen online, es decir, con el sistema operativo corriendo, no se pueden implementar los .MSU utilizando DISM; y, como todos se bajan con esta extensión, es necesario primero extraer el .CAB que contiene el paquete de actualización para que DISM pueda utilizarlo.

Para eso, desde el equipo técnico donde se instalará la actualización, hacemos esto:

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

image

2. Desde la consola ejecutamos:

Expand /F:*.cab C:\Update1\*.msu C:\Update1

image

Verán que después de unos momentos, tendremos todos los .CAB, con icono similar a un gabinete en el mismo directorio:

image

- Lo que sigue, tal cual lo expliqué en los dos artículos anteriores, es instalar cada paquete en el orden adecuado para que el Update se pueda desplegar satisfactoriamente. En este orden de ideas, ejecutamos desde la consola:

Dism /Online /Add-Package /PackagePath:C:\Update1\Windows8.1-KB2919442-x64.cab

image

*Nota: El mío tiene al final –x64 porque tengo arquitectura de 64 bits, pero en 32 bits, el final del nombre del paquete será –x86.cab. Es lo mismo para todos los demás comandos.

3. Reiniciamos el equipo.

4. Al reiniciar, abrimos nuevamente el símbolo del sistema  siguiendo el paso 1 y después ejecutamos:

Dism /Online /Add-Package /PackagePath:C:\Update1\Windows8.1-KB2919355-x64.cab

image

*Nota: Esta KB es la que tiene todo el cambio del Update, así que puede demorar un rato mientras pasa de Procesando 1 de 1. Nos es necesario asustarse.

5. Reiniciamos el equipo. Es importante notar que la consola pedirá el reinicio, así que se puede hacer desde allí presionando la tecla Y.

6. Al reiniciar, abrimos nuevamente la consola siguiendo el paso 1 y ejecutamos:

Dism /Online /Add-Package /PackagePath:C:\Update1\Windows8.1-KB2932046-x64.cab

image

7. Reiniciamos el equipo. Es importante notar que la consola pedirá el reinicio, así que se puede hacer desde allí presionando la tecla Y.

8. Al reiniciar, abrimos nuevamente la consola siguiendo el paso 1 y ejecutamos:

Dism /Online /Add-Package /PackagePath:C:\Update1\Windows8.1-KB2934018-x64.cab

image

9. Reiniciamos el equipo. Es importante notar que la consola pedirá el reinicio, así que se puede hacer desde allí presionando la tecla Y.

10. Al reiniciar, abrimos nuevamente la consola siguiendo el paso 1 y ejecutamos:

Dism /Online /Add-Package /PackagePath:C:\Update1\Windows8.1-KB2937592-x64.cab

image

11. Reiniciamos el equipo.

12. Al reiniciar, abrimos nuevamente la consola siguiendo el paso 1 y ejecutamos:

Dism /Online /Add-Package /PackagePath:C:\Update1\Windows8.1-KB2938439-x64.cab

image

13. Reiniciamos el equipo.

¡Todo listo! Ahora tenemos nuestro Windows 8.1 Update completamente funcional:

image

Espero sea de utilidad.

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

Saludos.

Checho

Instalación de Windows 8.1 Update utilizando MDT 2013

El artículo pasado mostré cómo podíamos inyectar el llamado Update de Windows 8.1 a una imagen offline utilizando PowerShell; en este post quiero automatizar un poco más el proceso, y recurrir a Microsoft Deployment Toolkit (MDT) para instalar una imagen maestra de Windows 8.1 con el Update integrado.

*Nota: El siguiente no es un procedimiento tan sencillo como se esperaría de una inyección de paquetes de actualización (.MSU), pero está basado en la recomendación que se hizo en el blog oficial de MDT referente al Update de Windows 8.1.

Requerimientos

- Un equipo técnico donde esté instalado y configurado MDT y WDS para poder hacer el despliegue por red. Para no repetir en este post, tengo creados un par de artículos básicos con el paso a paso de esto en TechNet Wiki:

Instalación y configuración básica de Microsoft Deployment Toolkit (MDT) 2013

Instalación y configuración básica de Windows Deployment Services (WDS)

- Los paquetes de actualización necesarios para instalar el Update de Windows 8.1:

1.  KB2919442
2.  KB2919355
3.  KB2932046
4.  KB2937592
5.  KB2938439
6.  KB2949621

*Nota: Estos paquetes se pueden descargar desde Suscripción MSDN, pero el próximo 8 de abril de 2014 estarán disponibles públicamente desde Windows Update.

Debemos guardar el primer paquete KB2919442 en la carpeta C:\Dependency del equipo técnico.

Posteriormente, guardamos el resto de los paquetes (del segundo –2- hasta el sexto –6-) en la carpeta: C:\Update; pero, generamos carpeta para cada uno. Así:

image

*Nota 2: Durante el artículo referenciaré a estas dos carpetas y su contenido. La separación se debe a que los paquetes de distribuirán de forma diferente.

- El medio o los archivos de instalación de Windows 8.1.

Agregando y configurando recursos

Sistema operativo

En el equipo técnico donde previamente se instaló y configuró el MDT 2013 y el WDS, expandimos nuestro Deployment Share, vamos hasta el nodo de Operating Systems, clic derecho y seleccionamos: Import Operating System.

image

En la página de OS Type, dejamos la selección predeterminada de Full set of sources files y clic en el botón Next:

image

En la página de Source, hacemos clic en el botón Browse para indicar la unidad donde están los archivos de instalación de Windows y clic en Next:

image

En la página de Destination, dejamos el nombre predeterminado y clic en Next:

image

En la página de Summary, clic en el botón Next para iniciar.

En la página de Confirmation, clic en el botón Finish para terminar.

Actualización de dependencia

En el Deployment Workbench, clic derecho en el nodo de Packages y clic en: Import OS Packages.

image

En la página de Specify Directory, clic en el botón Browse y seleccionamos C:\Dependency para luego hacer clic en el botón Next:

image

En la página de Summary, clic en el botón Next para iniciar.

En la página de Confirmation, clic en el botón Finish para terminar.

Nos debe quedar la KB1929442 agregada y visible en el nodo de Packages:

image

Aplicaciones

Aquí está el gran “truco” para agregar el resto de las KB correspondientes al Update de Windows 8.1. Como deben tener un orden extricto de instalación, además de un reinicio para que los componentes de Windows se vayan actualizando, es necesario cada paquete .MSU restante como una aplicación aparte:

Hacemos clic derecho entonces sobre el nodo de Applications y seleccionamos la opción de New Application:

image

En la página de Application Type, dejamos la selección de Application with source files y clic en el botón Next:

image

En la página de Details, ponemos como Publisher a Microsoft y de nombre que es el obligatorio, ponemos la segunda actualización en la lista de requerimientos, es decir, la: KB2919355.

image

Hacemos clic en el botón Next para continuar.

En la página de Source, clic en el botón Browse y navegamos hasta la primera KB2919355 ubicada en el directorio C:\Update\KB2919355 y hacemos clic en Next:

image

En la página de Destination, dejamos el nombre predeterminado para identificar a la KB y hacemos clic en Next:

image

En la página de Command Details, debajo de Command Line, digitamos:

wusa.exe Windows8.1-KB2919355-x64.msu /quiet /norestart

image

Clic en el botón Next.

*Nota: Es necesario tener muy en cuenta que debemos escribir todo el nombre específico del paquete de actualización, sabiendo además que la arquitectura puede variar, dependiendo de si estamos instalando un equipo de 32 o 64 bits. Si no indicamos el nombre del paquete como es, la actualización no se aplicará y habremos perdido la implementación.

En la página de Summary, clic en Next.

Después de que se complete el proceso, en la página de Confirmation, clic en el botón Finish para terminar.

Importante:

Lo siguiente es agregar cada uno de los paquetes de la misma forma al nodo de Applications. Es necesario tener en cuenta que sólo varían en el nombre y debe ser en este orden:

2.  KB2919355 –> Ya agregamos esten en los pasos anteriores
3.  KB2932046 –> Continúan desde aquí.
4.  KB2937592
5.  KB2938439
6.  KB2949621

Al final, deberían verlos todos en el orden dentro del nodo de Applications:

image

*Nota: Traten de hacerlo con la mayor calma posible, pues de eso depende el éxito de la actualización.

Cuando agregemos todas, seleccionamos la KB2919355 y hacemos lo siguiente:

Hacemos clic derecho sobre el paquete y Properties:

image

En la ventana de Properties, pestaña General, seleccionamos: Hide this application in the Deployment Wizard:

19

Nos pasamos a la pestaña de Details y seleccionamos: Reboot the computer after installing this application:

20

Clic en el botón Apply y después OK.

Muy bien, lo siguiente será hacer exactamente lo mismo con las demás KB, empezando por la KB2932046 pero, adicionalmente vamos a la pestaña de Dependencies, hacemos clic en el botón Add, seleccionamos la KB anterior, es decir: KB2919355 y clic en OK.

21

Para cada una, la dependendica es la inmediatamente anterior, así:

KB

Dependency

KB2937592 KB2932046
KB2938439 KB2937592
KB2949621 KB2938439

*Nota: Es un poco enredado, pero de esta forma nos aseguraremos que cada KB se vaya instalado, reinicie el equipo y verifique antes si la KB necesaria ya se encuentra. Basta con tener mucha calma mientras se realiza el procedimiento.

Secuencia de Tarea

Cuando hayamos terminado con las aplicaciones, hacemos clic derecho en el nodo de Task Sequences y seleccionamos: New Task Sequence.

image

En la página de General Settings, indicamos un ID para la Secuencia de Tareas y un nombre descriptivo para hacer clic en Next:

image

En la página de Select Template, dejamos Standard Client Task Sequence y clic en el botón Next:

image

En la página de Select OS, indicamos la edición de Windows 8.1 que hayamos agregado y clic en el botón Next:

image

En la página de Specify Product Key, indicamos o no código de activación de acuerdo a nuestro escenario y hacemos clic en Next:

image

En la página de OS Settings, rellenamos la información de acuerdo al registro y clic en el botón Next:

image

En la página de Admin Password, escribimos la contraseña de administrador integrado que deseemos y clic en el botón Next:

image

En la página de Summary, clic en Next.

Después del progreso, en la página de Confirmation, clic en Finish para terminar.

Hacemos doble clic derecho en nuestra Secuencia de Tareas para que se abra la ventana de Properties.

En la ventana de Properties, nos pasamos a la pestaña de Task Sequence, seleccionamos la tarea de Install Application, hacemos clic en el botón Add > General > Install Application:

image

Hacemos esto otras tres veces para que nos queden un total de 5 tareas para Install Applications:

image

Seleccionamos la primera tarea en la lista de Install Applications, y en el panel derecho le modificamos el nombre de acuerdo a la lista de KBs que vamos a instalar. En el primer caso, sería Install KB2919355 como nombre, luego seleccionamos Install Application, clic en el botón de Browse y entre la lista escogemos la KB2919355:

22

Hacemos lo mismo en las otras 4 tareas, pero con su respectiva KB.

Al final, debería verse así:

image

*Nota 1: Los nombres se van cambiando en la vista general solos después de seleccionar otra tarea.

*Nota 2: Estamos haciendo esto, para que el asistente sepa que debe distribuir estos paquetes como aplicaciones, pero que no pregunte al usuario para evitar fallas a la hora de escoger.

En la ventana de Properties, clic en el botón Apply y OK.

Actualizando Deployment Share y creando medio LTI

Para que se pueda generar el medio de Windows PE que requiere el WDS, hacemos clic derecho en nuestro deployment share y en Update Deployment Share:

image

En la página de Options, dejamos la opción de Optimize the boot image updating process y clic en el botón Next:

image

En la página de Summary, clic en Next.

Después de que termine el proceso, que puede tardar unos minutos, hacemos clic en el botón Finish.

Agregando imagen de arranque al WDS

En el equipo técnico, abrimos la Consola de Windows Deployment Services, expandimos nuestro servidor, hacemos clic derecho en Boot images y seleccionamos: Add boot image.

image

*Nota: Si no tienen implementado el WDS, pueden ver este artículo donde explico cómo hacerlo paso a paso.

En la página de Image File hacemos clic en Browse.

En el cuadro de Windows, buscamos la carpeta Boot de nuestro Deployment Share y seleccionamos LiteTouchPE_x64 o LiteTouchPE_x86 de acuerdo a la arquitectura del sistema que vamos a implementar y hacemos clic en Open:

image
Clic en el botón Next.

En la página de Image Metadata, ponemos el nombre y descripción referente a nuestra Secuencia de Tareas y clic en Next:

image

En la página de Summary, clic en Next.

En la página de Task Progress, clic en Finish.

Instalando Windows 8.1 +  Update

Nuestro final es realizar toda la instalación de Windows, que se inyecte el Update.

En la página de Welcome, hacemos clic en: Run the Deployment Wizard to install a new Operating System:

image

Indicamos nuestros datos en la página de Credentials y clic en OK:

image

En la página de Task Sequence, seleccionamos nuestra Secuencia de Tareas creada para actualizar al Update y clic en Next:

image

En la página de Computer Details, lo unimos al dominio o dejamos en el grupo de hogar según nuestra preferencia y clic en Next:

image

En la página de Move Data and Settings, clic en Next:

image

En la página de Locale and Time, configurar las preferencias y clic en Next:

image

En la página de BitLocker, clic en Next:

image

En la página de Ready, clic en Begin:

image

Como la actualización la estamos inyectando realmente después de instalar Windows, verán que empieza a hacerla una por una y como es acumulativa, puede tardar un buen rato mientras instala todas, así que basta un poco de paciencia.

Así se debería ver después de instalado Windows 8.1, mientras empieza a inyectar el Update:

Progress2

Y así se ve después de instalado el Update para Windows 8.1:

image

*Nota: El icono de la Tienda de Windows demuestra que está el Update instalado.

Espero sea de utilidad.

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

Saludos.

Checho.

Inyectar el Update de Windows 8.1 a una imagen offline utilizando PowerShell

Ayer fue un buen día para los amantes Windows, pues Microsoft anunció finalmente desde el BUILD la disponibilidad de lo que llamaron Windows 8.1 Update. Representa una actualización acumulativa con una serie de mejoras interesantes sobre todo en la esperiencia de usuario de escritorio, y algunas cosas a nivel corporativo como el Enterprise Mode para Internet Explorer (hablaré de esto en otro artículo).

La actualización se encuentra en este momento para descarga solo a través de Suscripción MSDN e incluso aún en TechNet para los que conservan el período extendido. A partir del próximo 8 de abril se podrá ver, descargar e instalar por medio de Windows Update para usuarios finales y WSUS pensando en escenarios corporativos. Hay más información en el blog oficial.

Hoy, antes de ir a tocar nuevas características y mejoras, deseo hablar sobre la implementación de esta actualización. Existen varias formas para distribuirla, además de diferentes escenarios, pero me concentraré específicamente en la forma de inyectar esta actualización a una imagen offline (sin instalar) por medio de PowerShell teniendo todos los paquetes necesarios.

*Nota: Recordemos que estos paquetes, en caso de que no tengan suscripción, estarán disponibles el 8 de abril para su descarga.

Requerimientos

- ADK para Windows 8.1 Update, disponible en el sitio web de Microsoft:
http://www.microsoft.com/en-us/download/details.aspx?id=39982

*Nota: El ADK debe estar instalado en un equipo técnico donde se vaya a realizar el procedimiento.

- Archivos de instalación o imagen maestra de Windows 8.1.

- Los siguientes paquetes de actualización correspondientes al Update:

1.  KB2919442
2.  KB2919355
3.  KB2932046
4.  KB2937592
5.  KB2938439
6.  KB2949621

*Nota: Existe paquete para cada arquitectura (32 o 64 bits).

- Una carpeta llamada “81” creada en la unidad C:\. Es decir: C:\81

- Una carpeta llamada “Offline” creada en la unidad C:\. Es decir: C:\Offline

- Una carpeta llamada “Update” creada en la unidad C:\. Es decir: C:\Update

Copiando archivos de instalación de Windows

Lo primero que debemos hacer es copiar todos los archivos de instalación, sea con imagen maestra o predeterminada del medio de Windows a un directorio local para poder manipularlos.

Suponiendo que montamos un medio físico o virtual donde se encuentran, y que estamos desde un Windows 8/8.1, buscamos CMD desde la Pantalla de Inicio, hacemos clic derecho y Ejecutar como administrador:

image

Una vez abierta la consola, ejecutamos:

xcopy <UnidadWin>\*.* /s/e/f C:\81

Donde <UnidadWin> corresponde a la unidad virtual o física donde están los archivos de instalación. Por ejemplo, en mi caso que era la H:\, el comando sería:

xcopy H:\*.* /s/e/f C:\81

 image

*Nota: El proceso puede tardar varios minutos.

Al terminar tendremos todos los archivos de Windows copiados al directorio C:\81:

image

Montando imagen offline

Nuestro siguiente paso es montar la imagen .WIM que contienen nuestros archivos de instalación para poder hacerle inyección de paquetes sin conexión.

Para esto, buscamos la consola de PowerShell desde la Pantalla de Inicio, clic derecho y Ejecutar como administrador:

image

*Nota: Valga la aclaración que la captura de pantalla se encuentra en inglés.

Desde la consola de PowerShell, ejecutamos:

Mount-WindowsImage –ImagePath C:\81\Sources\install.wim –Index <Ind> –Path C:\Offline

Donde <Ind> corresponde al índice de nuestra imagen.

Para mi caso, sería:

Mount-WindowsImage –ImagePath C:\81\Sources\install.wim –Index 1 –Path C:\Offline

image


Recordemos que una imagen .WIM puede tener una o más ediciones de Windows y cada una es referenciada por el índice o nombre. Pueden saber el número del índice ejecutando:

Get-WindowsImage –ImagePath C:\81\Sources\install.wim

image

*Nota: La edición Enterprise solo tiene una imagen embebida.


Al montarse la imagen, dentro del directorio Offline podemos ver algo similar a lo que normalmente tiene la raíz C:\ de nuestro sistema operativo:

image

Inyectando Update para Windows 8.1

Llegamos finalmente al paso donde inyectaremos la actualización a nuestra imagen, pero antes es necesario asegurar la descarga de todas las KB especificadas en los requisitos y guardarlas en la carpeta C:\Update creada también desde antes:

image

Ahora, con un solo comando podemos normalmente inyectar varias actualizaciones al tiempo, sea desde DISM o PowerShell pero, en este caso, es necesario inyectar una por una pues cada componente debe quedar correctamente instalado para que la siguiente actualización se instale de manera adecuada.

En este orden de ideas, debemos ejecutar los comandos en PowerShell en el siguiente orden:

Add-WindowsPackage -Path C:\Offline -PackagePath C:\Update\Windows8.1-KB2919442-x64.msu

Add-WindowsPackage -Path C:\Offline -PackagePath C:\Update\Windows8.1-KB2919355-x64.msu

Add-WindowsPackage -Path C:\Offline -PackagePath C:\Update\Windows8.1-KB2932046-x64.msu

Add-WindowsPackage -Path C:\Offline -PackagePath C:\Update\Windows8.1-KB2937592-x64.msu

Add-WindowsPackage -Path C:\Offline -PackagePath C:\Update\Windows8.1-KB2938439-x64.msu

Add-WindowsPackage -Path C:\Offline -PackagePath C:\Update\Windows8.1-KB2949621-v2-x64.msu

*Nota: Es primordial que sea ejecute uno por uno hasta que todos estén instalados, aunque pueden lanzar todos en un solo Script de PowerShell.

*Nota 2: No se preocupen si el proceso tarda un buen rato, porque es completamente normal.

Debemos tener un resultado similar a la siguiente captura:

image

Desmontanto imagen offline

Ya inyectado todo, debemos terminar desmontando completamente la imagen, además de guardar los cambios para que la actualización se mantenga.

Para esto, desde PowerShell ejecutamos:

Dismount-WindowsImage –Path C:\Offline –Save

image

Creando imagen ISO de instalación

Este último procedimiento podría ser opcional, pues depende de cómo se desplegará la imagen, pero pensando en que se creará una imagen para instalación individual, es necesario crear el .ISO basado en los archivos de instalación que tenemos en el directorio de Windows: C:\81.

Para esto, buscamos Deployment and Imaging Tools Environment desde la Pantalla de Inicio, hacemos clic derecho y seleccionamos Ejecutar como administrador:

image

Corremos el siguiente comando para generar una ISO que pueda hacer boot:

Para equipos con Legacy BIOS:

Ejecutamos:

oscdimg –bC:\81\boot\etfsboot.com –u2 –h C:\81 C:\Win81U.ISO

image

Para equipos con BIOS UEFI

Ejecutamos:

oscdimg –bC:\81\efi\microsoft\boot\Efisys.bin –pEF –u1 –udfver102 C:\81 C:\Win81U_UEFI.ISO

image

*Nota 1: El nombre antes del .ISO lo pueden modificar como quieran. El proceso puede tardar algunos minutos.

*Nota 2: Si van a instalar en Hyper-V, en caso de que sea máquina Generación 1, utilizan lo de Legacy BIOS; para Generación 2, utilizan el comando de UEFI.

¡Ya tenemos nuestra imagen con el Update integrado! Lo unico que nos falta es ver si todo funciona bien.

Instalando y probando

Basta con grabar la ISO en un DVD o crear una USB de arranque para instalar y después verificar que la actualización haya quedado aplicada en la imagen:

image

Espero sea de utilidad.

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

Saludos.

Checho

Actualizar ADMX en un Controlador de Dominio Server 2008-2012 para aplicar directivas a Windows 8.1

En todo el tiempo que llevo escribiendo en este blog, notarán que no ha sido muy común de mi parte escribir sobre un tema que se salga de Windows Client, incluyendo solución de problemas, implementación o despliegue. Sin embargo, hay ocasiones o temas que guardan mucha relación con el sistema operativo cliente y que pueden ser importantes, como el hecho de poder configurar correctamente un Servidor Proxy para IE11 o como en este caso, actualizar de forma adecuada los ADMX para que el sistema operativo pueda recibir nuevas directivas desde un Servidor anterior a 2012 R2.

Una definición básica de una Directiva de Grupo, bajo mi casi ignorancia en el tema, sería decir que es una forma gráfica de crear o manipular el Registro de Windows para que el sistema operativo reciba alguna configuración obligatoria de forma centralizada. Por supuesto, no voy más allá porque detrás de eso hay todo un mundo –tanto que hay MVP solo para este tema-.

Ahora, es importante notar que el Editor de Políticas de grupo que ejecutamos local o desde un Controlador de Dominio, lee todas estas plantillas, conocidas normalmente como Plantillas Administrativas (ADMX) desde los archivos .admx situados de forma predeterminada en la ruta: C:\Windows\PolicyDefinitions.

El contenido de este archivo, tiene un formato con información relevante mostrada por la plantilla, como el sistema soportado, nombre, descripción, etc. Cabe aclarar que no hay un archivo .admx por cada plantilla, más bien se pueden ver como un tipo de contenedores para varias plantillas de acuerdo a lo que podríamos llamar categoría.

Por ejemplo, la siguiente captura corresponde al contenido del archivo: FileHistory.admx, específicamente, la directiva para deshabilitar o habilitar Historial de Archivos:

image

*Nota: En el caso de File History, solo contiene una directiva posible, es por esto que muestro la etiqueta de <policies> y </policies>, pues normalmente ahí están encerradas todas las directivas dentro de <policy> y </policy>.

En resumidas cuentas, nosotros abrimos el Editor de Directivas de Grupo a través de la Consola de Administración, editamos nuestra GPO, ésta va y busca todas sus plantillas en la ruta C:\Windows\PolicyDefinitions, las configura dentro del ambiente gráfico y después la respectiva funcionalidad de las GPO se encarga de replicar esto en todos los equipos y usuarios que se encuentren dentro de los grupos indicados.

*Nota: La forma como se replican las directivas tiene su propia ingeniería como lo mencioné más arriba, y debido a mi excases de conocimiento en su forma de trabajar, no puedo expandir más la explicación.

El proceso no suele representar mayores inconvenientes, hasta que sale una nueva versión o actualización –como el caso de 8.1- para el sistema operativo. Gracias a que las nuevas características requieren ser administrables en su totalidad, se crean más plantillas administrativas y por supuesto, al no estar incluidas originalmente en la versión del servidor, a menos que corresponda a la más actual, no hay cómo gestionar estas directivas por parte del área de IT.

El Central Store

Hay varios métodos que pueden o no ser soportados por Microsoft para poder actualizar las Plantillas Administrativas en el Controlador de Dominio; el más recomendado y productivo y recomendado, se llama Central Store, que no es más que configurar el Editor de Políticas para que no busque las plantillas en la ubicación local donde Windows predeterminadamente lo hace, sino que utilice un recurso compartido donde podemos ir pegando todos los nuevos archivos .admx para que las plantillas se actualicen y funcionen sin problema.

Las nuevas plantillas las podemos tomar de la última versión de Windows, sea Server o Client, pues residen en la ya referenciada carpeta C:\Windows\PolicyDefinitions. Aún así, poco tiempo después de que se libera un sistema operativo, también lo hacen las respectivas Plantillas Adminsitrativas para su descarga aparte.

La implementación de un Central Store es relativamente sencilla, pero como se debe tocar el Controlador de Dominio, es necesario tener mucho cuidado y quizá probar en un ambiente controlado antes de.

Requerimientos

- Debemos descargar los ADMX para la última versión del sistema operativo que deseamos soportar y adminsitrar a través de directivas. En este caso, como estamos hablando de Windows 8.1, las descargamos desde aquí:
http://www.microsoft.com/en-us/download/details.aspx?id=41193

Implementación

Antes que nada, cerramos el Administrador de Directivas de Grupo y el Editor si los tenemos abiertos.

De forma predeterminada, tal cual lo muestra la siguiente captura hecha desde un log de Process Monitor, Windows Server, cada que abre una GPO, va a buscar el Central Store en un recurso compartido que se crea desde la instalación del Controlador de Dominio:

image

En este caso, el dominio se llama winside.net, así que la ruta en que debería estar, es dentro de una carpeta llamada PolicyDefinitions también en:

\\winside.net\SysVol\winside.net\Policies

Noten que como en el caso de la captura, al obtener el NAME NOT FOUND que representa no encontrado, Windows intenta abrir la misma carpeta de forma local accediendo a la ruta:

C:\Windows\SYSVOL\sysvol\winside.net\Policies\PolicyDefinitions

Es exactamente la misma ruta que la de \domain mostrada más abajo.

Si no se encuentra la carpeta o sus archivos .admx, Windows procede a buscarlas en la ubicación predeterminada de C:\Windows\PolicyDefinitions y a seguir trabajando con ellas.

Lo que debemos hacer no es más que ayudarle a Windows a encontrar sus plantillas en la ruta compartida, pero antes, es necesario obtener todos los ADMX. Para esto, los descargamos desde el enlace proporcionado en los requerimientos y procedemos a la instalación (Next, Next, Next):

image

*Nota: El mínimo sistema operativo soportado es Windows Server 2008.

Una vez instaladas, abrimos el Explorador de Archivos y navegamos hasta:

C:\Program Files (x86)\Microsoft Group Policy\Windows 8.1-Windows Server 2012 R2

*Nota: Si tienen Server 2008, y un sistema de 32 bits, debe ser en Program Files y no Program Files (x86).

Hacemos clic derecho en la carpeta PolicyDefinitions y la Copiamos (Copy):

image

Abrimos la ventana de Ejecutar (Windows + R) y digitamos:

\\Dominio\SYSVOL\Dominio\Policies

Donde \\Dominio corresponde al nombre de nuestro dominio, por ejemplo, para este caso que utilizo winside.net, la ruta sería:

\\winside.net\SYSVOL\winside.net\Policies

image

Hacemos clic derecho en un espacio vacio y pegamos nuestra carpeta PolicyDefinitios:

image

Nos debe quedar junto con unas carpetas con nombre alfanumérico:

image

*Nota: Estas carpetas representan las GPO creadas, incluyendo las predeterminadas.

¡Todo listo! Para saber que nos quedó bien, basta con abrir el Editor de Directivas correspondiente a cualquier GPO creada, expandir el nodo de Policies y asegurarnos que cuando seleccionemos Administrative Templates, se indique que se están obteniendo desde un Central Store:

Pol6

Además de esto, y mucho más importante, debemos ver las nuevas plantillas administrativas correspondiente a la versión implementada. En este caso, todas las de Windows 8.1, por ejemplo:

image

Espero sea de utilidad.

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

Saludos.

Checho

Habilitar .NET Framework 3.5 para Windows 8/8.1 de forma automática con MDT 2013

Normalmente, en cada versión de Windows ha sido ya tradicional tener que instalar el .NET Framework que esté más actual; eso se conseguía descargando el instalador desde el sitio web de Microsoft y realizando el despliegue sin problemas.

Desde Windows 8, Microsoft habilitó el .NET Framework como característica, para que el usuario pueda desplegarlo más fácil, pero, predeterminadamente está habilitado el 4.5 y no el 3.5, que actualmente sigue siendo el más necesitado por la mayoría de aplicaciones de escritorio:

image

Por este motivo, nos toca regularmente proceder a habilitarlo, sea de forma manual o desde el asistente para que pueda funcionar todo con normalidad. Aunque no es muy difícil, es un proceso manual y tiende a volverse complejo cuando se están implementando muchas máquinas, a menos que se capture imagen maestra con la característica ya habilitada.

Afortunadamente, existe Microsoft Deployment Toolkit (MDT), solución gratuita lista para brindarnos una solución sencilla a la gran mayoría de problemas contemplados en una implementación de Windows. En este artículo, mostraré cómo podemos habilitar desde una Secuencia de Tareas fácilmente el .NET Framework 3.5 para que esté disponible una vez hayamos desplegado Windows.

*Nota: No entraré en detalle sobre configuración de MDT, ni de sus componentes, pues esto ya lo he documentado en otros artículos:

Implementación básica de Windows 8 con MDT y WDS (Sigue aplicando para 8.1).

Desplegar aplicaciones con Secuencias de Tareas.

Instalación desatendida de Windows 8.1 con MDT.

Requerimientos

Solo necesitamos tener ya implementado Microsoft Deployment Toolkit (MDT) 2013, con el ADK correspondiente a Windows 8.1.

*Nota: En los anteriores artículos se muestra el paso a paso.

Creando y personalizando Secuencia de Tareas

En nuestro equipo técnico donde está instalado MDT, abrimos el Deployment Workbench, expandimos nuestros recurso compartido, hacemos clic derecho en Task Sequences y seleccionamos New Task Sequence:

image

En la página de General Settings, rellenamos los datos correspondientes al Task Sequence ID, nombre y descripción y clic en Next:

image

En la página de Select Template, dejamos Standard Client Task Sequence y clic en Next:

image

En la página de Select OS, escogemos nuestro sistema operativo a implementar y clic en Next:

image

En la página de Specify Product Key, decidimos si indicar un código de producto o no y clic en el botón Next:

image

En la página de OS Settings, especificamos la información referente a registro y clic en el botón Next:

image

En la página de Admin Password, decidimos si dejarle contraseña al administrador o no y clic en Next:

image

En la página de Summary, clic en Next.

En la página de Confirmation, clic en Finish para terminar.

Nos debe quedar la Secuencia de Tareas listada en el nodo de Task Sequences:

image

Modificando las propiedades

Hacemos doble clic sobre la Secuencia de Tareas creada, y en la ventana de Propiedades, nos pasamos a la pestaña Task Sequence:

image

En toda la lista de tareas, seleccionamos el nodo de Custom Tasks, hacemos clic en el botón superior de Add > Roles > Install Roles and Features

image

Quedará agregado debajo del nodo de Custom Tasks. Debemos seleccionarlo, y en el panel derecho, seleccionar Windows 8.1 como sistema operativo, habilitar .NET Framework 3.5 y cambiar el nombre a algo más diciente para nosotros:

Untitled2

Cuando habilitamos la tarea de Install Roles and Features, el asistente de instalación nos la volverá a mostrar y como no la necesitamos, es necesario obviar esta página.

Para esto, hacemos clic derecho en nuestro Deployment Share y seleccionamos Properties:

image

Nos situamos en la pestaña de Rules y debajo de todas las configuraciones que hayamos establecido, ponemos: SkipRoles=YES

image

Aplicamos y aceptamos para guardar los cambios.

Actualizando Deployment Share

Nuestro último paso es hacer clic derecho sobre el Deployment Share que hayamos creado y seleccionar Update Deployment Share:

image

En la página de Options, dejamos la selección predeterminada y clic en Next:

image

En la página de Summary, clic en Next.

En la página de Confirmation, clic en el botón Finish para terminar.

Probando instalación

Esto es todo. Lo que nos queda es implementar Windows 8.1 utilizando MDT y WDS como lo expliqué en el post básico y asegurarnos que el .NET Framework 3.5 y cualquier otra característica que hayamos habilitado esté instalada.

Probablemente veamos el asistente de instalación de MDT indicando la tarea:

image

Después de terminado, podremos verlo en Activar o desactivar características de Windows:

image

Espero sea de utilidad.

Saludos.

Checho

El dilema con la configuración del Servidor Proxy para Internet Explorer 10/11, las teclas F5-F8 y su solución

Hace unos días me encontraba visitando una empresa local, con el objetivo de revisar algunos inconvenientes y dudas que tenían con la migración a Windows 8.1; uno de los que más me llamó la atención y que en definitiva fue la razón para escribir este post, fue el problema que estaban teniendo para que la configuración del Proxy se estableciera correctamente en Windows 8/8.1, es decir, para Internet Explorer 10 y 11.

Recordemos que un servidor proxy, en su definición básica, sirve como un intermediario entre el equipo y la conexión a internet. Normalmente, y en conjunto con algún tipo de firewall o protección adicional, se utiliza como barrera para el tráfico de internet bloqueando sitios que no son confiables o deseados.

Como no es algo nuevo, la configuración del proxy ha existido por años para hacerse de forma manual desde las Opciones de Internet Explorer, pestaña Conexiones, botón de Configuración de LAN:

image

Así mismo, a través de las Directivas de Preferencias de Grupo por el lado del Controlador de Dominio, para que todos los equipos unidos al dominio y que estén tomando la determinada plantilla se les aplique la misma configuración.

image

El problema

Una vez la empresa empezó a probar sus directivas en los equipos Windows 8/8.1, que vienen con Internet Explorer 10 y 11 respectivamente, se dio cuenta que las configuraciones del proxy no se estaban tomando, sin importar cómo se actualizaran desde el cliente; es decir, reiniciando o ejecutando manualmente el Gpupdate /Force.

Aunque Microsoft esté impulsando ahora todo lo que es administración centralizada de IE, utilizando el Internet Explorer Administration Kit (IEAK), la configuración desde las Preferencias aún están soportadas y de hecho documentadas para este caso en una KB oficial: http://support.microsoft.com/kb/2898604/en

Recurrir entonces a cambios en el Registro, o implementación de Scripts puede llegar a ser sencillo, pero no necesariamente recomendado y productivo para cada problema.

La causa

Por lo general, los métodos brindados por las KB de Microsoft son muy efectivos, y no es muy común encontrar fallos muy grandes o datos faltantes, pero era la única opción que tenía en este caso. Había que encontrar qué era lo que no estaba documentado.

De tanto andar, me encontré por fin este artículo del Equipo de Producto encargado de las Directivas de Grupo (¡Los que saben del asunto!):
http://blogs.technet.com/b/grouppolicy/archive/2008/10/13/red-green-gp-preferences-doesn-t-work-even-though-the-policy-applied-and-after-gpupdate-force.aspx

Si lo ven, no habla necesariamente de las configuraciones del proxy, pero sí de una característica propia de las Preferencias de Directivas de Grupo, que en explicación muy básica, hace referencia a que todo lo que aparezca con una línea puntiaguda roja, o círculo también rojo dentro de las Directivas, será completamente ignorado por la GPO y no lo forzará en los equipos de destino. Por el contrario, si la configuración aparece con línea o círculo verde, será capturada por la GPO y aplicada a todos los equipos.

Para entender mejor la anterior explicación, y continuar con el objetivo del post, basta con crear precísamente una nueva preferencia de Internet Settings, ir a la pestaña de Conexiones y botón Configuración de LAN. Noten que los dos colores aparecen:

Untitled

En este ejemplo, si se selecciona que se tomen automaticamente todas las configuraciones, y que se use un servidor Proxy, los equipos clientes lo aplicarán, pero la dirección del proxy será ignorada completamente.

En este orden de ideas, Internet Explorer 10 y 11 nunca recibirán la dirección adecuada del proxy desde las Directivas de Grupo.

La solución

Afortunadamente, esta característica de las Preferencias de Directivas de Grupo es completamente personalizable, y basta con utilizar alguna tecla desde F5 hasta F8.

Si presionamos la tecla F5, todas las configuraciones que estén en la ventana actual se volverán verdes y por ende se tomarán.

Si presionamos F6, solo la personalización donde estemos situados cambiará a verde y se tomará, así el resto esté en rojo.

Si presionamos F7, sucede lo mismo que con F6, pero no se cambiará a verde sino a color rojo; es decir, será ignorada.

Si presionamos F8, todas las configuraciones y personalizaciones serán ignoradas cambiando a color rojo.

Para solucionar el problema de que IE10/11 no tomen la configuración del proxy, o específicamente su dirección o exepciones, tendríamos que hacer lo siguiente:

Crear la nueva preferencia, navegando hasta:

User Configuration\Preferences\Control Panel Settings\Internet Settings

Clic derecho en Internet Settings > New > Internet Explorer 10

image

En la ventana de propiedades, navegar hasta la pestaña de Connections, y clic en el botón de LAN Settings.

Habilitar Proxy Server, situarnos con el puntero en el cuadro de texto de Address y presionar la tecla F6 para que cambie de línea puntiaguda roja a línea verde. Después de esto, símplemente hacer las configuraciones según preferencia:

image

Aceptar todo y listo. Nuestro equipo con Internet Explorer 10 u 11 debe tomar – después de reiniciar o ejecutar Gpupdate- todas las configuraciones del proxy sin problemas.

Migrar un solo usuario de dominio desde XP a Windows 8.1 (32 o 64 bits) utilizando User State Migration Tool (USMT)

Estamos desde hoy, 26 de febrero de 2014, a 40 días exactos para el fin de soporte definitivo de Windows XP por parte de Microsoft. Debido a esto y a que tener instalado XP en máquinas de última tecnología representa una gran pérdida de recurso invertido, muchas compañías alrededor del mundo están en proceso de migración a Windows 7 u 8.1.

Existen varias tecnologías Microsoft y no Microsoft que facilitan y ayudan a esta tarea, pero además, nacen distintas necesidades dentro de la organización en cuanto a migración de perfiles se refiere, pues suele ser una de las tareas más críticas junto con la compatibilidad de aplicaciones y la adopción del nuevo sistema operativo.

Hoy explicaré paso a paso cómo podemos migrar un solo usuario de dominio desde XP a Windows 8.1 utilizando las Herramientas de Migración de Estado de Usuario (USMT) integrada en el ADK para Windows 8.1.

Requerimientos

- Un equipo técnico donde haya un recurso compartido para almacenar todos los datos del perfil. En este caso, mostraré el procedimiento con un recurso compartido llamado Profiles. La ruta de red completa sería: \\DC\Profiles

- Tener instalado en el equipo técnico el ADK para Windows 8. Lo pueden descargar desde aquí: http://www.microsoft.com/en-us/download/details.aspx?id=30652

*Importante: Es necesario además descargar el ADK para Windows 8.1, pues se deberán utilizar las herramientas del USMT. Lo pueden bajar desde aquí:
http://www.microsoft.com/es-co/download/details.aspx?id=39982

- Un equipo con Windows XP donde resida el perfil de dominio.

- Un equipo de referencia donde se vaya a instalar Windows 8.1 y posteriormente migrar el usuario y su contenido.

Capturando estado de usuario

Copiando archivos necesarios

Lo primero que tenemos que hacer es copiar los archivos necesarios de USMT al equipo con Windows XP, y poder capturar todos sus datos. Para esto, copiamos la carpeta “x86” con los archivos desde el equipo técnico donde se instaló el ADK para Windows 8, ubicados en:

C:\Archivos de Programa (x86)\Windows Kits\8.0\Assessment and Deployment Kit\User State Migration Tool\x86

*Nota: Si el ADK se instaló en un equipo que no es de 64 bits, sería Archivos de Programa y no Archivos de Programa (x86).

Debemos iniciar sesión con una cuenta Administrativa, sea local o de dominio en Windows XP y pegar ahí el directorio x86. En mi caso, la pegué en la raíz del disco C:\

image

Ejecutando ScanState

Recordemos que ScanState se encarga de capturar todo lo referente al perfil de usuario en la máquina que será migrada; en este caso, lo utilizaremos para capturar el perfil de nuestro Windows XP.

Recordemos que es normal en un equipo de oficina, o más aún de hogar, que existan otras cuentas de usuario con sus propios archivos y configuraciones; por ejemplo, para mi caso existen varias cuentas:

XP1

Predeterminadamente, ScanState captura todos los perfiles pero, en mi caso estoy interesado solo en el de Andy Clayton (aclayton), así que es necesario referenciar cómo identifica Windows a su perfil y proceder con lo siguiente:

1. Lo primero que debemos hacer es iniciar sesión en el equipo con una cuenta de Administrador, sin importar que sea local o de dominio. Para mi caso, inicié sesión con la del Dominio: WINSIDE\Administrator.

2. Hacemos clic en Inicio > Todos los programas > Accesorios > Símbolo del Sistema.

3. Navegamos hasta la ruta donde están los archivos de USTM; en mi caso, como los copié en C:\x86, el comando sería: cd C:\x86\

image

4. Nos conectamos a la ruta de red asignando alguna letra de unidad que no esté en uso, por ejemplo: X:\. El comando sería:

Net Use X: <RutaPerfil>

Donde <RutaPerfil> representa la carpeta compartida donde se alojará el o los perfiles. En mi caso, quedaría: Net Use X: \\DC\Profiles

5. Finalmente, y es cuando llega la magia, ejecutamos:

scanstate X:\ /ue:*\* /ui:<Dominio\Usuario> /i:migdocs.xml /i:migapp.xml /o

Donde <Dominio\Usuario> corresponde a nuestro usuario a migrar, en mi caso:
WINSIDE\aclayton.

El comando para mí quedaría entonces:

scanstate X:\ /ue:*\* /ui:WINSIDE\aclayton /i:migdocs.xml /i:migapp.xml /o

image

*Nota: Lo que hacen los argumentos de ScanState es básciamente excluir a todos los usuarios, especificar el único usuario a migrar, garantizar que se vayan todas los archivos y configuraciones para las aplicaciones y sobrescribir cualquier dato anterior igual. Todos los argumentos están explicados en la documentación de Microsoft:
http://technet.microsoft.com/en-us/library/hh825093.aspx

*Nota 2: Se puede migrar más de un usuario a la vez; basta con agregar otro argumento de /ui: e indicar el usuario, por ejemplo: /ui:winside\aclayton /ui:winside\sercal

El proceso es generalmente muy rápido, pero dependerá mucho de qué tanto deba copiar ScanState a la ruta de red.

Migrando estado de usuario

Copiando archivos necesarios

Como lo mencioné en los Requerimientos, ya en el equipo Windows 8.1, sea el mismo o diferente donde se migrará el perfil de dominio, es necesario copiar los archivos de USMT, pero correspondientes a la versión del ADK propia de Windows 8.1, no de Windows 8 como hicimos en Windows XP.

En este orden de ideas, tendrían que instalar el ADK para Windows 8.1 quitando previamente el de 8, o desplegando en otro equipo y copiar la carpeta x86 o amd64 de la ruta:

C:\Archivos de Programa (x86)\Windows Kits\8.0\Assessment and Deployment Kit\User State Migration Tool\

*Nota: Si el ADK se instaló en un equipo que no es de 64 bits, sería Archivos de Programa y no Archivos de Programa (x86).

Obviamente, después de que el equipo Windows 8.1 esté unido al dominio, es necesario iniciar con una cuenta administrativa, ojalá del mismo dominio y copiar toda la carpeta a una ruta de fácil acceso. Lo más fácil vuelve a ser copiarla en la raíz del disco.

En mi caso, que estoy migrando a un equipo Windows 8.1 Enterprise x64, me quedaría como: C:\amd64

image

Ejecutando LoadState

LoadState, similar a ScanState, se encarga de migrar todo el perfil, su información y configuración de aplicaciones en el equipo donde se ejecute.

En este caso, para migrar el perfil de Andy Clayton (aclayton) y todas sus configuraciones, haremos lo siguiente:

1. Iniciar sesión con la cuenta administrativa.

2. Clic derecho en el botón de Inicio > Símbolo del Sistema (administrador)

3. Navegamos hasta la ruta donde copiamos los achivos de USMT; en mi caso, como fue a C:\amd64, el comando sería:

cd C:\amd64\

image

4. Nos conectamos a laruta de red asignando alguna letra de unidad que no esté en uso, por ejemplo: X:\. El comando sería:

Net Use X: <RutaPerfil>

Donde <RutaPerfil> representa la carpeta compartida donde se alojará el o los perfiles. En mi caso, quedaría: Net Use X: \\DC\Profiles

5. Procedemos a migrar nuestro perfil ejecutando:

loadstate X:\ /i:migdocs.xml /i:migapp.xml

image

Antes de proceder a iniciar con el usuario, nos podemos desconectar de la ruta de red ejecutando: Net Use X: /DELETE

image

Probando migración

Nuestro último gran paso, es finalmente iniciar sesión con el usuario migrado para que se active por primera vez en la máquina ya con todo su contenido y personalizaciones.

Para comparar utilizando el usuario que mostré en este artículo, así lucía el escritorio:

image

Una vez iniciado sesión en Windows 8.1 después de la migración, así luce su escritorio desde la primera vez:

image

¡Terminamos! Como ven, una migración sencilla y sin mayores dolores de cabeza. Por supuesto, es ideal utilizar a herramientas que nos faciliten este proceso como MDT para además replicarlo en muchos equipos.

*Notas finales:

- Es primordial capturar utilizando ScanState (6.2) del ADK para Windows 8 si se va a tomar de XP, puesto que el ScanState (6.3) del ADK para Windows 8.1 no es compatible para Windows XP. En el artículo lo indiqué, pero no está de más recordarlo.

- Como seguramente lo notaron, yo migré desde un Windows XP SP3 de 32 bits en inglés, a un Windows 8.1 de 64 bits en español. Esto me indica que no hay problemas por arquitecturas o idiomas.

- La mayor cantidad de configuraciones en Windows y para las aplicaciones se migran sin problemas. El fondo de pantalla también habría pasado, pero lo ideal es administrarlo a través de Directivas de Grupo.

En próximos artículo tocaré otros escenarios interesantes de USMT que probablemente les sea de utilidad.

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

Saludos,

Checho

[How to] Eliminar todas imágenes de usuario establecidas en Windows 8.1

Hace casi un par de meses, escribí un artículo mostrando cómo –de una forma no soportada-, podríamos restablecer los fondos de bloqueo predeterminados de Windows 8.1, debido a que a diferencia de Windows 8, la actualización no permitía hacerlo con un simple clic derecho, por ejemplo.

Aunque el post tuvo buena acogida, he visto a través de los Foros la misma duda pero con las imágenes de cuenta establecidas por cada usuario, y, a pesar de que el procedimiento es muy similar, decidí documentarlo también puesto que se deben manipular otros directorios, tanto a nivel de archivos, como de Registro de Windows.

Desde versiones anteriores, Windows ha permitido a cada usuario que inicie sesión cambiar la imagen que lo representa, llamada imagen de usuario; esto aplica independiente si es usuario de dominio o local, pues es una configuración que solo afecta a la cuenta.

En Windows 8 y continuando en 8.1, esto cambió y un poco, pues a pesar de que el usuario varía de la misma forma que lo hacía en versiones anteriores, ahora hay una previsualización de todas las que ha establecido (tal cual la pantalla de bloqueo) para que las cambie cuando desee:

image

*Nota: Incluso se puede poner un pequeño video animado utilizando nuestra cámara web.

Lamentablemente, no es posible eliminar ninguna imagen, a menos que sea remplazada por otra. En este artículo mostraré el paso a paso para limpiar todas las imágenes de usuario y volver a la configuración predefinida de Windows sin ninguna establecida.

Requerimientos:

- Descargar las herramientas de PsTools de Sysinternals desde aquí:
Download PsTools Suite

- Descomprimir y copiar PsExec.exe y PsGetsid.exe a la carpeta C:\Windows\System32.

image

*Nota: Esto nos permitirá ejecutarlas desde cualquier parte, tal cual una herramienta embebida de Windows.

Eliminando entradas de Registro

Como Windows relaciona casi todo lo correspondiente a cada cuenta y equipo a través del SID, es necesario saber cuál corresponde al nuestro usuario. Para esto:

- Hacemos clic en el botón de Inicio, y seleccionamos Símbolo del Sistema (administrador):

image

- En la consola, ejecutamos:

PsGetSid <NombreUsuario>

Donde <NombreUsuario>, corresponde al nombre que tiene nuestra cuenta. Esto nos dará el SID correspondiente a nuestro usuario, por ejemplo, en mi caso el usuario de domino se llama andyc, así que el comando quedaría:

PsGetSid.exe andyc

image

*Nota: Deben aceptar los términos de licencia de cada herramienta de Sysinternals al ejecutarla por primera vez.

Como ven, el SID correspondiente a mi usuario andyc, sería:

S-1-5-21-2084099561-754439519-3315470357-1106

Ese SID es el que se debe referenciar en los siguientes pasos.

Volvemos a la consola, cerrarmos el Editor de Registro –si está abierto- y ejecutamos:

PsExec.exe –SID Regedit.exe

image

Esto nos debe abrir el Editor de Registro de Windows con privilegios de usuario SYSTEM. De esta forma, tendremos completos privilegios sobre las claves, sub-claves y valores. (Con algunas excepciones). Dejamos la consola abierta.

Desde el Editor de Registro, navegamos hasta:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\<SID>

Donde HKLM corresponde a HKEY_LOCAL_MACHINE y <SID> es nuestro SID identificado con PsGetSid en los pasos anteriores. En mi caso, sería:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users
\S-1-5-21-2084099561-754439519-3315470357-1106

image

*Nota: Es de vital importancia seleccionar el SID correspondiente a nuestro usuario, de otra forma, borraremos las imágenes de otros usuarios.

En el lado derecho, seleccionamos los cinco (5) valores que empiezan por Image#, hacemos clic derecho y Eliminar:

image

Cerramos el editor de Registro.

*Nota: Si hay acceso denegado, es porque no estamos ejecutando correctamente el Regedit con los privilegios de SYSTEM.

Eliminando imágenes de usuario

Nuestro siguiente paso, es volver nuevamente a la consola y ejecutar:

PsExec.exe –SID cmd.exe

image

Tal cual sucedió con el Editor de Registro, se nos abrirá el Símbolo del Sistema pero esta vez, tendrá completos privilegios de SYSTEM.

Desde la nueva consola ejecutamos:

cd C:\Users\Public\AccountPictures\<SID>

Donde <SID> corresponde al SID identificado en los primeros pasos con PsGetSid. Para mi caso, sería:

cd C:\Users\Public\AccountPictures\S-1-5-21-2084099561-754439519-3315470357-1106

image

*Nota: Esta carpeta y su contenido se encuentran ocultos y protegidos por el sistemas, así que sería necesario mostrar todo desde las opciones del Explorador de Windows para poder verla. Aquí es donde se almacena la imagen actual que el usuario tiene establecida en diferentes tamaños:

image

Desde la consola, ejecutamos:

Del *.* /Q /A RS

image

*Nota: Se utiliza *.* para referirse a todos los archivos, /Q para que no pida confirmación, y /A junto con RS, se encarga de tener en cuenta atributos de solo lectura y del sistema.

Pueden confirmar la eliminación volviendo a la carpeta desde el Explorador:

image

Por último, y esto si es desde el Explorador de Windows, navegamos hasta la ruta:

C:\Users\<NombreUsuario>\AppData\Roaming\Microsoft\Windows\Imágenes de Cuenta

Donde <NombreUsuario> corresponde al nombre asignado para nuestra cuenta. En mi caso, que se llama andyc, sería:

C:\Users\andyc\AppData\Roaming\Microsoft\Windows\Imágenes de Cuenta

*Nota: La ruta en inglés sería:

C:\Users\andyc\AppData\Roaming\Microsoft\Windows\AccountPictures

Allí veremos cada una de las imágenes que se han agregado en un tamaño más pequeño y con un nombre aleatorio que ni siquiera se muestra:

image

Desde aquí es que Windows lee y muestra la vista previa cuando vamos a Imágenes de Cuenta en la aplicación de Configuración de PC.

Seleccionamos todas, hacemos clic derecho, Eliminar:

image

Reiniciamos el sistema operativo, ¡y listo! Al entrar nuevamente, si vamos a nuestras imágenes de cuenta, veremos que no hay ninguna importada:

image

*Nota final: En caso de que deseen solo eliminar la previsualización de las otras imágenes, bastaría con seguir el último procedimiento.

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

Saludos,

Checho

El mensaje (cef-error) que no dejaba de aparecer, Process Explorer, Process Monitor, Autoruns y su solución

Como es costumbre, me gusta mucho documentar aquí los diferentes problemas que logro resolver; vengan de clientes, de eventos, de los Foros de Microsoft Community, o de un amigo. Desde que represente un reto y posteriormente se refleje en una satisfacción, vale mucho la pena para mí, pues me entrega nuevas enseñanzas.

Hoy les traigo uno que probablemente sea muy común, así que les puede ayudar a los que lleguen aquí por causalidad buscando una solución.

El problema

Hace unos días, un amigo me enseñó un equipo que recién había actualizado a Windows 8.1, en el que constantemente aparecía un mensaje extraño similar al siguiente:

D4

Español: No hay aplicaciones instaladas para abrir este tipo de vínculo (cef-error).

Inglés: No apps are installed to open this type of link (cef-error).

El mensaje continuaba apareciendo cada determinada cantidad de minutos y después de hacer clic afuera del mensaje, éste desaparecía. Al no poder controlarlo, se volvía una inconformidad bastante grande, pues no dejaba trabajar cómodamente.

En la barra de tareas de Windows no se reflejaba ningún proceso como suele ocurrir con mensajes similares, así que era más difícil de empezar a diagnosticar. ¿Qué se podía hacer?

La causa

Lo primero que personalmente hago cuando no puedo identificar una ventana en ejecución, es por supuesto, llamar a Process Explorer de Sysinternals. Basta con hacer clic en el botón de la barra de herramientas llamado Find Window’s process, arrastrarlo hasta la ventana y soltar; de esta forma, Process Explorer mostrará el proceso asociado:

image

Esto fue lo que hicimos con el mensaje del problema, pero desafortunadamente, el proceso que lo llamaba, era OpenWith.exe del propio sistema operativo:

image

Poder seguir el comportamiento con Process Explorer era muy complicado, pues la ventana solo se mantenía hasta hacer clic en alguna otra parte así que fácilmente desaparecía el proceso y toda su información desde Process Explorer. La solución entonces, como no puede ser otra, era recurrir a Process Monitor, también de Sysinternals.

Como el mensaje aparecía pasados determinados minutos, ejecutamos Process Monitor un poco antes, esperamos a que la ventana apareciera y luego de que se ocultara otra vez, paramos el monitoreo para empezar a indagar en todo el log.

Al principio es siempre complicado, pues cuando no sabes qué estás buscando, dependerá mucho el filtro o palabra clave que utilices para dar con la causa; de otro modo, Process Monitor no servirá. Buscamos entonces por OpenWith.exe, pero las llamadas que se hacen a este proceso eran muchísimas, así que habríamos necesitado otro log funcional donde pudiéramos comparar. El árbol de proceso tampoco funcionaba, ya que el OpenWith.exe aparecía tal cual en Process Explorer y no había línea de comandos que lo llamara.

Desechada ese proceso, recordé –un poco antes de darme por vencido-, lo que aparecía en el paréntesis de la ventana, es decir: cef-error. Retomé yo el log de Procmon y después de buscar de arriba hacia abajo la primera llamada que se le hiciera a eso, me encontré con un resultado muy interesante:

image

El proceso Softonic.exe, estaba tratando de abrir una clave llamada cef-error en:

HKEY_CURRENT_USER\Software\Classes\

Sin embargo, el resultado era NAME NOT FOUND; es decir, la clave no existía.

Hasta aquí no me parecía lógico que por una consulta al Registro se pudiese abrir el proceso de OpenWith.exe que finalmente mostraba el mensaje extraño, pero encontraba muy extraño y sospechoso el proceso de Softonic.exe, debido a que es normal que aplicaciones de terceros causen este tipo de comportamientos en Windows.

Había que centrarnos en Softonic, así que filtré en Process Monitor (CTRL + L) para que mostrar todo lo referente al nombre de proceso Softonic.exe:

D6 

Casi todos los resultados que contenían el cef-error estaban asociados a Softonic.exe, así que lo único que me faltaba descubrir era en qué momento llamaba a OpenWith.exe. Lo que hice entonces fue buscar nuevamente ese proceso dentro del filtro de Softonic y esto fue lo que encontré:

image

No entiendo casi nada de objetos COM, pero según la documentación de MSDN sobre LocalServer32, el contenido de esa clave hace referencia a una aplicación asociada para lanzarse. El valor Default representa la ruta del ejecutable, y ServerExecutable los parámetros.

En pocas palabras, Softonic.exe estaba tratando de abrir la clave de cef-error desde muchas ubicaciones, pero como solo tenía asociado la ruta de OpenWith.exe y la clave no existía, Windows estaba lanzando el proceso, que terminaba con la extraña ventana.

Para poder corroborar que era Softonic, lancé Autoruns de Sysinternals y en la pestaña de Logon, me di cuenta que Softonic.exe era una de las aplicaciones que iniciaban con Windows:

image

Le pedí al amigo que lo deshabilitara y reiniciara para ver qué sucedía y, en efecto, el mensaje no aparecía nuevamente.

La solución

Es realmente muy sencillo; si no desean quitar completamente Softonic, deben hacer lo siguiente:

- Descargar Autoruns.

- Descomprimir, clic derecho en autoruns.exe y “Ejecutar como administrador”.

- Al cargar, ir a la pestaña de Logon y ubicar la entrada de Softonic for Windows.

- Limpiar la casilla de selección para deshabilitar la entrada.

- Reiniciar el equipo.

Si no les interesa tener Softonic, basta con ir al Panel de Control y desinstalar Softonic for Windows para luego reiniciar y listo.

Espero les sea de utilidad.

Saludos,

Checho

Instalación desatendida de Visual Studio 2013 utilizando MDT 2013

El proceso de automatización a la hora del despliegue de aplicaciones es muy importante por dos razones:

1) Te ahorras tiempo consumido en asistente de instalación.

2) Estandarizas tanto el proceso como la configuración durante la instalación; de esta forma, dejas menos posibilidad al error.

En aplicaciones pequeñas y de rápida instalación como WinRAR o 7Zip, suele ser bastante simple la implementación desatendida, pues la configuración estándar es suficiente en la gran mayoría de ocasiones; sin embargo, no pasa lo mismo con soluciones más complejas como las de Adobe, o como en este caso, la suite de Visual Studio. Normalmente, aunque el asistente no es muy largo, se instalan componentes según la necesidad de la compañía de desarrollo.

Así luce el proceso de instalación de la última versión de Visual Studio 2013:

image

Hoy veremos cómo podemos automatizar el proceso de instalación de Visual Studio y además, la forma de distribuirlo a través de MDT, sea con una Secuencia de Tareas para aplicaciones o de implementación de sistema operativo.

Requerimientos

1. Es necesario tener el DVD o imagen ISO para instalación de Visual Studio 2013. No importa mucho la edición, pues si bien hay componentes que varían, el proceso es realmente el mismo.

2. [Para instalación desde MDT]: Un equipo en el que hayamos montado y configurado MDT 2013 Update 1 y WDS para implementación masiva.

*Nota: Pueden ver el procedimiento básico para tener MDT y WDS en el siguiente artículo:
http://geeks.ms/blogs/checho/archive/2013/02/05/implementaci-243-n-b-225-sica-de-windows-8-con-mdt-2012-update-1-y-windows-deployment-services.aspx 

Se creó para MDT 2012, pero no hay mayor variación.

3. Crear una carpeta en el equipo técnico en el directorio C:\ llamada VStudio. Es decir, quedaría: C:\VStudio

4. Copiar todos los archivos de instalación de Visual Studio desde el medio a la carpeta C:\VStudio

5. Tener habilitado el .NET Framework en todos los equipos de destino.


*Nota: Podemos automatizar el 3 y 4 paso de la siguiente forma:

En el equipo técnico, abrimos un Símbolo del Sistema con privilegios elevados y ejecutamos:

mkdir C:\VStudio

xcopy <UnidadVS>:\*.* /s/e/f C:\VStudio

Donde <UnidadVS> se refiere a la letra correspondiente al medio de Visual Studio. Por ejemplo, en mi caso sería D:\ así que el comando quedaría:

xcopy D:\*.* /s/e/f C:\VStudio

Con el comando de mkdir, se vería:

VS1


Modificando el XML de respuesta

Tal cual funciona con Windows y varias soluciones que incluyen diferentes configuraciones como Hyper-V, Visual Studio siempre busca un tipo de archivo de respuesta XML durante su instalación; esto es fácilmente comprobable utilizando Process Monitor:

image

Como ven, el proceso vs_premium.exe, que representa el instalador de Visual Studio Premium en este caso, trata de buscar y abrir el archivo AdminDeployment.xml ubicado en el directorio packages de instalación; pero, obtiene un resultado de NAME NOT FOUND indicando que el archivo no existe.

Debido a que el asistente de instalación no encuentra el XML para recibir respuestas en cuanto a la personalización, procede a mostrar todo y funcionar de manera predeterminada; es decir, muestra el pequeño asistente de la primera captura donde escogemos los componentes adicionales a desplegar.

*Nota: Si la edición es Ultimate, el nombre del instalador será vs_ultimate.exe, así que debemos tener muy presente eso para los próximos pasos.

Aunque esta parte de configuración está basada en la documentación oficial de MSDN para realizar la instalación desatendida, haremos el despliegue de un modo más sencillo, aprovechando el comportamiento natural del asistente que nos mostró Process Monitor.

El archivo en cuestión, como lo referencié en la captura, se llama AdminDeployment.xml y, de forma predeterminada, se encuentra en los archivos de instalación de Visual Studio. En este orden de ideas, cada uno lo debe tener en la carpeta VStudio donde copió todo:

image

Debemos seleccionar el archivo, hacer clic derecho en él y seleccionar Editar.

image

El contenido del XML se basa en dos aspectos: El modo de visualización de cada uno de los componentes; es decir, si se encuentra oculto o no y, verificar que esté o no seleccionado para instalarse. La primera parte tiene un aspecto similar al siguiente:

image

Las dos configuraciones se encuentran dentro de la etiqueta SelectableItemCustomization.

Antes de proceder a estos cambios, es necesario cambiar el atributo del valor NoWeb en las primeras líneas del XML de “default” a “yes”. De esta forma impediremos que se abra alguna página web después de la instalación de Visual Studio.

En otras palabras, debemos cambiar la siguiente línea:

<BundleCustomizations TargetDir="default" NoWeb="default"/>

Por esta configuración:

<BundleCustomizations TargetDir="default" NoWeb="yes"/>

*Nota: El valor TargetDir, hace referencia a la ruta de instalación así que no es necesario cambiarla.

Los componentes que normalmente debemos seleccionar mientras realizamos la instalación, que mostré en la primera captura, se ubican en el primer párrafo de los elementos a personalizar, así que es mucho más sencillo el trabajo.

Debemos cambiar todos los Hidden que estén en “no”, a su respectivo “yes” para que no se vean en el asistente; después, es necesario cambiar todos los Selected que tengan “no” también a “yes”, exceptuando los que deseamos instalar.

Por ejemplo, en mi caso oculté todos (Hidden), pero dejé seleccionado solamente el VC_MFC_Libraries, que hace referencia al componente de Microsoft Foundation Classes for C++.

El archivo queda así:

VD5

Cada uno debe tener una configuración similar, pero varía los elementos a instalar, pues hay quienes requieren que componentes como Blend o SQL Data Tools se instalen también.

*Nota: La cantidad de componentes que aparecen depende mucho de la edición de Visual Studio que estén desplegando.

Al terminar, hacemos clic en el menú Archivo (File) del Bloc de Notas y Guardar (Save).

Después de esto, seleccionamos el AdminDeployment.xml, lo copiamos y lo pegamos dentro de la carpeta packages ahí mismo en los archivos de instalación:

image

Con esto, el trabajo más duro en la automatización está terminado, aunque aún no aseguramos la instalación desatendida, pues nos falta la configuración dentro de MDT que pasaré a explicar.

Importando y configurando la aplicación en MDT

Nuestro siguiente paso es agregar todos los archivos de instalación de Visual Studio a MDT, para después indicar el parámetro correcto con el fin de que el despliegue sea totalmente desatendido.

En el equipo técnico donde tengamos MDT 2013 U1 instalado, abrimos el Deployment Workbench como administrador, expandimos nuestro Deployment Share, hacemos clic derecho en el nodo de Applications y seleccionamos New Application:

image

En la página de Application Type, dejamos la selección de Application with source files y clic en el botón Next.

En la página de Details, rellenamos los datos correspondientes para la aplicación, que en este caso sería Visual Studio y clic en Next:

image

En la página de Source, clic en el botón Browse y buscamos la ruta donde copiamos los archivos de Visual Studio, que para este artículo fue C:\VStudio. Hacemos clic en el botón Next.

image

En la página de Destination, dejamos el nombre predeterminado según los datos que hayamos llenado en la primera página y clic en Next.

En la página de Command Details, debajo de Command line, es necesario escribir el nombre del instalador pero además, los parámetros restantes para que nuestra instalación sea totalmente desatendida. El comando debe ser:

<InstaladorVisual.exe> /quiet /norestart

Donde <InstaladorVisual.exe> corresponde al nombre original que tiene el archivo de instalación de nuestro medio y que varía según la edición. En este caso, como estoy desplegando la Premium, el comando sería:

vs_premium.exe /quiet /norestart

VD6

Clic en el botón Next.

*Nota: Según la documentación oficial de MSDN, es necesario indicar el parámetro de /adminfile para especificar dónde está el XML que configuramos previamente, pero, como nosotros etamos tomando ventana de la búsqueda que siempre realiza el asistente de instalación a la carpeta de packages en los archivos de instalación, podemos obviar ese parámetro y solo indicar /quiet y /norestart para no tener interacción con el proceso.

En la página de Summary, clic en Next.

Debe realizar todo el importe de la aplicación en la página de Progress y, en la página de Confirmation al terminar, clic en el botón Finish.

La aplicación nos debe quedar listada en el nodo de Applications si todo salió bien:

image

¡Todo listo! Nuestro último paso dentro del Deployment Workbench es crear una Secuencia de Tareas para distribuir, sea para aplicaciones solamente, o bien, para instalación junto con el sistema operativo.

*Nota: No escribiré aquí el proceso nuevamente para crear estas secuencias de tareas, porque ya está documentado en los siguientes artículos del blog:

Desplegar aplicaciones con secuencias de tareas.

Implementación básica de Windows 8 con MDT y WDS.

Comprobando instalación

Sea cual sea el proceso que hayan escogido para desplegar el Visual Studio a través de MDT, deben tener un proceso similar mientras realiza la instalación en el equipo cliente, pues la ventana del asistente de MDT debe informar el estado de instalación:

image

Con el procedimiento anterior, esta debería ser la única ventana que veamos, sin importar el método de implementación escogido.

Al terminar, debemos poder ver en el Panel de Control la instalación de Visual Studio y todo componente que hayamos dejado habilitado:

image

Espero sea de utilidad.

Saludos,

Checho

El mensaje de RunDLL al iniciar sesión, Autoruns y su solución

Desde octubre pasado que Microsoft liberó la actualización a Windows 8.1, son ya bastantes las personas que lo han ido adoptando, sea porque realizó la instalación a través de la Tienda, de forma corporativa se empezó a probar o se adquirieron equipos nuevos con 8.1 ya preinstalado. La parte fea, es que los problemas no se harán empezar y es ahí cuando se llenan los Foros oficiales de Microsoft, o de cualquier tercero de inconvenientes que van siendo recurrentes conforme va aumentando la cantidad de usuarios con la actualización.

*Nota: Decidí documentar el comportamiento que voy a exponer a continuación, porque ha sido bastante recurrente y la solución pasa por el mismo proceso.

El problema

Centrándome en este caso en particular, un usuario estaba viendo tres mensajes de error bastante molestos, por lo general cuando iniciaba sesión aunque en ocasiones salía mientras estaba operando el equipo. Los mensajes contenían un texto muy similar y hacían referencia a una DLL que el sistema operativo no podía encontrar con un título de “RunDLL”:

Rundll

Mensaje:

Problema al iniciar C:\PROGRA~1\COMMON~1\System\SysMenu.dll. No se pudo encontrar el módulo especificado.”

Aunque después de aceptar los tres mensajes el error no regresaba, era, naturalmente, demasiado molesto.

La causa

Cuando iniciamos Windows, como parte del proceso de Logon, el sistema operativo debe ejecutar o inicializar todo lo que tiene programado previamente, por ejemplo servicios, aplicaciones, controladores, extensiones, etc.

Este tipo de mensajes de error al iniciar sesión, aparecen cuando Windows intenta ejecutar alguna aplicación, o un proceso intenta llamar a algún recurso y éste no existe.

Hasta Windows 7, es posible que alguna vez hayan manejado la herramienta de MSCONFIG, específicamente, la pestaña de Inicio donde podían ver – según Windows- todo lo que estaba arrancando con la sesión. Esta configuración pasó al Administrador de Tareas desde Windows 8, con la misma pestaña de Inicio, pero un poco más “flexible”:

image

Volviendo al caso, el usuario no pudo encontrar nada referente a este mensaje o DLL en la pestaña de Inicio del Administrador de Tareas. ¿Qué hacer entonces?

Pues bien, para poder bien realmente todo lo que esté iniciando con Windows, es necesario recurrir a una herramienta mucho más poderosa, y me refiero por supuesto a alguna de la suite de Sysinternals. Para estos casos, la herramienta es Autoruns.

Recordemos que Autoruns me permite ver de una forma detallada y ordenada lo que está corriendo una vez se inicie sesión; se pueden ver los procesos reales e incluso realizar tareas desde allí. Más detalle en el libro oficial de Windows Sysinternals.

Normalmente hay que recurrir a la pestaña de Logon, pero para este caso no es así, pues tampoco se veía nada referente a esta DLL:

image

Sin embargo, y como dije, Autoruns va mucho más allá así que podemos ver otras cosas que estén iniciando. Explorando un poco entonces, encontré tres de las entradas bastante llamativas en la pestaña de Scheduled Task:

image

Y un poco más abajo:

image

*Nota: El color amarillo indica entradas que Windows está referenciando pero que ya no puede encontrar en la ubicación que tiene asociada. Es normalmente el color en que nos debemos concentrar si estamos trando de hacer diagnóstico con Autoruns.

Para el caso, las tres entradas eran llamadas por SMupdate1, SMupdate2 y SMupdate3, y utilizaban precísamente el SysMenu.dll.

No estoy seguro de dónde proviene, pero seguramente hace parte de algún Crapware.

La solución

Una vez se descubra el posible causante, la solución es realmente sencilla y se hace claro está, desde el mismo Autoruns.

Bastó entonces con hacer clic derecho en cada una de estas entradas y seleccionar Delete:

image

Con esto, Windows ya no volvería a buscar el recurso que pide la entrada y por ende, no saldrían más mensajes molestos de error.

¡Caso solucionado!

*Nota final: En el foro he resuelto otros problemas muy parecidos, pero que llaman a otra DLL. Lo importante es mirar con Autoruns y eliminarlas. He visto además que casi siempre la entrada está apareciendo en la pestaña de Scheduled Task.

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

Saludos,

Checho

Crear y predeterminar una imagen de Refresh en Windows 8.1

Hace más de un año, cuando Windows 8 aún estaba en su fase de Consumer Preview (conocida normalmente como Beta), escribí acerca de Reset y Refresh, característica integrada con el fin de sustituir las antiguas soluciones de recuperación en Windows.

Para recordar un poco, Reset hace una restauración de todo el sistema operativo usando los medios de instalación sin conservar nada; Refresh por el contrario, hace la misma restauración, pero mantiene todo el perfil y archivos almacenados hasta el momento, además de ser personalizable el punto y no tener que depender de lo que provee el fabricante del equipo.

En este artículo veremos una funcionalidad adicional de Refresh, muy útil cuando deseemos sacar provecho de la característica y estandarizar todos los puntos de restauración con una sola imagen. Básicamente, crearemos una imagen de Refresh, la copiaremos a un nuevo equipo y utilizando la herramiente de RECIMG de Windows 8/8.1, estableceremos esa imagen como predeterminada para cuando el usuario requiera restaurar el equipo.

Requerimientos

- Un equipo técnico donde se configure la imagen al punto que se desea predeterminar.

- Uno o varios equipos de referencia donde se copiará la imagen y se establecerá como predeterminada para hacer el Refresh.

Creando punto de restauración

El punto de restauración para el Refresh, consiste en una imagen de Windows (.wim) tal y como la conocemos cuando hacemos por ejemplo una captura maestra utilizando DISM o PowerShell desde un Windows PE. La diferencia es que además funciona con una tecnología similar a la de USMT para poder migrar perfiles y archivos.

Para crear la imagen, desde el equipo técnico, hacemos clic derecho sobre el botón de Inicio y seleccionamos Símbolo del Sistema (administrador):

2

Desde la consola, ejecutamos:

Recimg /CreateImage <DirRecovery>\Recovery

Donde <DirRecovery> es la unidad o ruta de red donde deseamos guardar la imagen; por ejemplo, para este artículo lo haré en la del sistema operativo (C:\) así que el comando sería:

Recimg /CreateImage C:\Recovery

image

*Nota: Es normal que en el 1% se pueda quedar varios minutos, el resto del tiempo dependerá de la velocidad de escritura y lectura en disco.

Al final deben tener un .WIM llamado CustomRefresh creado en el directorio de Recovery:

image

Después de creada, se debe copiar (de la forma que deseen) al equipo de referencia donde se le predeterminará. Aunque no es del todo necesario, es preferible que esté la imagen localmente para que Windows no tenga ningún problema cuando la consulte.

Recomiendo crear la misma carpeta en la unidad C:\ o en otra partición y copiar la imagen:

image

Estableciendo imagen de Refresh predeterminada

Nuesto siguiente paso, es indicarle a Windows que esa imagen copiada será de ahora en adelante el punto de restauración para cuando se requiera recuperar sin perder perfil ni archivos.

Para hacer esto, en el equipo de referencia, hacemos clic derecho en el botón de Inicio y seleccionamos Símbolo del Sistema (administrador):

2

Ejecutamos lo siguiente:

Recimg /Setcurrent <DirRecovery>\Recovery

Nuevamente, como deseo que el equipo adicional que utilizará la imagen para recuperación también la tenga disponible en la unidad “C:\”, el comando sería:

Recimg /Setcurrent C:\Recovery

image

Probando el Refresh

El último punto es por supuesto probar que nuestro equipo haga la restauración manteniendo el perfil, archivos y utilice la imagen que se estableció copiada de otra máquina.

Para realizar la restauración, presionamos las teclas Windows + C, o situamos el cursor en la esquina inferior derecha y luego en Configuración > Cambiar configuración de PC

image

En Configuración de PC, hacemos clic en Actualizar y recuperar en la parte inferior, y clic en el nodo de Recuperación. Veremos las opciones de recuperación que realizan el Refresh o el Reset:

image

Hacemos clic en el botón Comenzar, debajo de Restaurar tu PC sin afectar a tus archivos y clic en el botón Siguiente del asistente:

image

En la página de Listo para restaurar tu PC, clic en el botón Actualizar (Refresh):

image

Se reiniciará el equipo y el proceso de Refresh iniciará:

image

*Nota: El tiempo en general es mucho más rápido que hacer una instalación desde cero, aunque puede variar dependiendo de qué tanto tenga la imagen que se está aplicando.

*Importante:

1. Aunque se puede pasar una imagen entre equipos diferentes, siempre debe ser la misma imagen, así que si en uno la instalación es otra edición o idioma, no funcionará.

2. El estado de activación no suele respetarse.

3. Algunas carpetas importantes como las de Usuarios, Archivos de Programa, o ProgramData deben estar en la misma unidad de Windows.

4. Se respeta el perfil y archivos en la misma ubicación, pero se genera la carpeta del Windows.old, donde probablemente se almacenen cosas que no se podían tener en la restauración, como aplicaciones nuevas. Se puede borrar la carpeta utilizando las herramientas de Windows como lo expliqué en un artículo anterior.

Espero sea de utilidad.

Saludos y ¡feliz año nuevo!

Checho

Restaurar los fondos para Pantalla de Bloqueo predeterminados en Windows 8.1

Dentro de las características incluidas en la personalización de todo el ambiente de Interfaz Moderna en Windows 8, se introdujo la Pantalla de Inicio, funcionalidad que nos permite establecer un fondo de pantalla personalizado - incluso a través de Directivas de Grupo- que aparece justo antes de iniciar sesión en el equipo.

Con la actualización a Windows 8.1, la Pantalla de Bloqueo actualizó las imágenes predeterminadas y además agregó una nueva característica para hacer una presentación, lo que permite seleccionar varias imágenes para que roten solas mientras el equipo se encuentra bloqueado.

Así luce la Pantalla de Bloqueo en Configuración de PC:

image

*Nota: Pueden ver algunas guías creadas por Microsoft sobre los cambios en la personalización de Windows 8.1, incluyendo la pantalla de bloqueo aquí:
http://windows.microsoft.com/es-es/windows-8/personalize-pc-tutorial 

A pesar de que la interacción con la pantalla de bloqueo no tiene mayor ciencia, este artículo nace a partir de una necesidad muy específica, y es poder restaurar, como se hacía en Windows 8, todas las imágenes predeterminadas que incluye Windows cuando deseemos pues lamentablemente en Windows 8.1 no es posible hacer esto de forma sencilla. Si queremos entonces volver a poner alguna de las 6 imágenes que vienen con Windows, hay que aplicarlas una por una buscándolas en el directorio C:\Windows\Web\Screen que es donde residen.

En la siguiente parte mostraré con un procedimiento paso a paso, no soportado pero simple, cómo podemos volver a establecer todas las imágenes predeterminadas para la Pantalla de Bloqueo en Windows 8.1.

Requerimientos:

- Descargar PsExec de Sysinternals desde aquí:
http://technet.microsoft.com/es-es/sysinternals/bb897553

- Descomprimimos PsExec y luego copiamos el ejecutable al directorio C:\Windows para que sea fácil de ejecutar desde cualquier ubicación.

Restaurando fondos predeterminados

Después de algún tiempo de usado Windows 8.1, es posible que varios o todos los fondos de la pantalla de bloqueo se hayan cambiado por otros que hayamos establecidos, por ejempo:

image

*Nota: Imágenes tomadas de: www.deviantart.com

Necesitamos indicarle a Windows que no tome estas imágenes, sino que vuelva a referenciar solo las que se encuentran en la carpeta Screen.

El sistema operativo almacena una copia de estas imágenes en el directorio:

%SystemDrive%\ProgramData\Microsoft\Windows\SystemData

Específicamente, en una carpeta creada con el SID de usuario. Sin embargo, no es bueno ni recomendable manipular los permisos de esta carpeta y su contenido, entre otras porque hay un orden dinámico para guardar cada imagen nueva.

Por otro lado, desde el Registro de Windows, se referencia el orden y la letra asignada para cada imagen; la sub-clave en específico es:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SystemProtectedUserData\
SID\AnyoneRead\LockScreen

Donde SID se refiere al identificador único de usuario que el sistema genera al crearse por primera vez la cuenta, por ejemplo, para mi usuario sería:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
SystemProtectedUserData\S-1-5-21-2527597101-560732054-2570409974-1106\AnyoneRead\LockScreen

En el valor Predeterminado se almacena el orden de las imágenes a aparecer en la pantalla de bloqueo:

image

Como los permisos sobre esta sub-clave y valores corresponden al usuario SYSTEM y Administrador integrado, es necesario tener más permisos para poder modificarla.

Modificando el valor

Hacemos clic derecho en el botón de Inicio y seleccionamos Símbolo del Sistema (administrador).

En la consola digitamos y ejecutamos: PsExec –SID Regedit.exe

image

Al ejecutarse el Editor de Registro, navegamos hasta:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SystemProtectedUserData\
SID\AnyoneRead\LockScreen

Donde SID se refiere al identificador único de usuario que el sistema genera al crearse por primera vez la cuenta, por ejemplo, para mi usuario sería:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
SystemProtectedUserData\S-1-5-21-2527597101-560732054-2570409974-1106\AnyoneRead\LockScreen

Hacemos clic derecho sobre el valor Predeterminado y Eliminar.

image

Podemos eliminar también todos los valores binarios que se fueron creando para evitar futuros problemas hasta que todo quede vacio y solo se vea el valor Predeterminado sin contenido:

image

Eso es todo, basta reiniciar el equipo para que Windows tome los cambios y una vez dentro, debemos tener nuevamente todos los fondos predeterminados:

image

¡Eso es todo! Estoy tratando de preparar un artículo donde abordaré en más profundidad cómo funcionan los Fondos de la Pantalla de Bloqueo internamente cuando se establecen, así que espero publicarlo pronto y extender lo que aquí expliqué.

Espero sea de utilidad.

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

Saludos,

Checho

El error de espacio en disco o memoria insuficiente al abrir un archivo de Office en Win8, los ADS, Process Monitor y su solución

Hace unos días, visitando un cliente aquí en Colombia, me encontré con un problema muy interesante y que al parecer es más común de lo que imaginaba; como afortunadamente lo pude documentar y reproducir, quiero compartirlo aquí para los que en un futuro entren buscando alguna respuesta al inconveniente.

*Nota: En la parte de “La causa”, tocaré algunas cosas referentes a Windows Internals, así que si me equivoco en algo, agradezco lo comenten para corregirlo. =)

El problema

El cliente recién se encuentra en renovación de equipos, así que es normal que le venga con Windows 8, adicional a esto, están haciendo migración de toda la suite Office 2007 a la 2013, por lo que algunos de estos equipos se les estaba actualizando la versión.

El problema empezó a suceder cuando en varios de estos equipos, después de hacer la actualización a Office 2013 y luego de intentar abrir un archivo de Excel, aparecía un mensaje similar a este:

Captura

Español:
Microsoft Excel no puede abrir o guardar más documentos porque el espacio en disco o la memoria son insuficientes:

- Para disponer de más memoria, cierre los libros o programas que no necesite.
- Para liberar espacio en disco, elimine los archivos que no necesita del disco en el que desea guardar los documentos.

Inglés:
Microsoft Excel cannot open or save any more documents because there is not enough available memory or disk space:

- To make more memory available, close workbooks or programs you no longer need.
- To free disk space, delete files you no longer need from the disk you are saving to.

Al hacer clic en Aceptar (OK), Excel quedaba abierto pero el documento no se podía ver de ninguna forma. Lo más extraño, es que este mismo documento funcionaba en otros equipos con Office 2007 o incluso con Office 2013.

Por supuesto, la primera reacción del cliente fue revisar temas de espacio y memoria, pero a parte de que no había nada fuera de lo normal, la operación de abrir una simple hoja de cálculo no puede consumir tantos recuros como para que Windows impida su acceso. Como no encontraba solución, procedía a realizar downgrade de Office con el objetivo de evitar el mensaje de error.

*Nota: El mensaje de error en Word u otras aplicaciones de Office no es igual, pero es muy similar al hacer referencia a la falta de recursos.

La causa

Como no tenía la más remota idea del porqué salía este mensaje de error, aún con suficientes recursos e incluso moviéndolo en distintas carpetas, procedí a llamar a la herramienta por excelencia: Process Monitor de Sysinternals.

La idea como siempre, era ejecutar Process Monitor, abrir el archivo, esperar hasta que el mensaje de error saliera, cerrarlo y parar el monitoreo para empezar a buscar entre los miles de resultados, cuál podría darme alguna pista del problema.

Después de un buen rato de análisis (normal cuando no sabes qué buscas), Process Monitor me dio la pista más grande para encontrar la causa del extraño mensaje; siguiendo específicamente al proceso de EXCEL.exe, me encontré con esto:

ZI1

*Nota: Pueden hacer clic en la imagen para verla en su tamaño real.

Como ven en la captura encerrada por rojo, Excel estaba realizando una operación referenciada por Process Monitor como CreateFile, que programación se utiliza normalmente para crear o abrir diferentes tipos de archivos; al final del archivo .xls aparecía algo sumamente interesante y asociado al nombre: Zone.Identifier y la operación era SUCCESS.

Hasta ese momento que noté estas operaciones por primera vez, no tenía la más remota idea acerca de qué se trataba, pero tal vez la intución me llevó a desconfiar de tantas operaciones relacionadas, sobre todo por los tipos, es decir, CreateFile, QueryBasicInfo, Close, LockFile, etc. Además de esto, y lo que en definitiva sería la causa, era la extraña terminación en el nombre de Zone.Identifier así que decidí parar e investigar un poco más.

Zone.Identifier, hace parte de un grupo de atributos NTFS conocidos como Alternative Data Stream (ADS), y que básicamente alojan un flujo de información o datos alternos sobre el archivo.

Los archivos NTFS tienen varios atributos, pero uno de ellos es donde nosotros almacenamos la información cuando escribimos en él, y se conoce como $DATA.

Utilizando Streams de Sysinternals, o mejor aun, Windows PowerShell, puedo ver esto con ayuda del cmdlet Get-Item; por ejemplo, si tengo un archivo en el escritorio llamado ADS.txt, y deseo consultar sus atributos, el comando sería:

Get-Item –Path C:\Users\Checho\Desktop\ADS.txt –Streams *

image

Así mismo, podríamos ver su contenido utilizando Get-Content de una forma similar:

Get-Content –Path C:\Users\Checho\Desktop\ADS.txt –Stream $DATA

image

*Nota: Para archivos de Office la visualización no es tan simple como en un TXT, así que verán muchos caracteres extraños de una forma desorganizada.

Ahora, los ADS pueden contenter información adicional, como ya lo mencioné al principio; el ADS de Zone.Identifier lo crea Internet Explorer a cada archivo descargado para referenciar en su stream la zona desde la que se descargó. La siguiente tabla muestra todas las zonas existentes:

Valor Configuración
0 Mi Equipo
1 Zona de Intranet local
2 Zona de sitios de confianza
3 Zona de internet
4 Zona de sitios restringidos

Fuente: Ask The Core Team blog.

Desde PowerShell, podemos consultar el identificador con el cmdlet Get-Content también:

image

Estas Zonas las hemos visto alguna vez en nuestras vidas en las Opciones de Internet, pestaña de Seguridad:

image

El nombre completo del archivo entonces finaliza con los respectivos ADS, por ejemplo: Demo.xls:Zone.Identifier.

Como estos ADS no se pueden ver con solo abrir el archivo, es normal que no se muestren y por ende, que generen este tipo de confusión.

Volviendo al problema…

Excel 2013, en su comportamiento natural, es capaz de mostrar el contenido pero abriéndolo en Vista Protegida (Nuevo para Office 2013), con el fin de indicar al usuario que se descargó desde internet:

image

En el caso del cliente, debido a la actualización desde Office 2010 hacia Office 2013, Excel no es capaz de gestionar correctamente lo que parece una excepción y lanza un este error genérico útil solo para entrar en una confusión grande. ¿Se le podría llamar Bug? No lo sé.

La solución

La forma más sencilla y rápida de solucionar este problema, una vez se presente por causa de la actualización, es realizar lo siguiente:

1. Cerrar completamente el archivo.

2. Hacer clic derecho sobre él y seleccionar Propiedades.

En la ventana de Propiedades verán en la parte inferior un botón adicional que dice: Desbloquear:

image

3. Hacer clic en el botón Desbloquear, Aplicar y Aceptar.

Una vez hecho esto, el archivo se podrá abrir sin ningún tipo de problemas nuevamente y los ADS quedarán borrados.

Opcional: Directivas de grupo para Zone.Identifier

Existe una Directiva de Grupo para evistar que Windows conserver el ADS de Zone.Identifier establecido por Internet Explorer al realizar la descarga, para habilitarlo desde el Controlador de Dominio, deben abrir el Administrador de Directivas de Grupo y navegar hasta:

Configuración de Usuario\Políticas\Plantillas Administrativas\Componentes de Windows\Administrador de datos adjuntos

Doble clic en la plantilla:
No conservar la información de zona en los datos adjuntos de archivo

image

De esta forma, el ADS de Zone.Identifier no se mantendrá nunca y evitarán este problema, además de obtener un poco más de seguridad, sobre todo en equipos en los que se actualizó desde Office 2010 o versiones anteriores a 2013.

Espero sea de utilidad.

Saludos,

Checho

Mover los Perfiles de Usuario a otro disco o partición en Windows 8.1 utilizando Sysprep y un Archivo de Respuesta

Una de las necesidades que más surgen tanto a nivel corporativo como para usuario final, es mantener a salvo tanto los Perfiles de Usuario, como sus respectivos archivos y configuraciones; para asegurar esto, es normal que se proceda a realizar algún tipo de redirección de perfil, sea a través de Políticas de Grupo – que sería siempre lo ideal- o bien con procedimientos manuales que implican manipular físicamente la carpeta de Usuarios ubicada en la unidad del sistema operativo.

Aunque hace un par de años escribí 4 artículos referentes a Windows 7 sobre cómo mover los perfiles a otra partición, dejé de lado un procedimiento adicional que cobra mucho sentido y es relativamente fácil, así que aprovecharé para documentarlo y que además se trabaje sobre Windows 8.1.

En este artículo, explicaré brevemente cómo podemos tomar ventaja sobre el procedimiento y el poder que ofrece la Herramienta de Preparación del Sistema (Sysprep) y el Archivo de Respuesta (AutoUnattend.xml), para mover todos los perfiles que tengamos desde la unidad de Windows a otro disco o partición de una forma limpia y soportada.

Requerimientos:

- Una partición o disco destinada a guardar todos los perfiles.

- Tener instalado el ADK para Windows 8.1. Pueden descargarlo desde aquí:
http://www.microsoft.com/es-co/download/details.aspx?id=39982

- Crear una carpeta llamada 81 en el directorio C:\ donde se guarden todos los archivos de instalación de Windows 8.1.

Creando el archivo de respuesta

En un equipo de referencia, o en el mismo equipo donde se hará el procedimiento, vamos a la Pantalla de Inicio, buscamos System Image Manager, clic derecho y Ejecutar como administrador:

image

Hacemos clic derecho en Select a Windows image or catalog file y después en Select Windows Image…

image

Buscamos la imagen de Windows en la carpeta C:\81\sources\install.wim y clic en el botón de Ok.

*Nota: El System Image Manager (SIM) nos pedirá crear un archivo de catálogo para la imagen, debemos aceptar y esperar unos minutos a que lo haga. Esto es para saber qué componentes se pueden agregar y personalizar y sólo se deberá hacer la primera vez.

En la parte superior central de SIM, hacemos clic derecho en Create or open an answer file y en New Answer File…

image

Expandimos el nodo de Components debajo de la imagen agregada, buscamos el de Microsoft-Windows-Shell-Setup_6.3.9600.16384_neutral, expandimos nuevamente, clic derecho en el sub-nodo de FolderLocations y clic en Add Setting to Pass 7 oobeSystem:

image

*Nota: Estos componentes están disponible para la arquitectura de 32 y 64 bits, así que es necesario agregar la que se requiera de acuerdo a la que tengamos instalada, es decir, con el inicio de x86 para 32 bits y amd64 como lo muestra la captura para 64 bits. Por supuesto, podemos agregar ambos si queremos.

En el panel central, debajo de Answer File, seleccionamos FolderLocations para habilitar el panel derecho de Propiedades, nos situamos en ProfilesDirectory y le indicamos la unidad donde deseamos que los perfiles estén, con la respectiva carpeta de Users.

Para este caso, que todo va para la unidad E:\, sería: E:\Users

image

*Nota: No es obligatorio que la primera carpeta sea Users o Usuarios, pero no pueden quedar en la raíz del disco o partición.

Esto es todo lo que necesitamos, así que una vez hecho, clic en el menú File > Save Answer File As…

image

Guardamos el archivo en un directorio de fácil acceso y lo llamamos: AutoUnattend.xml

image

*Nota: El nombre en preferencia debe ser Unattend o AutoUnattend.

Para que el XML nos quede genérico y no dependa siempre de la msima imagen, podemos editarlo y borarle todo lo que esté dentro de la etiqueta cpi:

image

El contenido entonces se vería similar a la siguiente captura:

image

Para evitar todo este procedimiento anterior, los que deseen pueden bajar el XML desde mi SkyDrive para 64 bits, así sólo será necesario editar la letra de unidad:

Enlace directo: http://sdrv.ms/1eTqrhC

Configurando y ejecutando Sysprep

Después de crear el Archivo de Respuesta (AutoUnattend.xml), debemos copiarlo al directorio C:\Windows\System32\sysprep\

image

Ahora, clic derecho en el botón de Inicio y en Símbolo del sistema (administrador):

image

En la consola ejecutamos: cd C:\Windows\System32\Sysprep para quedar ubicados en el directorio de Sysprep:

image

Ahora, cerramos TODO lo que tengamos abierto y procedemos a ejecutar:

sysprep.exe /oobe /reboot /unattend:AutoUnattend.xml

image

El proceso de Sysprep iniciará y después de unos momentos, Windows se reiniciará y arrancará en la fase de OOBE, que básicamente contiene la post-configuración al instalar o prender por primera vez una máquina con sistema operativo preinstalado.

image

image image

image image

image

¡Todo listo! Ya nuestros perfiles estarán ubicados en la nueva partición, incluyendo los que ya estaban creados previamente:

image

*Nota: En un ambiente de dominio, el equipo se saldrá completamente así que es necesario nombrarlo y unirlo otra vez, aunque lo ideal es aprovechar el mismo archivo de respuesta para automatizar este proceso. Trataré de cubrir esto en un futuro artículo.

Espero sea de utilidad.

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

Saludos,

Checho

El error “La clave de producto especificada no coincide con ninguna de las imágenes de Windows disponibles para instalación…” al instalar Windows 8/8.1

El problema que pasaré a describir no es tan nuevo como me gustaría, pero sí muy recurrente tanto en usuarios finales, como en diferentes empresas que están adquiriendo los equipos con Windows 8 de forma preinstalada.

Hasta antes de que empezaran a salir los equipos con Windows 8 de forma preinstalada, es decir, un año o menos, existía un tipo de sticker o etiqueta en el equipo conocido como Certificado de Autenticidad (COA), utilizada para identificar el equipo como original, pero además para disponer del código de producto necesario para activar el sistema operativo cuando fuese necesario. Desde la salida de Windows 8 hasta ahora, este modelo cambió drásticamente y ahora no existe la etiqueta en los equipos comprados sino que el código de producto ahora se encuentra embebido en el firmware de la BIOS, lo que hace virtualmente imposible extraer la clave de una forma sencilla, pero facilita la instalación o restauración de Windows 8 con el medio original, pues Windows a menos que se le especifique serial de otra forma, intentará pasar el asistente de instalación con el que le devuelva la BIOS. Todo esto es con el fin de combatir la piratería.

El problema

El cambio no debería representar mayor inconveniente, pero, cuando se intenta realizar una instalación de Windows 8 con un medio diferente al original correspondiente al serial que está embebido, Windows intentará seguir pasando el asistente justo después de darle a Instalar ahora y al no poder validar el código, arrojará un mensaje de error similar a este:

WP_20131128_004

Español: “La clave de producto especificada no coincide con ninguna de las imágenes de Windows disponibles para la instalación. Escriba una clave de producto diferente.”

Inglés: “The product key entered does not match any of the Windows images available for installation. Enter a different product key.”

El problema en cuestion no es que requiera una clave diferente, es que no deja si quiera ingresarla. La instalación entonces no puede iniciarse, a menos que se intente realizar con el medio original OEM que permite y valida esa clave.

La solución

Aunque este problema ha aparecido bastante, siendo la solución que expondré relativamente fácil, la KB oficial de Microsoft que referencia el problema sólo la menciona, cosa que ayuda realmente poco.

Predeterminadamente, el Asistente de Instalación de Windows tiene un orden en que consulta y utiliza el serial de instalación; la prioridad siempre va tenerla el Archivo de Respuesta, comunmente usado para instalación desatendida, luego está el archivo PID.txt que no siempre se encuentra en el medio de instalación, seguido del código que pueda haber en BIOS y por último, la pantalla propia del asistente donde se digita el serial.

Esta gráfica representa la escala de prioridad expuesta:

clip_image001[10]

En este orden de ideas, para solventar el mensaje de error, es necesario crear un Archivo de Respuesta XML o un PID.txt para que el asistente priorice ese sobre el que está en BIOS y que de esa forma continúe la instalación.

*Nota: El archivo PID.txt está pensado desde varias versiones atrás para automatizar el ingreso de la clave de producto al actualizar, utilizado en conjunto con el de EI.cfg, documentados en la página oficial de Microsoft:
http://technet.microsoft.com/en-us/library/hh824952.aspx

Lo primero que debemos hacer, en caso de que nuestro medio esté en una unidad de DVD, es copiar todos los archivos de instalación a una carpeta local, pues debemos guardar el archivo que pasaremos a crear dentro del medio y en un DVD no se puede.

Después de esto, ingresaremos el serial que sí corresponde al medio que se está instalando abriendo un Bloc de Notas en blanco y digitando:

[PID]
Value=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Donde XXXXX-XXXXX-XXXXX-XXXXX-XXXXX corresponde al código de producto para instalación, por ejemplo:

image

*Nota: El serial que se ven en la captura no es funcional.

Ahora, hacemos clic en el menú Archivo > Guardar como y le indicamos como ubicación la carpeta Sources de los archivos de instalación de Windows 8/8.1, la llamamos PID.txt y hacemos clic en el botón Guardar:

image

Por último, y para que sea más fácil, preparamos un dispositivo USB para realizar la instalación de Windows 8/8.1 desde allí; con el objetivo de no repetir procedimientos, les dejo el enlace a un paso a paso que escribí hace un tiempo en la Web de Fermu.com:
http://www.fermu.com/es/articulos/windows/articulos-y-tutoriales/831-preparar-dispositivo-usb-manualmente-para-instalaci%C3%B3n-de-windows-8

Finalmente, al iniciar la máquina y asegurándonos que se haya guardado el PID.txt en la carpeta Sources como lo indiqué, Windows debe proseguir con el asistente a menos que el producto que se haya escrito esté malo o tampoco corresponda al medio:

WP_20131128_005

*Nota: La primera y última foto son tomadas desde un equipo real, por eso la calidad de la imagen.

Espero sea de utilidad. ¡Feliz inicio de Diciembre 2013!

Saludos,

Checho

Crear imagen (.ISO) de Windows 8.1 con actualizaciones integradas utilizando PowerShell y el ADK

En algunas ocasiones (muy pocas lamentablemente), las personas que se pasan por este blog, sea porque lo siguen o simplemente llegaron buscando alguna cosa en específico, se toman el tiempo de escribirme al correo a través del enlace de Contacto para solicitarme alguna ayuda o bien, para sugerirme contenido que no tengo publicado en el blog o no está del todo completo. El siguiente artículo lo hago con el objetivo de satisfacer uno de esos requisitos enviados a través de correo ya que además creo puede ser útil para muchas personas que les interesa mucho o trabajan en el mundo de la implementación de sistemas operativos Windows.

Una constante de Microsoft cada segundo martes del respectivo mes, es liberar una cantidad de actualizaciones para los productos que las requieran. Estas actualizaciones, a diferencia de los mitos que viajan con ellas, no relentizan ni dañan el sistema operativo – cuando se liberan para Windows- sino que ayudan a cerrar huecos vulnerables, corregir fallas o agregar soporte y compatibilidad.

Teniendo lo anterior en cuenta, es necesario que en un ambiente corporativo se planee una forma de evaluación y distribución de estas actualizaciones, tarea que normalmente se realiza a través de soluciones como WSUS o System Center Configuration Manager (SCCM); sin embargo, una de las ventajas en el formato de imagen de Windows (WIM) nacido desde Windows Vista, suele ser útil y práctico aprovechar varias herramientas de Microsoft integradas en el AIK o ADK (Según el caso) para simplemente montar la imagen offline en algún directorio, inyectar los respectivos parches, desmontarla, crear la imagen y por último pasar a desplegar. 

Debido a que estamos casi que estrenando Windows 8.1 y que es normal que hasta la fecha ya hayan varias actualizaciones disponibles, explicaré a continuación el paso a paso para realizar este proceso correctamente, utilizando además PowerShell que está de moda y una herramienta del ADK llamada OSCDIMG.

Requerimientos:

1. La imagen o archivos de instalación de Windows 8.1 en cualquier edición. Si no lo tienen, pueden descargar un período de prueba desde aquí:
http://technet.microsoft.com/es-es/evalcenter/hh699156.aspx

2. Buscar y descargar las actualizaciones deseadas en la página web de Microsoft:
http://www.microsoft.com/en-us/download/windows.aspx

3. Un equipo técnico donde se pueda hacer el montaje de la imagen de Windows y tenga las siguientes carpetas creadas en la unidad del equipo:

C:\Imagen

C:\Updates

C:\Montar

*Nota: Los nombres no son mandatorios, pero para poder facilitar el artículo, referenciaré estos en toda la siguiente fase del escrito.

4. Instalar en el equipo técnico el ADK para Windows 8.1. Lo pueden descargar desde aquí:
http://www.microsoft.com/es-co/download/details.aspx?id=39982

5. Un equipo de referencia donde se pueda probar la instalación.

*Nota: Para la siguiente parte, estaré trabajando en un equipo con Windows 8.1 como equipo de referencia.

Montando la imagen:

Antes de montar la imagen y solo en caso de que como en mi caso, tengamos los archivos de instalación en un DVD o imagen .ISO, es necesario insertar el medio o montar la imagen y después copiar todo al directorio C:\Imagen creado en los requerimientos. Para hacer esto de una forma rápida y fácil:

Desde la Pantalla de Inicio, buscamos CMD, clic derecho y seleccionamos: “Ejecutar como administrador”. Ejecutamos:

xcopy <Origen>\*.* /s/e/f C:\Imagen

Donde <Origen> corresponde a la unidad donde están los archivos de instalación; para mi caso, como era la unidad “J:\”, el comando sería:

xcopy J:\*.* /s/e/f C:\Imagen

image

*Nota: El proceso puede tardar un poco dependiendo de la velociad de escritura y lectura del disco. La copia también se puede hacer manualmente desde el Explorador de Archivos.

Una vez hecho esto, cerramos el Símbolo del Sistema y ahora, desde la Pantalla de Inicio nuevamente, buscamos PowerShell, clic derecho y “Ejecutar como administrador”.

Desde PowerShell, ejecutamos:

Mount-WindowsImage -ImagePath C:\Imagen\sources\install.wim
-Index 1 -Path C:\Montar

image

*Nota: El índice (Index) puede variar dependiendo de qué imagen estemos instalado, si es la Enterprise siempre será el 1, pero si es sobre un Windows 8.1 o Windows 8.1 PRO, puede ser diferente puesto que ambas imágenes están en una sola imagen. Es posible revisar el índice ejecutando por ejemplo:

Get-WindowsImage -ImagePath C:\Imagen\Sources\install.wim

image

Al terminar debemos ver algo como esto:

image

Inyectando actualizaciones:

Aquí es necesario copiar todas las actualizaciones y parches descargados a la carpeta C:\Updates sin necesidad de renombrarlos o crear sub-carpetas.

*Nota: Los paquetes soportados deben tener extensión .MSU o .CAB unicamente.

Para este artículo, utilizaré un par de actualizaciones de seguridad, y el parche que corresponde a la KB KB2902864 para solucionar el molesto tema de la marca de agua:

 image

Después de copiar los archivos, abrimos nuevamente PowerShell con privilegios administrativos y ejecutamos:

Add-WindowsPackage -Path C:\Montar -PackagePath C:\Updates

image

Para verificar que los paquetes hayan quedado instalados, podemos ejecutar:

Get-WindowsPackage -Path C:\Montar 

image

Desmontando la imagen:

Cada que se monta y se trabaja con una imagen, es necesario desmontarla guardando los cambios, pues de lo contrario no habremos hecho nada. Para desmontar la imagen, ejecutamos desde PowerShell:

Dismount-WindowsImage -Path C:\Montar -Save

image

Hasta aquí todo lo que requeríamos de PowerShell, así que podemos cerrarlo y proceder a crear la imagen necesaria para instalar Windows 8.1 con las actualizaciones.

Generando la imagen ISO:

Como en los primeros pasos tuvimos que copiar los archivos del medio o imagen localmente, es necesario generar otra vez el .ISO para que pueda ser iniciado desde cualquier equipo y aquí es donde entra a jugar el ADK.

Desde la Pantalla de Inicio, en el equipo técnico con el ADK instalado, buscamos: Deployment and Imaging Tools Environment, clic derecho y Ejecutar como administrador.

image

Desde el Símbolo ejecutamos:

oscdimg -bC:\Imagen\Boot\Etfsboot.com -u2 -h C:\Imagen C:\Win81_U.iso

image

*Nota: El nombre “Win81_U.iso” puede variar al que ustedes quieran.

Probando instalación y resultados:

Naturalmente, nuestro último paso es instalar el sistema operativo en el equipo de referencia, ir hasta Panel de Control > Programas > Programas y características > Ver actualizaciones instaladas y validar que los parches se hayan instalado con Windows:

B

Espero sea de utilidad.

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

Saludos,

Checho

Instalación desatendida de Windows 8/8.1 con MDT 2013

Hace ya unos años (2010 para ser precisos), cuando estan incurcionando en el mundo de la implementación de sistemas operativos Windows usando las herramientas de Microsoft y todo lo que esto acarrea, escribí un artículo donde expliqué paso a paso cómo realizar una instalación completamente desatendida de Windows 7 con MDT 2010 U1; post que para mi fortuna tuvo muchísima acogida y gran cantidad de comentarios, ¡Cosa que les agradezco!

El proceso para los actuales Windows 8 o Windows 8.1 realmente no ha cambiado mucho, sin embargo, hay algunos detalles que sí lo han hecho, así que decidí pensar en un tipo de actualización de contenido y generar este artículo enfocado a cómo pueden realizar la instalación totalmente automatizada de Windows 8/8.1 a través de la última versión del popular Microsoft Deployment Toolkit (MDT) 2013, para poder después abordar otros procesos interesantes que se pueden optimizar desde esta herramienta en futuros escritos.

¿Qué necesitamos?

1. Un equipo técnico donde esté instalado Windows Server 2008/2008 R2/2012/2012 R2. Lo ideal sería que estén sobre la última versión disponible de Server, así que para los que no lo sabían, pueden descargar un período de prueba con 180 días desde aquí:
http://technet.microsoft.com/es-ES/evalcenter/dn205286.aspx

2. Tener habilitada la característica de Windows Deployment Services (WDS) e instalar y configurar Microsoft Deployment Toolkit 2013.

Para descargar MDT 2013, visiten la web oficial:
http://www.microsoft.com/en-us/download/details.aspx?id=40796 

Una vez descarguen el MDT 2013, pueden pasar a instalarlo y configurarlo como lo han hecho en versiones anteriores; pueden ver un artículo sobre la configuración básica aquí:
http://geeks.ms/blogs/checho/archive/2013/02/05/implementaci-243-n-b-225-sica-de-windows-8-con-mdt-2012-update-1-y-windows-deployment-services.aspx

Pueden ver la configuración básica de WDS en este artículo de Wiki que escribí:
https://social.technet.microsoft.com/wiki/contents/articles/15720.instalacion-y-configuracion-basica-de-windows-deployment-services-en-server-2012-es-es.aspx

3. Archivos de instalación de Windows 8/8.1. Aunque este post se enfocará en 8.1, es el mismo proceso para ambas versiones.

La versión de evaluación que tiene 90 días de Windows 8.1 Enterprise la bajan desde aquí:
http://technet.microsoft.com/es-co/evalcenter/hh699156.aspx

4. Un equipo de referencia que esté unido a la red del Server para implementar.

Creando Secuencia de Tareas

Antes de proceder a crear la Secuencia de Tareas, naturalmente debemos tener ya creado y configurado los otros aspectos del Deployment Share, como el Sistema Operativo, Aplicaciones, Parches y Controladores que deseemos agregar. Todo lo expliqué paso a paso en el post de implementación básica.

Una vez hecho esto, abrimos el Deployment Workbench –si ya no estaba abierto- en el Servidor, expandimos nuestro Deployment Share (en mi caso se llama WinSide), clic derecho en el nodo de Task Sequences y seleccionamos New Task Sequence.

 image

Al abrirse el asistente para New Task Sequence en la página de General Settings; aquí debemos especificar un Task Sequence ID, Task sequence name y Task sequence comments. Básicamente, un identificador ojalá en un formato estándar para nuestro despliegue, un nombre descriptivo y opcionalmente unos comentarios sobre la respectiva Secuencia de Tareas, por ejemplo:

image

*Nota: Será necesario sobre todo referenciar correctamente el identificador especificado.

Clic en el botón Next para pasar a la página de Select Template. Aquí dejamos como predeterminada la Secuencia de Tareas: Standard Client Task Sequence y clic en Next.

image

En la página de Select OS, seleccionamos el sistema operativo a desplegar, que sería 8 u 8.1 y clic en el botón Next.

image

En la página de Specify Product Key, escribimos el código de producto para activar (si lo tenemos), o bien dejamos la opción de Do not specify a product key at this time y clic en el botón Next.

image

En la página de OS Settings, rellenamos los campos referentes al registro y clic en Next.

image

En la página de Admin Password, digitamos una contraseña segura para la cuenta integrada de administrador o bien seleccionamos Do not specify an Administrator password at this time si no queremos poner contraseña y clic en el botón Next.

image

En la página de Summary, revisamos que todo haya quedado correctamente y clic en Next.

En la página de Confirmation, clic en el botón Finish para terminar.

Nos debe quedar ahora la Secuencia de Tareas creada:

image

Lista la Secuencia de Tareas, lo siguiente es lo más interesante, pues se trata de automatizar todo el proceso de instalación.

*Nota: Recordemos nuevamente que no estoy tocando los pasos para crear el Deployment Share ni agregar elementos a cada componente pues ya está explicado en el artículo que referencié en el segundo paso de los requisitos.

Automatizando la instalación

Hacemos clic derecho sobre el Deployment Share y seleccionamos Properties:

image

Nos pasamos a la pestaña de Rules y veremos que hay ya algunas Propiedades que de forma predeterminada están configuradas de acuerdo a lo que hayamos seleccionado en el momento de crear el Deployment Share:

image

Este archivo se llama CustomSettings.ini y aquí reside la mayor parte de la personalizado del asistente de instalación de MDT. Con esto claro, automatizaremos completamente los parámetros que ya están indicados y los que hacen falta para que solo tengamos que iniciar el equipo desde la red.

Justo después de OSInstall, pondremos: SkipWizard=Yes. Esto obviará todo el asistente de instalación de MDT y a continuación, configuraremos los parámetros de la siguiente forma:




_SMSTSOrgName=WinSide Corp

JoinDomain=winside.local
DomainAdmin=Administrator
DomainAdminDomain=Winside.local
DomainAdminPassword=Passw0rd

TaskSequenceID=D01-ENT-81

OSDComputerName=%ComputerName%

UILanguage=en-US
UserLocale=en-US
KeyboardLocale=en-US

TimeZoneName=SA Pacific Standard Time

Applications001={5bc9ed48-ae16-4e03-9c4e-3d99f197589c}

SkipBDDWelcome=YES


Noten que la instalación de aplicaciones no se indica por el nombre sino por el GUID que generó el asistente para importar aplicaciones del Deployment Workbench. Para poder ver el respectivo GUID de cada aplicación, hacemos lo siguiente:

En el nodo de Applications, clic derecho en cada aplicación a instalar y clic en Properties:

image

En la ventana de propiedades, nos ubicamos en la pestaña General y copiamos todo el contenido que nos referencia el Application GUID:

image

En las Reglas, dentro de las Propiedades del Deployment Share, indicamos entonces por cada aplicación la palabra Applications, seguida de 00#, donde # empieza en 1 y termina en la cantidad de aplicaciones agregadas. Por ejemplo: Applications001, Applications002, etc.

*Nota: Los datos para cada uno pueden ser diferentes, y esto hace referencia al nombre del domino, credenciales, identificador para la Secuencia de Tareas, lenguaje y zona horaria.

*Nota 2: La propiedade de _SMSTSOrgName hace referencia al nombre de la compañía para que aparezca en la ventana que dirige el asistente de instalación.

Todo se vería en mi caso de la siguiente forma:

image

*Nota: Como ven, no es necesario dejar los otros Skip que predeterminadamente existen pues el SkipWizard los acoje todos.

Hacemos clic en el botón de Apply y OK para terminar.

Actualizando recurso compartido

Ya configurado todo, el siguiente paso es hacer clic derecho sobre el Deployment Share creado y clic en Update Deployment Share.

image

En la página de Options del Update Deployment Wizard, dejamos la opción de Optimize the boot image updating process y clic en el botón Next.

image

En la página de Summary, clic en el botón Next.

En la página de Confirmation, clic en el botón Finish para culminar.

Agregando la imagen de arranque al WDS

Tal cual lo muestro en el artículo de implementación básica, utilizamos el Windows Deployment Services (WDS) para cargar la imagen de arranque generada por el MDT, que predeterminadamente se llama LiteToutch_PE con el fin de que cada equipo conectado inicie desde ahí y empiece a obtener los recursos desde el recurso compartido.

Para agregar la imagen, abrimos el Servicio de Implementación de Windows (WDS), expandimos nuestro servidor, hacemos clic derecho en el nodo de Boot Images y seleccionamos Add Boot Image…

image

En la página de Image File, clic en el botón Browse, navegamos hasta el directorio de \Boot en nuestro recurso compartido y seleccionamos el LiteTouch_PE correspondiente a la arquitectura del sistema operativo a implementar.

Para este caso, mi recurso compartido se llama WinSide y desplegaré una imagen de 64 bits, así que la ruta completa sería: C:\WinSide\Boot\LiteTouch_x64.wim

image

Clic en el botón Next para continuar.

En la página de Image Metadata, clic en el botón Next.

En la página de Summary, clic en el botón Next.

En la página de Task Progress, clic en el botón Finish.

image

Probando instalación

¡Todo listo! Nuestro último gran paso es conectar nuestro equipo de referencia, iniciar por red y presionar la tecla de F12 una vez detecte la IP entregada por el Servidor que tiene el WDS:

image

*Nota: Si tenemos más de una imagen en el WDS, tendremos que seleccionar desde cuál deseamos iniciar, de lo contrario, se iniciará con la imagen que esté disponible.

Como no automatizamos la autenticación, veremos dos posibles pantallas al iniciar, la de Bienvenida y la de Credenciales.

En la primera – en caso de que aparezca-, hacemos clic en Run the Deployment Wizard to install a new operating system

image

*Nota: Se supone que esta pantalla no debería aparecer, así que estoy investigando si se trata de un fallo de MDT 2013.

En la segunda, escribimos nuestro usuario con permiso para desplegar las instalaciones y clic en el botón OK:

image

*Nota: Para automatizar la pantalla de credenciales, es necesario modificar el Bootstrap.ini, pero por seguridad es mejor siempre indicar los datos.

Pasados unos segundos, la instalación iniciará y ya solo será esperar hasta que termine completamente; mientras tanto veremos el pequeño cuadro de diálogo indicándonos cada proceso:

image

Aquí es donde nos sentamos a esperar que termine tranquilamente.

¡Espero sea de utilidad y comentarios bienvenidos!

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

Saludos,

Checho

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

Integrar Windows Server 2012 R2 y Windows 8.1 Enterprise en un mismo medio de instalación

El día de ayer, 17 de Octubre de 2013 se lanzó oficialmente Windows 8.1, que a diferencia del RTM liberado hace poco, la Disponibilidad General (GA) marcan los bits finales del producto. Hoy 18 de Octubre se empiezan a liberar los medios físicos para los que desean tener Windows 8.1 y vienen de versiones anteriores como Windows 7, Vista y XP.

Naturalmente, los que tengan acceso a Suscripción MSDN/TechNet o licenciamiento por volumen, ya pueden descargar la edición Enterprise y Datacenter de Windows 8.1 y Server 2012 R2 respectivamente. Por otro lado, Microsoft liberó una descarga gratuita con un período de prueba para ambas versiones, para que toda empresa o entusiasta que desee probar el producto antes de aquirirlo, lo pueda hacer. Más adelante pondré los enlaces.

*Nota: Recordemos que la actualización es totalmente gratuita para los que vienen de Windows 8 y Server 2012.

Ahora, en el mundo IT Pro, es normal que a parte de un método de implementación, tengamos algunos medios aparte para hacer la instalación de ámbos productos, como para un laboratorio, por ejemplo. Aprovechando que desde Windows Vista, tanto la versión Cliente como Servidor comparten un mismo Kernel, podemos jugar con eso y crear un medio de instalación desde donde podamos seleccionar qué versión instalar (Servidor o Cliente) y mantener una sola imagen con un peso considerablemente bajo.

En este artículo pasaré a explicar cómo podemos hacer esto con una serie de pasos utilizando DISM (incluido en el ADK), enfocándome en Windows 8.1 Enterprise y Windows Server 2012 R2, pero se puede conseguir lo mismo con 7, 8, Server 2008 R2 y Server 2012.

Requerimientos

- Un equipo técnico donde esté instalado el ADK para Windows 8.1. Si aún no lo tienen, pueden descargarlo desde aquí:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=39982

- Medio de instalación de Windows 8.1 Enterprise de 32 bits (x86). Pueden descargar el período de prueba gratuito desde aquí:
http://technet.microsoft.com/es-ES/evalcenter/hh699156.aspx

- Medio de instalación de Windows Server 2012 R2. Pueden descargar un período de prueba gratuito desde aquí:
http://technet.microsoft.com/es-ES/evalcenter/dn205286.aspx

- Un equipo de referencia donde se pueda hacer el despliegue. Puede ser una máquina virtual.

*Nota: Para utilizar DISM, no es necesario tener el ADK instalado, pero sí para generar el medio de instalación posteriormente.

Copiando archivos de instalación a carpetas locales

Ya que es necesario interactuar con las imágenes (.WIM), debemos copiar los archivos de instalación de Windows 8.1 y Server 2012 R2 a un directorio local. Para este artículo, y con el objetivo de unificar los comandos y que sean más fáciles de seguir, crearemos dos carpetas en la unidad C:\ llamadas: 81 y R2.

Desde nuestro equipo técnico, ojalá con Windows 8/8.1, montamos las dos imágenes correspondientes a Windows 8.1 Enterprise y Server 2012 R2, desde la Pantalla de Inicio abrimos un Símbolo del Sistema con privilegios elevados (Clic derecho, Ejecutar como administrador) y ejecutamos:

xcopy <UnidadWin>\*.* /s/e/f C:\81

xcopy <UnidadServ>\*.* /s/e/f C:\R2

Donde <UnidadWin> corresponde a la unidad virtual donde está montado el medio de Windows 8.1 Enterprise y <UnidadServ> a la unidad de Server 2012 R2.

Para mi caso, la unidad de Windows era la G:\ y la de Server H:\ así que los comandos serían:

xcopy G:\*.* /s/e/f C:\81

image

xcopy H:\*.* /s/e/f C:\R2

image

*Nota: El tiempo de copiado depende de la velocidad de escritura y lectura del disco local.

Exportando la versión de de Server a una sola imagen

El “truco” conciste básicamente en tener una imagen base, que debe ser de 32 o de 64 bits y exportar la instancia de la edición de Windows Server. Si queremos además agregar múltiples arquitecturas, la imagen base debe ser de 32 bits, para que soporte x86 y AMD64.

*Nota: Recordemos que una imagen de Windows puede contener múltiples ediciones del sistema operativo, puesto que entre todas comparten los mismos recursos necesarios para la instalación, es por esto que el peso no se hace demasiado grande.

Lo que haremos será exportar la imagen de Server 2012 desde su install.wim, a la imagen de Windows 8.1 Enterprise utilizando DISM. Antes de esto, es necesario reconocer el índice correspondiente a la edición que deseamos exportar, ya que una imagen de Server tiene ediciones Core y con GUI (Interfaz). Para esto, ejecutamos el siguiente comando desde un Símbolo del Sistema con privilegios elevados:

Dism /Get-ImageInfo /ImageFile:C:\R2\Sources\install.wim

image

Noten que las ediciones que están en Consola terminan con la palabra CORE y según el resultado, las ediciones que manejan interfaz tienen como índice el 2 y el 4, dependiendo si vamos a instalar STANDARD o DATACENTER. Para este artículo utilizaré el índice de la edición DATACENTER (4), pero ya cada quién elegirá el deseado.

Ya teniendo presente el índice de la edición que vamos a exportar, ejecutamos:

Dism /Export-Image /SourceImageFile:C:\R2\Sources\install.wim /SourceIndex:4
/DestinationImageFile:C:\81\Sources\install.wim

image

La forma más fácil de verificar que todo salió bien, es utilizando \Get-ImageInfo con la imagen de Windows 8.1, y deberíamos ver ya las dos imágenes de cada versión con su respectivo índice:

image

Editando o creando el archivo EI.cfg

El archivo de Configuración de Edición (ei.cfg), se utiliza para especificar la edición de Windows durante la instalación, es decir, gracias a este archivo es que el medio de instalación sabe qué edición debe mostrar, así tenga varias incluídas, como en el medio de Windows 8.

Hasta Windows 7, este archivo estaba presente en casi todos los medios de instalación (por no decir todos), pero en Windows 8 hacia adelante, solo se encuentra en los archivos de instalación de la edición Enterprise.

Lo que debemos hacer, es crearlo o editarlo dependiendo de las ediciones que estemos mezclando; para este artículo, que estamos trabajando con Enterprise, vamos al directorio C:\81\Sources, hacemos clic derecho sobre EI.cfg, seleccionamos Abrir con y utilizamos el Bloc de Notas. Debemos ver algo similar a esto en su contenido:

image

*Nota: Si al darle “Abrir con” no vemos el Bloc de Notas, hacemos clic en “Mostrar más opciones” par desplegar la lista completa.

Basta entonces con quitar la palabra “Enterprise” debajo del parámetro [EditionID], utilizado precisamente para indicar el Identificador (ID) de la Edición de Windows. Quedaría entonces así:

image

Después de esto, hacemos clic en el menú Archivo > Guardar. Esto guardará el cambio sobre el archivo que ya está ubicado en el directorio \Sources.

*Importante: Para los que no lo estén haciendo con Enterprise, es decir, que estén utilizando una imagen de 8/8.1 PRO, deben pegar este contenido en el Bloc de Notas (Lo que hay después y antes de la línea):


[EditionID]


[Channel]
Retail

[VL]
0


Clic en el menú Archivo > Guardar como, cambiar el tipo de archivo a Todos los archivos (*.*), indicarle el nombre de: EI.CFG y ponerlo en el directorio C:\81\Sources

image

Creando la imagen de instalación

El último paso es crear otra vez la imagen (.ISO) para la instalación. Desde la Pantalla de Inicio, buscamos Deployment and Imaging Tools Environment, clic derecho y Ejecutar como administrador.

image

En el Símbolo del Sistema digitamos:

oscdimg –bC:\81\Boot\Etfsboot.com –u2 –h C:\81 C:\Win81R2.iso

image

*Nota 1: El nombre “Win81R2.iso” puede variar, desde que se respete la extensión .iso.

*Nota 2: Crear la imagen es necesario solo si se grabará en algún DVD, o si se desea tener como .ISO; en caso de que la idea sea desplegarlo desde una USB, basta con preparar el dispositivo y copiar todos los archivos de la carpeta C:\81. Pueden ver un paso a paso de cómo prepar un dispositivo en este artículo que escribí hace un tiempo:
http://www.fermu.com/es/articulos/windows/articulos-y-tutoriales/831-preparar-dispositivo-usb-manualmente-para-instalaci%C3%B3n-de-windows-8

Probando la instalación

Si todo sale bien, el asistente de instalación debe ser el de Windows 8.1, pero después de darle clic al botón de Instalar ahora, nos debe aparecer la ventana de selección donde podremos escoger qué versión de Windows deseamos desplegar:

image

Espero sea de utilidad.

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

Saludos,

Checho

Más artículos Página siguiente >