Eliminar Aplicaciones de Windows 8 por usuario, o para todos los usuarios, utilizando PowerShell

1537_Win8Logo_01_008485DD

Hace poco que pude tocar el tema de AppLocker en Windows 8, por el lanzamiento del esperado y polémico RTM, y no pude esperar más para hablar un poco más de algunas nuevas funcionalidades características que se pueden ir viendo con este sistema operativo.

Windows 8 introdujo, como lo he mencionado en artículos anteriores, un nuevo modelo de aplicaciones, conocidas antes de como “Metro”, ahora denominadas “Aplicaciones de Windows 8”, que difieren en casi todo con respecto a las aplicaciones de escritorio que conocemos. Dentro del sistema operativo las podemos identificar fácilmente porque son las que están “ancladas” a la Pantalla de Inicio y se representan por unas baldosas:

image

La ejecución es además en pantalla completa, y se adquieren por ahora, sólo a través de la Tienda (Windows Store), aunque también se podrán desplegar internamente.

*Nota: En otro futuro artículo, trataremos de entrar un poco en profundidad sobre el funcionamiento de las Aplicaciones de Windows 8 para entenderlas un poco más.

La desinstalación de estas aplicaciones es realmente sencilla, sólo la seleccionamos con clic derecho y en la parte inferior hacemos clic en Desinstalar:

image

El inconveniente está es que Windows 8 viene aprovisionado de forma predeterminada con varias aplicaciones que no son realmente útiles, incluso para un ambiente de hogar, por diferentes razones; no es posible entonces desde políticas de grupo por ejemplo el manipular estas aplicaciones, sólo quizá bloquear la instalación o ejecución. Sin embargo, PowerShell con Windows 8 nos entrega una serie nueva de cmdlets justo para trabajar con imágenes online u offline de Windows 8, para este post en específico, nos concentraremos con algunos muy útiles para la consulta y desinstalación de Aplicaciones en el sistema operativo, por usuario, y para todos los usuarios incluso.

*Importante: Es necesario tener en cuenta, que lo que haremos con PowerShell, lo podremos hacer también con DISM que está embebido en Windows 8 y en ADK, aunque PowerShell nos da el privilegio adicional de ser mucho más administrable.

*Nota: PowerShell es una plataforma mucho más robusta que el conocido Símbolo del Sistema (cmd) para hacer Scripting enfocado sobre todo a los IT Pro, pero además, una consola desde la que podremos gestionar de una forma centralizada muchísimos productos, características y tecnologías Microsoft.

A continuación, aprenderemos a consultar y a desinstalar las Aplicaciones de Windows 8 para una imagen Online, es decir, que ya está instalada, pero es importante tener en cuenta que esto también se podrá realizar en una imagen Offline (Sin instalar), por lo que seguramente estaremos tocando el tema en otros artículos.

Consultando aplicaciones con PowerShell

Antes de proceder a desinstalar, que es finalmente el objetivo de este post, es primordial por supuesto que podamos consultar la información sobre las aplicaciones instaladas y aprovisionadas, puesto que requerimos algunos campos como el nombre completo para desinstalar, entre otras cosas.

Para ejecutar PowerShell, desde la Pantalla de Inicio lo buscamos, y presionamos CTRL + SHIF + ENTER para ejecutar como administrador (También es posible hacer clic derecho y seleccionar Ejecutar como administrador en la parte inferior):

image

Hay dos cmdlets disponibles para consultar las Aplicaciones de Windows 8, aunque vale la pena diferenciar la funcionalidad de cada uno:

Get-AppxProvisionedPackage: Con este cmdlet, podremos consultar todas las aplicaciones que se instalarán para todos los usuarios.

Como una imagen puede estar Offline u Online, es necesario especificar el parámetro después del cmdlet, para este caso, que trabajaremos sobre una instalación ya hecha, para ver todas las aplicaciones tendríamos que ejecutar:

Get-AppxProvisionedPackage –Online

image

*Nota: Como las instalaciones serán las mismas para todos los usuarios, no es posible hacer filtro por nombre específico de sesión.

Get-AppxPackage: Con este cmdlet, es posible consultar también las aplicaciones, a diferencia del anterior, es que con Get-AppxPackage, sabremos todas las que ya se encuentran instaladas, e incluso hacer el filtro, sea por usuario, o por máquina (Para todos los usuarios).

Para consultar las que se encuentran instaladas, y disponibles para todos los usuarios, ejecutamos: Get-AppxPackage –AllUsers

Sin embargo, si sólo estamos interesados en las del usuario en particular, debemos ejecutar: Get-AppxPackage –User <NombreUsuario>

Donde <NombreUsuario> corresponde al que deseamos consultar, por ejemplo, para mi usuario llamado “Checho” sería: Get-AppxPackage –User Checho

PS1

Volviendo al tema específico de decidir las aplicaciones a desinstalar, una vez tengamos la información completa de las que se encuentran en el usuario, basta con buscar la que deseamos quitar, y tener en cuenta el campo de PackageFullName, pues es como debemos referenciar el paquete en la desinstalación.

Sin embargo, para filtrar esta información, basta con indicar sólo el nombre utilizando el comando: Get-AppxPackage –Name <NombreApp> –User <NombreUsuario>

Donde <NombreApp> es como aparece en el campo de Name y <NombreUsuario> corresponde al usuario que deseamos consultar.

Para este artículo, la que yo quiero quitar es “Lector” (Microsoft Reader), para mi usuario “Checho”, el comando sería:

Get-AppxPackage –Name Microsoft.Reader –User Checho

image

*Nota: Existen otros parámetros que permiten realizar operaciones adicionales, pueden ver la documentación aquí:
http://technet.microsoft.com/en-us/library/hh856044.aspx

El nombre completo de mi aplicación (PackageFullName), para este caso sería:
Microsoft.Reader_6.2.8516.0_x86__8wekyb3d8bbwe

Desinstalando Aplicaciones con PowerShell

Una vez tengamos el nombre completo, podremos decidir si queremos desinstalarla sólo para el usuario, o para el resto de los usuarios que se creen; debemos tener en cuenta entonces dos posibles cmdlets a utilizar:

Remove-AppxPackage: Con este cmdlet, nos será posible eliminar alguna aplicaciones especificada, pero sólo para el usuario actual en el que se encuentre la sesión iniciada, debemos acompañarlo del parámetro de –Package <NombreCompletoApp> para que funcione.

En mi caso, si quisera borrar la aplicación de Lector (Microsoft Reader) para mi usuario actual (Checho), el comando sería:

Remove_AppxPackage –Package Microsoft.Reader_6.2.8516.0_x86__8wekyb3d8bbwe

image

Eso sin embargo no desinstalará la aplicación para todos los usuarios, y de hecho no hay forma de hacerlo para los que ya estén creados, sin embargo, aquí entra el otro cmdlet que nos puede ayudar:

Remove-AppxProvisionedPackage: Lo que haremos con este cmd, será eliminar una aplicación que esté aprovsionada de forma predeterminada, para que no aparezca instalada en cada nuevo usuario que se cree.

Al igual que para obtener la información, es necesario especificar si se está Online u Offline, pero adicional a esto, debemos referenciar el nombre completo del paquete con el parámetro de –PackageName, el comando completo sería:

Remove-AppxProvionedPackage –Online –PackageName <NombreCompletoApp>

Donde <NombreCompletoApp> se refiere al que consultamos en las propiedades anteriormente.

Para mi caso, si quisiera quitar para todos los usuarios la misma aplicación de Microsoft.Reader, ejecutaría:

Remove-AppxProvisionedPackage –Online –PackageName Microsoft.Reader_6.2.8516.0_x86__8wekyb3d8bbwe

image

Es importante tener en cuenta, que la aplicación no se borrará para el usuario actual, sólo para los nuevos usuarios, si se quisiera borrar también para el local, se debe recurrir a Remove-AppxPackage, o bien realizar este mismo comando de forma Offline, además, las aplicaciones podrán seguir siendo instaladas desde la Tienda (Windows Store), siempre y cuando el usuario tenga acceso permitido.

Por supuesto, variaciones de esto, como el trabajo offline, las estaremos tratando en futuros post. Espero que esto sea de utilidad.

Saludos,

Checho

Una respuesta a “Eliminar Aplicaciones de Windows 8 por usuario, o para todos los usuarios, utilizando PowerShell”

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *