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: \DCProfiles

– 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 Kits8.0Assessment and Deployment KitUser State Migration Toolx86

*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: WINSIDEAdministrator.

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: \DCProfiles

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

scanstate X: /ue:** /ui:<DominioUsuario> /i:migdocs.xml /i:migapp.xml /o

Donde <DominioUsuario> corresponde a nuestro usuario a migrar, en mi caso:
WINSIDEaclayton.

El comando para mí quedaría entonces:

scanstate X: /ue:** /ui:WINSIDEaclayton /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:winsideaclayton /ui:winsidesercal

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 Kits8.0Assessment and Deployment KitUser 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: \DCProfiles

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:WindowsSystem32.

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:

HKLMSOFTWAREMicrosoftWindowsCurrentVersionAccountPictureUsers<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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAccountPictureUsers
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:UsersPublicAccountPictures<SID>

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

cd C:UsersPublicAccountPicturesS-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>AppDataRoamingMicrosoftWindowsImágenes de Cuenta

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

C:UsersandycAppDataRoamingMicrosoftWindowsImágenes de Cuenta

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

C:UsersandycAppDataRoamingMicrosoftWindowsAccountPictures

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_USERSoftwareClasses

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