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

El constante pantallazo azul causado por athwbx.sys, Windows PE, Autoruns, DISM y su solución

El caso que pasaré a describir, es uno de los que personalmente más trabajo me ha costado solucionar, pero también en el que más combinación de herramientas he utilizado; por estas razones, quiero compartirlo para otros que a lo mejor se vean en el mismo escenario que yo, y no sepan cómo proceder. Como siempre, lo dividiré en problema, causa y solución.

El problema y su causa

Hace unos días recibí un equipo que tenía un problema bastante preocupante; cada vez que se reiniciaba, justo antes de iniciar sesión, daba un escalofriante pantallazo azul:

10644238_344446339052034_2954703526335869854_o

No importa cuántas veces reiniciara, siempre recibía el BSOD. Por otro lado, no tenía puntos de restauración funcionales el equipo, así que no había cómo devolverlo a un estado donde todo estuviese corriendo bien.

Como el equipo ya llevaba un buen tiempo desde que se instaló, opté por ser práctico e instalar nuevamente el sistema operativo desde cero, pues consideré que perdería más tiempo si me ponía a indagar en el problema. El verdadero dilema empezó cuando terminé de instalar, pues mientras estaba actualizando Windows nuevamente explotó el pantallazo azul, pero la primera vez pude ingresar otra vez a Windows.

Lo primero que hice, fue extraer el Minidump ubicado en C:\Windows\Minidump y lo abrí en otro equipo con Windbg para realizar un análisis.

Ejecutando !Analyze –v en Windbg, me arrojó este resultado en el stack:

BSOD1

Como ven, había incluso múltiples repetisiones del athwbx, correspondiente a athwbx.sys:

BSOD2

El controlador, creado en Octubre del 2013, pertenecía a Qualcomm Atheros Wireless Network Adapter, o en palabras más humanas, al controlador inalámbrico del equipo:

Dr7

Lo más normal en este tipo de casos, es simplemente buscar en la página web del fabricante una versión del controlador más actual, así que bajé uno de Toshiba, que era la marca del portátil y procedí a actualizar… lamentablemente, apenas Windows utilizaba el controlador de alguna forma, volvía a estallar el BSOD.

Lo que hice entonces fue desinstalar todo el controlador, y dejar que Windows lo reconociera desde su propia base de datos, y en efecto, se instaló uno que parecía más actual:

Dvr01

Para mi mala fortuna, no solo volvió a dar el pantallazo azul, sino que se quedó idefinidamente estallando en cada reinicio, ¡otra vez!

Tenía mucho sentido que diera el pantallazo apenas en el logon, pues ahí es donde el sistema operativo carga servicios y controladores; ¿Pero, cómo detener el inicio del controlador en cuestión, cuando ni siquiera tengo acceso a Windows?

Como he mostrado en otros artículos enfocados a implementación, utilizando el ADK es posible generar un Windows PE; pequeño sistema operativo Windows que carga en memoria RAM, con algunas funciones limitadas, pero que al ser sistema operativo, tiene ventajas notables como las de ejecutar algunos tipos de aplicaciones. Autoruns de Sysinternals, es una de ellas y desde Autoruns se puede ver todo lo que inicie en Windows, para todos los usuarios y empezar a deshabilitar según sea necesario.

Lo que hice entonces fue crear un Windows PE desde otro equipo, preparé una USB y arranqué el equipo desde allí. Una vez iniciado, busqué la unidad del PE y ejecuté Autoruns desde allí para luego ir al menú File > Analyze Offline System. Aquí símplemente indiqué la unidad que contenía la instalación de Windows y la ruta de ProgramData para referenciar a todos los perfiles:

image

Al hacer clic en OK, Autoruns cargó nuevamente todos los datos, pero esta vez del sistema local. Con esto, bastaba ir ahora a la pestaña de Drivers, buscar el correspondiente al controlador inalámbrico, es decir, athwbx.sys y deshabilitar la entrada:

image

*Nota: Técnicamente, se podría hacer esto mismo cargando el Hive de System en el Registro de Windows, pero es un procedimiento un poco más complejo.

Cerré Autoruns, la consola del Windows PE y al reiniciar, ya estaba nuevamente en Windows, con el controlador deshabilitado:

Dr1

Ya sabía que no podía habilitarlo ni usar la WiFi, porque volvería a causar el BSOD, así que conecté el equipo por cable y procedí a buscar nuevamente actualizaciones de Windows.

Revisando los resultados, me encontré con una en particular muy interesante:

Dvr02

Era justamente una actualización al controlador inalámbrico que me estaba causando el pantallazo, con fecha de este mes, lo que sugería que corregía el problema que estaba causando en Windows.

Lamentablemente, al intentar instalarlo, Windows internamente debía manipular el controlador anterior, así que volví a recibir una vez más el dichoso pantallazo azul. Intenté desinstalando previamente el controlador desde el administrador de dispositivos, pero si hacía eso, Windows Update no me ofrecía la actualización y si lo dejaba, me regalaba un BSOD al intentar desplegarlo.

Como podrán imaginarse, estaba bastante atascado, pues aunque estaba casi seguro que esa actualización solucionaba el problema, Windows no me la iba a dejar fácil para actualizar… ¿Qué podía hacer, entonces?

La solución

Tal cual he expuesto en más de un caso, las técnicas y herramientas de implementación pueden llegar a ayudar en muchos casos para solución de problemas en Windows. Estaba claro que no podría instalar el controlador online, así que lo único que me quedaba era hacerlo offline, y para esto necesitaría acudir al argumento de /Add-Driver de DISM.

Básicamente, tendría que montar una imagen de Windows 8.1 con DISM, inyectarle el controlador manual, guardar la imagen, preparar la instalación en un .ISO o USB y proceder a instalar Windows nuevamente. Esto no lo podía hacer en la instalación que ya tenía, porque el parámetro de /Add-Driver solo funciona sobre imágenes offline.

Lo primero que tenía que hacer, era encontrar el controlador que ofrecía Windows Update, pues seguramente ese era el unico que solucionaría el problema, así que procedí a utilizar un servicio muy interesante en la página de Windows Update, y es poder consultar sobre un catálogo de controladores la descarga. Como ya tenía el nombre, bastaba con realizar lo siguiente:

1. Navegar hasta la página: http://catalog.update.microsoft.com/v7/site/Home.aspx

2. Instalar el complemento que pide la página.

3. Buscar por el nombre específico del driver, tal cual aparece en Windows Update:

Qualcomm Atheros AR9002WB-1NG Wireless Network Adapter

4. Hacer clic en el botón Agregar.

5. Clic en el enlace de Ver cesta en la parte superior.

6. Clic en el botón Descargar:

image

Después de esto, procedí a inyectarlo con DISM a la imagen de instalación de Windows para que una vez instalado, ya estuviese el controlador actualizado y que no generaba BSOD.

*Nota: Como inyectar controladores requiere un procedimiento, escribí un artículo aparte donde pueden ver el paso a paso:

Inyectar controladores a una imagen offline de Windows 8.1 utilizando DISM.

Después de instalado, el Wi-Fi estaba funcionando y para mi gran fortuna, ¡el problema se había ido! Recordemos que no bastaba con instalar nuevamente Windows.

Al revisar el controlador, pude verificar que se había instalado con Windows por la fecha de creación:

Solved

Solo restaba configurar nuevamente Windows para que se pudiera continuar trabajando con el equipo.

Espero sea de utilidad para los que presenten un problema similar.

PD: No olviden que pueden consultar con la comunidad por sus problema con Windows en los foros de Windows 8.1 de Microsoft Community.

Saludos.

Checho

Inyectar controladores a una imagen offline de Windows 8.1 utilizando DISM

Hace un tiempo, por petición de alguien que me había escrito, creé un artículo donde mostraba paso a paso cómo podíamos generar una imagen de Windows 8.1, integrando la cantidad de actualizaciones deseadas; hoy, gracias a que me he dado cuenta de lo valioso que puede ser en casos de solución de problemas, mostraré cómo pueden hacer lo mismo, pero esta vez inyectando controladores específicos a una imagen para que estén disponibles una vez instalado Windows, si el hardware tiene el dispositivo necesario.

Requerimientos

1. Claramente, necesitamos los archivos de instalación de Windows 8.1, o por lo menos la imagen .WIM, para cuando se vaya a utilizar alguna solución como MDT.

2. Los archivos de instalación para el respectivo controlador; no el ejecutable (.exe), sino lo que utiliza ese ejecutable, es decir, el archivo .INF y .SYS.

*Nota: Microsoft tiene disponible una web en donde se pueden descargar todos los controladores que uno encuentra en Windows Update:
http://catalog.update.microsoft.com/v7/site/Home.aspx

3. Tener instalado el ADK para Windows 8.1 Update. El paquete de instalación lo pueden descargar desde el sitio oficial de Microsoft:
http://www.microsoft.com/en-us/download/details.aspx?id=39982

4. Crear las siguientes 4 carpetas en C:

C:\81

C:\Mount

C:\Drivers

*Nota: Los nombres no son obligatorios, pero yo utilizaré estos durante el resto del post.

Copiando archivos de instalación

Si tenemos un medio .ISO o DVD con los archivos de instalación, es necesario copiar todo el contenido a la carpeta 81, para esto, hacemos clic derecho sobre el botón de Inicio, seleccionamos Símbolo del sistema (Administrador) y allí ejecutamos:

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

Donde <UnidadWin> corresponde a la letra asignada por Windows para nuestro medio después de montarlo o insertarlo; para mi caso, teniendo la letra H, el comando sería:

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

image

El proceso tardará unos minutos.

Preparando controladores

Como mencioné en los requerimientos y por lógica, es necesario tener los archivos de instalación para los controladores, pero no pueden ser extensiones de ejecutables, sólo .INF.

Si conocen específcamente lo que están buscando, la página del catálogo de Windows Update es un lugar ideal, pues me descarga un .cab que luego se puede descomprimir. Desde la página de cada fabricante también se pueden bajar, para luego buscar manualmente los archivos de instalación cuando se descompriman, trabajo que es un poco más complejo.

En mi caso, utilizaré dos controladores bajados del catálogo; uno de Wireless y otro de la tarjeta gráfica:

image

Repito, lo importante es tener el archivo .INF, acompañado del .sys.

Si descargaron desde el catálogo de Windows Update:

Al descargar desde el catálogo como dije, sea baja un .cab dentro de una carpeta:

image

Para descomprimir, hacemos lo siguiente:

1. Renombramos el archivo a algo sencillo, por ejemplo: drv1.sys

image

2. Copiamos el .cab a la unidad raíz de Windows (C:\).

3. Abrimos un símbolo del sistema con privilegios elevados y ejecutamos:

expand C:\drv1.cab –F:* C:\Drivers\

image

Hacemos esto con cada nuevo controlador, cambiando por supuesto el nombre del .cab.

4. Verificamos que los archivos de instalación hayan quedado:

image

*Nota: Es normal que aparezcan muchos otros archivos o incluso .inf, pero siempre habrá uno principal, acompañado por su .sys. El de NVIDIA, por ejemplo, es el de nv_dispwu.inf:

image

Cuando tengamos los archivos listos dentro de la carpeta C:\Drives, podemos proceder a montar la imagen para inyectarlos.

Paso 1: Montar la imagen

En el equipo técnico donde se instaló el ADK y copiamos la imagen, digitamos en la pantalla de inicio: Deployment and Imaging Tools Environment, clic derecho y Ejecutar como administrador:

image

En la consola, procedemos a montar nuestra imagen, en este caso de Windows 8.1 PRO:

Dism /Mount-Image /ImageFile:C:\81\sources\install.wim /Index:1 /MountDir:C:\Mount

image

Paso 2: Inyectar los controladores

Desde la misma consola del Deployment and Imaging Tools Environment, procedemos a inyectar los controladores a la imagen que está montada; puede ser uno a la vez o todos los que haya en una misma carpeta. Pasaré a mostrar ambas opciones, para que el artículo sea más completo:

Para un solo controlador:

Si queremos inyectar un solo controlador, por ejemplo, en mi caso con el de Wireless, ejecutamos:

Dism /Image:C:\Mount /Add-Driver /Driver:C:\Drivers\athwbx.inf

image

El resultado nos debe dar como: The driver package was successfully installed.

*Nota: Después del parámetro de /Driver, es básicamente indicar dónde está nuestro .inf, así que variará para cada uno de ustedes el nombre del archivo.

Para instalar múltiples controladores:

Si lo que deseamos es inyectar todos los controladores disponibles en una carpeta, debemos ejecutar:

Dism /Image:C:\Mount /Add-Driver /Driver:C:\Drivers /Recurse

image

Como ven, DISM es lo suficientemente inteligente para detectar todos los controladores que hayan y de ser posible, realizar la instalación.

Siempre podremos verificar que se hayan instalado ejecutando:

Dism /Image:C:\Mount /Get-Drivers

image

Paso 3: Guardar y desmontar la imagen

Cuando terminemos de inyectar los controladores y estemos satisfechos, procedemos a ejecutar:

Dism /Unmount-Image /MountDir:C:\Mount /Commit

image

Paso 4: Creando la imagen .ISO

Por último, es necesario volver a generar la imagen .ISO de instalación, si es que deseamos utilizar algún medio porque para una USB el proceso es diferente.

Para la ISO, desde la misma consola del Deployment and Imaging Tools Environment, ejecutamos:

oscdimg –bootdata:2#p0,e,bC:\81\boot\Etfsboot.com#pEF,e,bC:\81\efi\microsoft\boot\Efisys.bin –u1 –udfver102 C:\81\ C:\Win81_plus_drivers.iso

image

*Nota 1: Se ejcuta todo en una sola línea.

*Nota 2: El comando permite que la imagen se pueda intalar en un equipo que esté basado en BIOS o en UEFI.

¡Todo listo! Basta con proceder a instalar Windows y el controlador se implementará también.

Espero sea de utilidad.

Saludos.

Checho

Cambiar el método de entrada para el teclado para Windows 8.1 utilizando MDT 2013

Una de las primeras personalizaciones que hacemos al instalar Windows, dejando a un lado la forma en que se despliegue, es configurar el o los métodos de entrada que necesitamos, de acuerdo a la región en donde estemos y los idiomas que manejamos. Esto es fácilmente personalizable desde el Panel de Control > Reloj, idioma y región > Agregar idioma:

image

*Nota: Para una guía completa sobre cómo hacerlo, vean este artículo que escribí hace tiempo en la web de Fermu.com.

Aunque como ven, es mucho más fácil y flexible que en Windows 7 la forma en que se personaliza, es una gran idea automatizar y estandarizar esto en todos los equipos que se implementen de manera masiva, así que se vuelve buena práctica incluir esto en un archivo de respuesta o mejor aún, en las Reglas dentro de MDT.

Automatizar esta configuración no es complejo, pero requiere tener en cuenta algunos detalles; por este motivo, dedicaré este artículo unicamente a explicar el proceso para cambiar el método de entrada en el teclado durante la instalación de Windows 8.1 utilizando Microsoft Deployment Toolkit (MDT).

*Nota: Aquí no explicaré el paso a paso para crear un Deployment Share o agregar sus componentes, pues eso ya está documentado en este post, y aún aplica para 8.1 y MDT 2013.

Obteniendo el formato de la ubicación para el teclado

Lo primero que debemos hacer, antes de ir meter la mano en MDT, es obtener el formato de la ubicación para el teclado que deseamos predeterminar; sin bien esto no es de importancia y además es gráfico – Español (España), por ejemplo-, en una implementación es necesario pensar en términos de cómo lo reconoce el sistema operativo.

Sobre el formato de ubicación

Si monitoreamos un poco con Process Monitor, veremos que cada que agregamos un nuevo idioma en Windows 8/8.1, el sistema operativo modifica el valor Languages en la clave:

HKEY_CURRENT_USER\Control Panel\International\User Profile

Allí, escribe el contenido de valor como texto indicando la ubicación para nuestro teclado, por ejemplo: es-ES. Como en el Panel de Control puede haber varios, el valor también contiene toda la cadena necesaria:

image

Como ven en la captura, el valor tiene es-ES, es-419 y en-GB, correspondientes a España, América Latina y el Reino Unido respectivamente.

Ahora, como subclave de User Profile, Windows crea una clave para cada distribución, y ahí genera dos valores que referencian el formato de ubicación que se está agregando:

image

El primera valor siempre será el nombre del formato en hexadecimal, y el segundo le indica al caché de Windows qué nombre informal debe mostrar en el Panel de Control. Para Español (América Latina), sería así:

image

El valor 580A:0000080A es la forma hexadecimal para referirse a en-419, que a su vez especifica Español (América Latina). El valor CachedLanguageName, tiene como contenido en su cadena Winlangdb.dll, de donde saca el texto a mostrar. Es fácil de comprobar abriendo la DLL con Resource Hacker y explorando su String Table en el nodo 2055:

image

El cache se consulta se consulta por usuario en unas subclaves que varían en nombre ubicadas en: HKEY_CURRENT_USER\Software\Classes\Local Settings\MuiCache

Claramente, los valores de cada sublcave de User Profile van a ser diferente, pues así el sistema operativo reconoce qué formato se está agregando.

En este orden de ideas, basta con agregar un formato en un equipo online y consultar estas claves para saber su nombre en texto y/o hexadecimal; sabiendo esto, estaremos seguros de agregar el nombre exacto al MDT para predeterminal el que deseemos durante nuestra implementación.

*Nota: Por supuesto, también se puede ir a consultar en Google, pero quizá el tiempo sea más largo y los resultados más confusos.

Para la siguiente parte del artículo, tomaré como referencia el formato de Español (América Latina), es decir, 580A:0000080A como hexadecimal, o en-419 como texto.

Personalizando CustomSettings.ini y BootStrap.ini para agregar formato de ubicación

Recordemos que CustomSettings.ini y BootStrap.ini son dos archivos de configuración que utiliza el asistente de implementación de MDT, con el objetivo de mantener todas las personalizaciones y configuraciones, además de controlar el proceso de instalación. En otras palabras, aquí podemos automatizar y predeterminar todo lo que se puede hacer mientras Windows se instala en el equipo.

En nuestro servidor MDT, hacemos clic derecho sobre el Deployment Share que hayamos creado y seleccionamos Properties:

image

En la ventana de Properties, nos pasamos a la pestaña de Rules, donde veremos todo lo que está configurado para CustomSettings.ini y el acceso al BootStrap.ini:

image

Aquí debemos indiciar y personalizar  5 propiedades:
SkipLocaleSelection, KeyboardLocale, UserLocale, SkipTimeZone y TimeZoneName.

SkpLocaleSelection y SkipTimeZone nos permitirán ocultar la ventana en la que indicamos estas personalizaciones durante el asistente de instalación; KeyBoardLocale y UserLocale es donde le decimos a Windows qué formato de ubicación predeterminará. TimeZoneName recibe como valor el nombre de la zona donde nos econtremos con su formato global.

Las dos primeras propiedades basta con asignarles el valor de YES para que estén listas:

SkipLocaleSelection=YES
SkipTimeZone=YES

image

KeyBoardLocale y UserLocale reciben como valor el formato en texto o hexadecimal que previamente consultamos para nuestra ubicación del teclado. Ambos pueden ser en texto, en hexadecimal o variado.

Para mi caso, Español (América Latina), sería:

KeyboardLocale=580A:0000080A
UserLocale=es-419

image

Como dije antes, KeyboardLocale podría tener es-419 y UserLocale 580A:0000080A. No es necesario que los dos estén con un mismo tipo de valor, más sí sería lo adecuado para evitar confusiones. Como el texto es lo más natural para nosotros, podría ser:

KeyboardLocale=es-419
UserLocale=es-419

Por último, a TimeZoneName le asignaré lo que corresponde a formato de Bogotá, Lima, Quito, es decir:

TimeZoneName=SA Pacific Standard Time

Todo quedaría así:

image

Una vez hecho esto, clic en el botón de la parte inferior derecha Edit Bootstrap.ini:

image

Aquí debemos agregar también KeyboardLocale para que funcione correctamente después de instalado Windows. Lo pondré en formato hexadecimal para demostrar que puede variarse con respecto al valor de tipo texto es-419:

image

Clic luego en File > Save para que el Bootstrap.ini quede guardado con los cambios.

En la ventana de Properties, clic en Apply y luego OK para terminar.

*Nota: Para recordar, si van a agregar un formato que no sea Español (América Latina), el valor tipo texto y hexadecimal será diferente, así que es necesario verificarlo desde Windows como lo mostré al principio antes de configurar los archivos de configuración en MDT.

Actualizando recurso compartido

Por último, clic derecho en nuestro Deployment Share y seleccionamos Update Deployment Share:

image

En la ventana de Update Deployment Share Wizard, dejamos la opción predeterminada y clic en el botón Next:

image

En la ventana de Summary, clic en Next.

En la ventana de Confirmation, clic en Finish.

Probando instalación

Lo siguiente es montar la imagen LiteTouch a nuestro WDS, conectar un equipo cliente e iniciar la instalación desde MDT.

Lo primero que deben notar, es que no les aparecerá la ventana donde se solicita idioma, método de entrada y región, pues se obvio utilizando las propiedades de Skip.

Al terminar la instalación, en el Panel de Control > Reloj, idioma y región > Agregar idioma debería aparecer el formato que se indicó como predeterminado, sin importar qué idioma tenga el sistema operativo:

image

Muchas gracias a Severo Alonso, que me escribió consultando sobre este proceso y me dio una gran idea para publicar un nuevo post.

Espero les sea de utilidad.

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

Implementación básica de Windows 8.1 Update utilizando System Center Configuration Manager 2012 R2

Hasta el día de hoy, me había prometido no escribir sobre temas de System Center en este blog por tres razones básicas:

1) System Center, representado por todos sus “sabores”, es todo un mundo aparte, tanto que podría separarse completamente de lo que es Windows Client.

2) Por el motivo anterior, no cuento con conocimientos de la Suite, específicamente de System Center Configuration Manager (SCCM), y la idea de este blog siempre ha sido poder compartir lo que sé y lo que he ido aprendiendo.

3) Adopté como filosofía intentar crear contenido sobre recursos que sean gratuitos para que todos los interesados los puedan seguir.

Sin embargo, en estos años que estuve visitando varias empresas en mi país Colombia, con temas de implementación, me encontré con que muchas adoptan SCCM para hacer sus despliegues; y, aunque MDT es muy poderosa, está hecha para que cuando se combine con System Center Configuration Manager, se cree una solución de implementación completamente robusta y flexible.

Dicho esto, tengo como propósito empezar a investigar, aprender y documentar aquí algunos procesos que se pueden llevar a cabo combinando las dos soluciones, pero todo enfocado a la implementación de Windows; no tocaré ni documentaré por ahora temas específicos de System Center Configuration Manager, más allá de los necesarios para que los procedimientos funcionen.

Hoy empezaré con lo elemental, y es la forma de cómo realizar una implementación básica de Windows 8.1 Update utilizando solamente System Center Configuration Manager (SCCM).

*Nota: En los próximos artículos, mostraré cómo integrar SCCM con MDT y lo que esto puede brindar a la compañía.

Requerimientos

- Un ambiente con System Center Configuration Manager (SCCM) implementado. Esto representa mínimamente dos servidores y un entorno de dominio.

*Nota: Para los que apenas van a implementar SCCM, tal vez este no sea el post ideal; sin embargo, yo me apoyé en este artículo de SCCMENTOR y este de TechNet UK.

Como experiencia personal, debo agregar que para implementar sistemas operativos, es necesario recordar crear un Boundary, en mi caso de tipo Active Directory Site:

image

*Nota: Sin el Boundary, recibirán un error al correr el Windows PE que no dejará iniciar el procedimiento de implementación.

- Crear una carpeta en la raíz del disco C:\ llamada 81, copiar todos los archivos de instalación de Windows o una imagen .WIM personalizada y compartir la carpeta para que se pueda acceder a través de la red. La carpeta quedaría entonces C:\81.

Para mi caso, que la tengo en el servidor llamado SRVCM, la ruta completa sería: \\SRVCM\81

- Un paquete de instalación .MSI para cualquier aplicación. En mi caso, utilizaré la de 7zip para ilustrar la forma en que se agrega una aplicación básica a la implementación.

La aplicación debe estar en un recurso compartido también.

*Nota: System Center Configuration Manager soporta muchos tipos de aplicaciones para desplegar, así que no es necesario que sea .MSI; sin embargo, desplegar un .EXE por ejemplo, tiene un procedimiento un poco más complejo, por eso no lo incluyo aquí.

Agregando y distribuyendo sistema operativo

En el servidor donde está instalado el SCCM, abrimos el System Center Manager Console, clic en el nodo inferior izquierdo de Software Library, expandimos la carpeta de Operating Systems, clic derecho en Operating System Images y seleccionamos Add Operating System Image:

image

En la ventana de Data Source, hacemos clic en el botón Browse y navegamos manualmente hasta la ruta de red donde pusimos nuestros archivos de instalación de Windows 8.1, y allí abrimos la carpeta Sources y seleccionamos install.wim. Para mi caso, la ruta completa sería \\SRVCM\81\Sources\install.wim

image

*Nota: Si solo copiamos el archivo .WIM de una imagen maestra, entonces no habría que buscar carpeta de sources; solo seleccionar el recurso y la imagen.

Hacemos clic en Next.

En la página de General, indicamos nombre y versión del sistema operativo a desplegar, y clic en el botón Next:

image

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

En la página de Completion, clic en el botón Close.

Windows debería listarse en el panel central:

image

Hacemos clic derecho sobre el sistema operativo agregado, y en el menú contextual, seleccionamos Distribute Content:

image

En la página de General del asistente, dejamos la selección predeterminada y clic en Next.

image

En la página de Content Destination, clic en el botón Add y seleccionamos Distribution Point:

image

En la ventana de Add Distributions Points, seleccionamos nuestro servidor de distribución en la lista que nos aparezca (puede haber uno o más) y clic en el botón OK:

image

De regreso en la página de Content Destination, con el servidor ya listado en la parte central, hacemos clic en el botón Next:

image

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

En la página de Completion, revisamos que haya quedado el Distribution Point listado, que todo esté en verde, y clic en Close:

image

Agregando y distribuyendo aplicación

Expandimos la carpeta de Application Management, clic derecho en Applications y seleccionamos Create Application:

image

En la página de General en el asistente, clic en el botón Browse, navegamos hasta la ruta compartida de nuestro .MSI (en mi caso la del 7zip), seleccionamos el paquete y clic en el botón OK.

Para mi caso, con 7zip, ubicado en la ruta \\SRVCM\7zip\7z920-x64.msi, quedaría así:

image

Clic en el botón Next.

Es posible que les aparezca una ventana similar a la siguiente que advierte sobre el editor desconocido; hacer clic en Yes si confían:

image

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

En la página de General Information, solo debemos (si queremos) llenar algunos campos correspondientes a la información de la aplicación.

Lo interesante aquí, es que System Center Configuration Manger creará el comando para que el despliegue sea desatendido, cosa que en MDT debíamos especificar siempre de forma manual.

En Install behavior, seleccionamos Install for system y finalmente clic en Next:

image

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

Después de unos segundos, estaré en la página de Completion. Aquí revisamos que todo esté en verd y clic en Close para terminar.

Como en el sistema operativo, hacemos clic derecho sobre la aplicación que está listada en el la parte central de Applications y seleccionamos Distribute Content:

image

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

image

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

En la página de Content Destination, hacemos también clic en el botón Add, luego Distribution Point, seleccionamos el servidor de distribución y clic en OK:

image

Nuevamente en la página de Content Destination, con el servidor de distribución seleccionado y agregado, clic en Next:

image

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

En la página de Completion, revisar que todo esté en verde y clic en Close.

Creando y desplegando Secuencia de Tareas

Finalmente, como en MDT, necesitamos una Secuencia de Tareas que administre todo el proceso de implementación.

Para crearla, expandimos nuevamente el nodo de Operating Systems, clic derecho en Task Sequence y en Create Task Sequence:

image

En la página de Create New Task Sequence, dejamos la selección de Install an existing image package y clic en Next:

image

En la ventana de Task Sequence Information, le ponemos un nombre a nuestra Secuencia de Tareas, una descripción, y hacemos clic en el botón Browse para escoger la imagen de arranque. Predeterminadamente nos aparecerá una para 32 y otra para 64 bits, pues son instaladas al desplegar el ADK mientras se implementa SCCM.

Escogemos la que necesitemos de acuerdo a la arquitectura a desplegar, y clic en Next:

image

En la página de Install Windows, hacemos clic en el botón de Browse al lado de Image package y seleccionamos nuestra imagen de instalación; aparecerán todas las que antes se agregaron al nodo de Operating System Images.

Luego decidimos qué edición instalar (si tiene varias), si queremos que habilite BitLocker y cómo queremos generar la contraseña de administrador para luego hacer clic en Next:

image

En la página de Configure Network, le indicamos unión al grupo de hogar o al dominio y clic en el botón Next:

image

En la página de Install Configuration Manager, dejamos la opción predeterminada y clic en el botón Next:

image

En la página de State Migration, quitamos la selección de los tres tipos de captura (no estamos haciendo migración) y clic en Next:

image

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

image

En la página de Install Applications, clic en el icono del Sol para agregar una nueva aplicación del repositorio de paquetes que tenemos:

image

Seleccionamos la aplicación (en mi caso 7-Zip), clic en OK, y en la página de Install Aplications, clic en Next.

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

En la página de Completion, verificar que todo esté en verde y clic en Close para terminar.

Nuestra Secuencia de Tareas se debe ver ahora creada:

image

Nuestro último paso, es publicar la Secuencia de Tareas para que cada equipo que se conecte a la red pueda descargar e instalar el sistema operativo. Para esto:

Hacemos clic derecho en la Secuencia de Tareas recién creada y seleccionamos Deploy:

image

En la ventana de General en el asistente, hacemos clic en el botón Browse al lado de Collection y escogemos: All Unknown Computers y clic en Next:

image

En la página de Deployment Settings, seleccionamos Configuration Manager clients, media and PXE debajo de Make available to the following y clic en Next:

image

En el resto de páginas, dejamos los valores predeterminados y hacemos clic en Next hasta llegar a la página de Completion; aquí revisamos que todo esté en verde y clic en Close:

image

Ejecutando y probando instalación

Finalmente, conectamos nuestro equipo cliente, nos aseguramos de que esté en el mismo segmento de red y hacemos el arranque por red para que detecte el PXE e inicie el Windows PE que envía Configuration Manager.

Si estamos por UEFI, vamos a tener una respuesta parecida a la siguiente captura una vez inicie por red:

image

*Nota: System Center Configuration Manager (SCCM) utiliza el Servicio de WDS para realizar las instalaciones por red.

Al presionar una tecla, Configuration Manager iniciará la descarga del Windows PE para mostrar el asistente:

image

En la primera ventana del asistente, nos debe pedir contraseña de acuerdo a si se lo indicamos o no durante la creación del Task Sequence:

image

Aquí bastará con hacer clic en Next.

En la página de Select task sequence to run, escogemos la Secuencia de Tareas que creamos y clic en el botón Next para iniciar:

image

Lo siguiente será dejar que Configuration Manager haga todo el resto del trabajo, muy similar a lo que pasa después de pasar el Lite Touch Installation (LTI) en MDT:

image

image

*Nota: El tiempo de instalación dependerá de los recursos de red y de lo que se esté implementando.

Al terminar, e iniciar sesión por primera vez, deberíamos tener listo nuestro Windows 8.1 con las aplicaciones que hayamos desplegado:

image

En los próximos posts, veremos cómo podemos integrar Configuration Manager con MDT y sacar más provecho de esta gran solución.

Espero sea de utilidad.

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

Saludos.

Checho

Restaurar el Gestor de Arranque predeterminado de Windows 8.1 al instalar dual boot con Windows 7

Es muy normal que en un ambiente corporativo, o de laboratorio, cuando sale una nueva versión de Windows y estamos probando, hacer un dual boot con la versión actual y más nueva del sistema operativo, en este caso Windows 7 y Windows 8.1. De esta forma, se puede probar todas las nuevas características sin comprometer los escenarios que ya tengamos en la versión anterior que para el momento, seguramente es bastante familiar ya en cuanto a uso.

Siempre el orden natural para instalar, es del más viejo al más nuevo, de esta forma, el Gestor de Arranque de Windows puede siempre garantizar la última versión y es poco probable que tengamos problemas para ingresar a alguna de las versiones instaladas.

Con Windows 7 y Windows 8/8.1, no importa mucho en qué orden se instale, pero el último que se despliegue, tendrá la prioridad para mostrar su gestor de arranque, lo que puede ser algo un poco incómodo para algunas personas, pues obviamente es más atractivo a la vista el de Windows 8/8.1.

Así luce el gestor de arranque de Windows 7, cuando es el último en instalar:

image

En este post, mostraré paso a paso cómo podemos recuperar el Gestor de Arranque de Windows 8.1, sin comprometer el inicio de Windows 7 para los que tengan el mismo inconveniente.

Predeterminando el Gestor de Arranque de Windows 8.1

1. Lo primero que debemos hacer, es iniciar sesión con alguno de los sistemas operativos instalados; en preferencia para este artículo, recomiendo arrancar desde Windows 8.1.

2. En Windows 8.1, hacemos clic derecho sobre el botón de Inicio, y seleccionamos Símbolo del sistema (administrador). Esto abrirá una consola con privilegios elevados:

image

3. Ejecutamos:

bcdboot <Win8Part>\Windows

Donde <Win8Part> es el disco o partición donde está instalado Windows 8; en mi caso, que está en el C:\, sería:

bcdboot C:\Windows

image

Es así de simple; los archivos de arranque se remplazarán por los de Windows 8, lo predetermina y por ende, se mostrará el menú gráfico en el próximo reinicio:

image

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

Saludos,

Checho

Habilitar .NET Framework 3.5 en una imagen offline de Windows 8.1 utilizando PowerShell

Desde que en algún artículo mencioné que me gustaba recibir correos, sobre todo cuando lograba sacar de ahí un artículo nuevo, la cantidad incrementó considerablemente, así que les agradezco mucho a todos y espero que las respuestas hayan podido satisfacerlos.

Hace un par de días, recibí uno que me llevó a crear este artículo, pues el usuario deseaba saber si así como las actualizaciones, uno podía habilitar el .NET Framework en una imagen antes de instalado utilizando PowerShell en conjunto con el ADK. Yo había escrito un artículo donde mostraba cómo hacerlo, pero con MDT, así que me pareció una idea perfecta documentarlo acá en vez de responderlo solo a él, pues quizá varios se estén haciendo la misma pregunta.

En este post, muy similar al que escribí para agregar el Update 1 a una imagen, mostraré cómo podemos habilitar el .NET Framework 3.5 para luego montar la imagen y asegurarnos que la instalación ya lo tenga al terminar.

Requerimientos

- El 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 el equipo técnico.

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

- Una carpeta en la raíz de Windows llamada 81, es decir: C:\81

- Una carpeta en la raíz de Windows llamada Mount, es decir: C:\Mount

Copiando archivos de instalación

En caso de que tengamos los archivos de instalación de Windows en un medio, es necesario primero copiarlos localmente para poder manipularlos. Para esto, montamos la imagen en una unidad virtual haciendo doble clic y procedemos a pasar los archivos:

Desde la Pantalla de Inicio, buscamos cmd, clic derecho y Ejecutar como adminsitrador:

FX1

En el símbolo del sistema, ejecutamos:

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

Donde <UnidadWin>, es la unidad en la que se montó los archivos de instalación. Por ejemplo, en mi caso que es la G:\, el comando sería:

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

image

*Nota: El proceso puede tardar algunos minutos.

Montando la imagen

El siguiente paso, es montar nuestra imagen al directorio C:\Mount, para que podamos hacer tareas de mantenimiento, como habilitar características, inyectar características o incluso instalar controladores.

En el equipo técnico donde está instalado el ADK, buscamos PowerShell desde la Pantalla de Inicio, clic derecho y Ejecutar como administrador:

image

Antes de montar, debemos conocer los índices de las imágenes que incorpora el archivo .WIM; para esto, ejecutamos:

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

image

*Nota: Recordemos que si nuestra imagen no es de Enteprise, muy seguramente tendrá por lo menos dos imágenes internas correspondientes a PRO y a 8.1.

Es necesario que tomemos nota del índice a montar, para mi caso, el 1 correspondiente a Windows 8.1 Enterprise.

Desde el mismo PowerShell, una vez sepamos nuestro índice, ejecutamos:

Mount-WindowsImage -ImagePath C:\81\sources\install.wim –Index # -Path C:\Mount

Donde #, corresponde al índice de la imagen. Para mi caso, siendo el 1:

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

image

*Nota: Es normal que el proceso tarde varios minutos.

Nuestra carpeta de Mount, ahora debe tener contenido similar a nuestro directorio principal donde se instala el sistema operativo:

image

Activando .NET Framework

Esta es la parte más importante, pues es donde le diremos a la imagen montada que habilite el .NET Framework 3.5; para esto, desde la consola de PowerShell, ejecutamos:

Enable-WindowsOptionalFeature –Path C:\Mount –FeatureName NetFx3 –Source C:\81\sources\sxs

image

*Nota 1: El último argumento u optión, Source, hace el trabajo de indicarle a la imagen dónde están los archivos de instalación y ahí es donde referenciamos la carpeta sxs en los archivos fuente de Windows para que habilite la característica.

*Nota 2: Es necesario respetar mayúsculas y minúsculas del nombre NetFx3. Pueden ver la captura más grande haciendo clic en ella.

Si quieren habilitar otra característica como algún juego, o hasta Hyper-V, deben especificarla de la misma forma. Para saber todos los nombres, pueden usar el cmd-let en un equipo online: Get-WindowsOptionalFeature –Online.

Desmontando y guardando cambios

Una vez terminado lo anterior, procedemos desde la consola de PowerShell a desmontar la imagen guardando cambios para que el .NET Framework 3.5 se quede habilitado.

Ejecutamos:

Dismount-WindowsImage –Path C:\Mount –Save

image

*Nota: Esto puede tardar varios minutos; además, recomiendo cerrar cualquier otra consola o ventana del Explorador abierta mientras se hace este proceso.

Creando imagen .ISO de instalación

Finalmente, procedemos a crear nuestra imagen booteable nuevamente para poder hacer la instalación en cualquier equipo. Para esto, buscamos Deployment and Imaging Tools Environment en la Pantalla de Inicio, clic derecho y Ejecutar como administrador:

image

Ahora, crearemos un medio de instalación que pueda arrancar tanto en BIOS como en UEFI. Desde la consola, ejecutamos:

Oscdimg –m –o –u2 –udfver102 –bootdata:2#p0,e,bC:\81\boot\Etfsboot.com#pEF,e,bC:\81\efi\microsoft\boot\efisys.bin C:\81 C:\Win81_Fx3.iso

image

*Nota: Todo es una sola línea.

Instalando y probando

Nuestro último paso, consiste en realizar la instalación del sistema operativo, sea en una máquina virtual o física y no debería importar si es BIOS UEFI o LEGACY BIOS.

Una vez terminada la instalación, deberíamos ver el .NET Framework 3.5 activado si vamos al Panel de Control > Programas > Activar o desactivar características de Windows:

image

Espero sea de utilidad.

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

Saludos.

Checho

Implementando Internet Explorer Enterprise Mode para Windows 7/8.1 Update 1

Para los que muy amablemente se toman el tiempo de ingresar a este blog con cierta frecuencia, o que han llegado a diferentes artículos aquí por una u otra razón, se habrán dado cuenta que hace más de un mes no escribo nada, algo que he tratado sea poco común. La razón, es que estaba bastante consumido en tiempo por el proyecto de grado que debo exponer en las próximas semanas en mi Universidad.

Afortunadamente para mi, estoy en la etapa final, y eso me ha dado un espacio para compartir aquí una de las características más interesantes que introdujo el Update para Windows 8.1 y Windows Server 2012 R2: Internet Explorer Enterprise Mode.

Pasaré entonces a hablar en qué consiste Enterprise Mode en términos generales, y después mostraré cómo podemos realizar una implementación básica en nuestra organización, de forma que podamos sacar provecho para usuarios de Windows 7 y Windows 8.1 Update.

Sobre IE 11 Enterprise Mode

Hace ya casi un par de años, en los tiempos de Windows 7 e Internet Explorer 9, escribí un artículo describiendo lo más detallado posible cómo funcionaba la Vista de Compatibilidad. Básicamente, se encargaba de renderizar el contenido de la aplicación web de acuerdo a los datos que devolvía el navegador en la Cadena de Agente.

La vista de compatibilidad cambiaba esa Cadena para que le mintiera al servidor y se mostrara como una versión diferente del navegador, por ejemplo: IE 7 o IE 5.

Sin embargo, esto no llegó a ser tan funcional, pues algunos sitios continuaban con problemas, o los usuarios manipulaban la cadena al presionar el botón de la Vista de Compatibilidad y se generaban problemas. Hay que recordar que esta configuración no era para nada administrable.

Enterprise Mode, es mucho más que una cadena engañosa que ayuda a renderizar el sitio; pues se trata de brindar una compatibilidad mejorada para emular Internet Explorer 8 basado en los siguientes componentes:

image

Como ven, aparte de la Cadena de Agente, ahora IE 11 trae de vuelta componentes ActiveX, Binarios, Funciones descontinuadas y un trabajo de Caching para que la emulación sea lo más parecida a como se comportaba naturalmente Internet Explorer 8. Hay que tener en cuenta, que no todos estos componentes son los tenía IE8, el equipo de Internet Explorer se concentró en traer los más utilizados y que por ende garantizarían un porcentaje muy alto de compatibilidad para los sitios viejos.

*Nota: La razón principal por la que se emula Internet Explorer 8, es que aún tiene más del 20% del mercado, pues es la versión que estaba predeterminadamente en Windows 7 y la última que soportó el retirado Windows XP. Más detalles técnicos, aquí.

Enterprise Mode no está habilitado de forma predeterminada como sí sucede con la Vista de Compatibilidad y otras opciones incluidas en las herramientas de desarrollo (F12); así que se habilita manipulando el Registro de Windows, o como debe ser, de una forma centralizada desde el área de IT con un par de nuevas directivas de grupo incluidas en el Update 1.

Lo más interesante, es que utilizando un archivo XML, podemos granular los sitios que se van a emular en Internet Explorer 8; una vez implementado el archivo dentro de las directivas, cada sitio incluido tendrá un icono de unos edificios en la parte izquierda de la barra de direcciones, y además trabajará siempre emulando IE8, por ejemplo:

image

Enterprise Mode se puede habilitar para que cada usuario lo pueda activar desde el menú de Herramientas de Internet Explorer 11, o para que los sitios indicados se emulen de forma obligatoria, tal cual una directiva sin que se puedan modificar. Daré el detalle en lo que sigue.

Implementando Enterprise Mode

Implementar Enterprise Mode en nuestra organización, es relativamente fácil y la infraestructura dependerá de qué tanta gestión se le quiera dar.

Yo me concentraré en el considero, sería el camino más adecuado, y es permitir a los usuarios de la organización que activen o desactiven Enterprise Mode en los sitios que naveguen, monitorear esto y de acuerdo a los sitios que se hayan identificado corren mejor emulando IE8, se despliegue un XML para que a todos los usuarios se les aplique y no lo puedan cambiar.

Requerimientos:

- Un Servidor 2008/2008 R2/2012/2012 R2 en donde se pueda instalar un sitio de IIS y en el que todos los equipos de la empresa tengan acceso.

- En el Servidor donde se instale el IIS, crear una carpeta llamada ModoEmpresarial en el directorio: C:\inetpub\, es decir: C:\inetpub\ModoEmpresarial.

*Nota 1: El nombre de la carpeta puede ser cualquiera diferente a ModoEmpresarial.

*Nota 2: Los pasos para instalar y configurar el IIS, previos a crear la carpeta, están más adelante en Instalando y configurando el servidor IIS.

- Un controlador de dominio, de preferencia con Server 2012 R2 Update, donde se van a implementar las directivas de grupo referentes a Enterprise Mode.

- Descargar e instalar en el Controlador de Dominio el Enterprise Mode Site List Manager para generar el XML de una forma simple:
http://www.microsoft.com/en-us/download/details.aspx?id=42501

Instalando y configurando el servidor IIS

Para este artículo, el servidor IIS y el controlador de Dominio estarán en el mismo equipo, pero obviamente en una organización es muy probable que varíe.

Desde el Dashboard en el Servidor, clic en Add Roles and Features para abrir el asistente de roles y características.

En la página de Before you begin, clic en Next:

image

En la página de Select installation type, clic en Next:

image

En la página de Select destination server, escoger el servidor donde se instalará el rol y clic en el botón Next:

image

En la página de Select server roles, escoger Web Server (IIS), y en la nueva ventana, clic en Add Features:

image

Clic en el botón Next.

En la página de Features, clic en el botón Next:

image

En la página de Web Server Role (IIS), clic en Next:

image

En la página de Role Services, buscamos el nodo de Application Development, seleccionamos ASP y en la ventana emergente, clic en Add Features. Nos debe quedar así:

image

*Nota: El rol de ASP es necesario para poder recibir el log que entra de cada equipo cliente al activar o desactivar Enterprise Mode en algún sitio.

Clic en el botón Next.

En la página de Confirmation, clic en el botón Install:

image

*Nota: El proceso puede tardar algunos minutos.

En la página final de Results, clic en el botón Close para terminar:

image

Configurando el sitio

Ya está instalado nuestro IIS, ahora es necesario crear un nuevo sitio que de preferencia, sea explícito para recibir todo los logs de Enterprise Mode únicamente.

Desde el Dashboard, clic en el menú de Tools en la parte superior derecha y seleccionamos Internet Information Services (IIS) Manager.

En la consola, expandimos nuestro servidor, clic derecho en el nodo de Sites y seleccionamos Add Website…

image

Lo importante aquí, es asignar nombre, la ruta de nuestra carpeta ModoEmpresarial creada en los requerimientos y establecer un puerto:

image

El puerto escogí que fuera el 8080, pero bien podría ser el 80, 81 o cualquier otro disponible.

Clic en el botón OK para terminar. El sitio debe quedar listado en el nodo de Sites.

Ahora, desde la Pantalla de Inicio en el servidor de IIS, buscamos Notepad, clic derecho y Ejecutar como administrador.

En el Bloc de Notas, pegamos la siguiente información:

<% @ LANGUAGE=javascript %>

<%

Response.AppendToLog("Enterprise Mode;" + Request.Form("URL") + " ;" +
Request.Form("EnterpriseMode"));

%>

Se vería así:

image

Hacemos clic en el menú Archivo > Guardar como…, navegamos hasta C:\inetput\ModoEmpresarial, especificamos el nombre ModoEmpresarial.asp al archivo, escogemos Todos los tipos al lado de Guardar como tipo y clic en Guardar:

image

Nota: Este archivo .asp no lo cree yo; fue tomado en base a la presentación hecha por Fred Pullen de Microsoft en el TechED 2014, pues aún no hay documentación oficial sobre este proceso.

Por último, volvemos a la consola de IIS Manager, seleccionamos nuestro sitio debajo del nodo de Sites, y hacemos doble clic en Logging para personalizar qué deseamos que nos capture de cada equipo que reporte páginas para Enterprise Mode:

image

Hacemos clic en el botón Select Fields dentro de Logging y aquí ya escogemos a preferencia qué deseamos aparezca en el archivo de log. Lo importante es que se mantenga el URI Query. Por ejemplo, yo quiero ver la fecha, la IP, nombre de usuario y máquina:

image

Hacemos clic en el botón Apply del panel derecho.

Para finalizar, seleccionamos nuestro sistio y en el panel de Manage Website, hacemos clic en el enlace de Restart:

image

Es buena práctica que antes de pasar a lo siguiente, prueben desde los clientes el acceso al sitio creado de IIS, en este caso quedaría: http://zion:8080/ donde “zion” hace referencia al nombre del equipo donde está instalado IIS:

image

*Nota 1: Cuando uno crea un nuevo sitio, el .html predeterminado no se crea con él; lo que yo hice fue copiarlo de la carpeta wwwroot ubicada en inetput a la carpeta ModoEmpresarial para que me abriera algo al ingresar.

*Nota 2: Para muchos es más que obvio, pero paso a decir lo siguiente porque para mi no lo fue (pasé de novato)… es necesario crear una regla de Inbound en el Firewall donde está el IIS correspondiente al puerto (en este caso 8080) para que la conexión sea efectiva.

Creando Directiva de Grupo (Parte 1)

Después de instalar, configurar y haber probado el acceso al sitio, nos queda implementar la primera directiva de grupo encargada de enviar toda evidencia de activación o desactivación de Enterprise Mode al log de IIS. Además de esto, la directiva también habilitará Enterprise Mode para que cada usuario pueda emular un sitio yendo al menú Herramientas > Modo Empresarial.

Dicho esto, en el Controlador de Dominio, abrimos el Administrador de Directivas de Grupo, editamos nuestra plantilla y navegamos hasta:

Computer Configuration\Policies\Administrative Templates\Windows Components\Internet Explorer

Doble clic en la plantilla:

Let users turn on and use  Enterprise Mode from the tools menu.

Habilitamos la plantilla y en la dirección que nos pide en la parte inferior, escribimos la del sitio del IIS que creamos, agregando el archivo .asp creado, por ejemplo:

http://zion:8080/ModoEmpresarial.asp

image

*Nota: Esta directiva se puede habilitar sin necesidad de agregar el sitio IIS, de esa forma, cada usuario podría activar Enterprise Mode, pero no generaría logs en el servidor.

Probando directiva

En los equipos cliente, basta iniciar sesión con un usuario de dominio, o actualizar las directivas de grupo en caso de que ya se haya iniciado con el comando gpupdate /force, y empezar a activar los sitios.

Para seguir en un orden este artículo, utilizaré una página fictisia, en este caso, la predeterminada del IIS, agregando una pequeña aplicación (http://zion/HolaMundo).

Como usuario piloto, lo que tendría que hacer es ir al menú Herramientas y habilitar el Enterprise Mode para esa web en específico:

image

El sitio volverá a cargar, pero el resultado será diferente ahora:

image

Como ven, aparece el icono de unos edificios indicando que corre sobre Enterprise Mode. Si el sitio tuviese algún tipo de problema de compatibilidad en la aplicación de HolaMundo solamente, se podría ver ahora mucho mejor, pues en este momento estaría andando de forma emulada sobre IE8.

¿Qué pasa en el Servidor? Basta con ir a donde está el IIS instalado y navegar hasta la carpeta de Logs en: C:\inetput\logs\LogFiles\, ahí abrimos la carpeta correspondiente a nuestro sitio (aparecen en el mismo orden que en el IIS pero con un código) y ver todos los archivos logs que se han generado:

image

Al abrir el último, nos encontraremos con las líneas que nos permitirán saber qué han o no activado los usuarios para Enterprise Mode:

EM

En este caso, sabemos que en el equipo ZION, se activó el Enterprise Mode para la aplicación HolaMundo que tiene como raíz http://zion.

Creando Directiva de Grupo (Parte 2)

Esta es la última parte, donde después de ver el log de acuerdo al tiempo que hayas especificado en el Logging dentro del IIS, decides qué sitios se están reportando con más frecuencia para ser usados emulando IE8 a través del Enteprise Mode.

Continuando el ejemplo, sabemos que http://zion/ como raíz funciona bien, pero la aplicación de http://zion/HolaMundo es la que están activando con Enterprise Mode, por ende, es la que se debe implementar para todos los usuarios.

Creando el XML con el Enterprise Mode List Manager

Con el Enterprise Mode Site List Manager, podemos crear una lista completa de sitios, sea raíz o una aplicación interna para decidir qué corre y no corre sobre Enterprise Mode.

Instalamos la herramienta en el Controlador de Dominio, aunque no es necesario allí, y la ejecutamos para empezar a administrar nuestros sitios:

image

Hacemos clic en el botón Add agregamos la URL del sitio (sin el http) especificamos si deseamos correrlo sobre Enterprise Mode o Default Mod y clic en el botón Save:

image 

Nos debe quedar todo listado:

image

Cuando hayamos agregado todos los sitios de la misma forma, hacemos clic en el menú File y seleccionamos Save to XML:

image

Ese XML lo debemos guardar en un recurso compartido donde todos los usuarios puedan tener acceso una vez aplicada la directiva.

En el controlador de dominio, abrimos nuestro Administrador de Directivas de Grupo, editamos nuestra plantilla y navegamos hasta:

Computer Configuration\Policies\Administrative Templates\Windows Components\Internet Explorer

Doble clic en la plantilla: Use the Enterprise Mode IE website list.

Habilitamos (Enabled) la directiva y como parámetro en el cuadro de texto, indicamos la ruta compartida de nuestro XML:

image

Aplicamos y aceptamos para que se implemente la directiva.

Cada que el usuario ingrese, siempre verá por obligación la página referenciada en Enterprise Mode:

image

*Nota final: Es necesario aclarar, que bajo las pruebas que hice, no es posible activar Enterprise Mode a través de Directivas para sitios IIS como muestro en las capturas; sin embargo, Windows internamente busca por configuración de Enterprise Mode en una clave de registro no asociada a la subclave de Policies, y ahí sí que lo permite. No entro en detalle porque no cobra mucho sentido, solo lo hice para poder mostrar el comportamiento real.

¡Por fin terminamos!

Tratar de escribir en TechNet/Community Wiki un artículo más corto mirando solo la parte del List Manager, pero donde pueda entrar más en profundidad sobre cómo se ve de cara al usuario.

Espero sea de utilidad.

Saludos.

Checho

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

Más artículos Página siguiente >