En este artículo, veremos cómo desinstalar software en una computadora Windows local o remota usando PowerShell. Muy a menudo, el administrador del sistema usa scripts para desinstalar aplicaciones de Windows. Puede usar varios enfoques para eliminar programas desde el símbolo del sistema o los scripts de PowerShell.
Uso de WMI para desinstalar programas en Windows
La forma más común de eliminar programas instalados en Windows es usar comandos que se refieran al espacio de nombres WMI. Por ejemplo, puede consultar el espacio de nombres WMI y obtener una lista de programas instalados con el wmic dominio.
wmic product get name,version
Para desinstalar silenciosamente una aplicación de esta lista, puede usar el siguiente comando:
wmic product where name="VMware vCenter Converter Standalone" call uninstall /nointeractive
El comando llama a un método WMI de desinstalación de la aplicación (vCenter Converter) a través de Windows Installer.
Executing (\COMPNameROOTCIMV2:Win32_Product.IdentifyingNumber="{PROGRAM_GUID}",Name="VMware vCenter Converter Standalone",Version="6.2.0.8466193")->Uninstall()
Si el programa se desinstala con éxito, devolverá:
Method execution successful. Out Parameters: instance of __PARAMETERS { ReturnValue = 0; };
Aquí hay comandos de PowerShell similares para mostrar y desinstalar aplicaciones a través de WMI:
Get-WmiObject Win32_Product | ft name,version,vendor,packagename
(Get-WmiObject Win32_Product -Filter "Name="XXX"").Uninstall()
Para eliminar un programa en una computadora remota, agregue el -Nombre del ordenador opción. Por ejemplo, para desinstalar Microsoft Office en una computadora remota, ejecute el siguiente comando:
$apps = Get-WmiObject -Class Win32_Product -ComputerName wkmn-man23 |where name -Like "Office 16 Click-to-Run*"
$apps.uninstall()
Sin embargo, este método de eliminación de aplicaciones no es lo suficientemente universal para todos los casos posibles. Si compara la lista de programas devueltos a través del espacio de nombres WMI y la lista de aplicaciones en el Panel de control de Windows/Lista de aplicaciones y características en Configuración (utilice el comando de acceso rápido de Configuración de MS: ms-settings:appsfeatures
), verás que difieren. El comando wmi solo mostraba una lista de programas instalados a través de Windows Installer. La lista no incluye la mayoría de las aplicaciones de usuario (navegadores, por ejemplo).
Además, los programas UWP de Microsoft Store y los módulos de PowerShell (a través de PowerShellGet) no se muestran.
Desinstalar aplicaciones en una computadora remota con el módulo Administrador de paquetes de PowerShell
En las versiones modernas de Windows 10/11 y Windows Server 2022/2019/2016, puede usar el PowerShell integrado Gestión de paquetes cmdlets para instalar o desinstalar aplicaciones. Originalmente, el módulo se usaba para instalar/desinstalar módulos de PowerShell. Sin embargo, también puede usarlo para desinstalar programas Win32, actualizaciones de MSU y aplicaciones instaladas con instaladores de MSI.
Para mostrar una lista completa de aplicaciones instaladas en una computadora local, ejecute el siguiente comando:
Get-Package
El comando devuelve varias clases de programas instalados a través de los diferentes proveedores (ProviderName). Puede mostrar una lista de proveedores en una computadora de la siguiente manera:
Get-PackageProvider
- Programas
- msi
- msu
- PowerShellObtener
- NuGet
Para mostrar una lista de programas instalados a través de un proveedor específico, ejecute este comando:
Get-Package -ProviderName Programs -IncludeWindowsInstaller
Utilizar el Paquete de desinstalación cmdlet para eliminar el programa:
Get-Package -Name "Notepad++*" | Uninstall-Package
Puede quitar el módulo de PowerShell instalado. Por ejemplo, para desinstalar todos los módulos VMware.PowerCLI:
Get-Package -ProviderName PowerShellGet -Name "VMware.*" | Uninstall-Package
Para desinstalar un programa en una computadora remota, use el cmdlet Invoke-Command:
Invoke-Command -ComputerName mun-dc01 -ScriptBlock { Get-Package -Name "Notepad++*" | Uninstall-Package}
Puede usar este módulo para desinstalar aplicaciones Win32 y módulos PS únicamente. Para eliminar aplicaciones UWP de Microsoft Store, use el Remove-AppxPackage
o Remove-AppxProvisionedPackage
Cmdlets de PowerShell (vea un ejemplo en este artículo).
¿Cómo desinstalar la aplicación con el comando WinGet?
Puedes usar el nuevo GanarObtener administrador de paquetes (está integrado en Windows 10 y 11) para instalar y eliminar programas en Windows. Para obtener una lista de programas en su computadora, ejecute:
winget list
El comando devuelve una lista de programas, incluidos los instalados con otros métodos que no sean winget, y una lista de aplicaciones UWP (APPX).
Para eliminar aplicaciones instaladas a través de WinGet, ejecute el siguiente comando:
winget uninstall --name 7zip.7zip
Para desinstalar una aplicación MSI en Windows, especifique su GUID:
winget uninstall --id "{332C1E78-1D2F-4A64-B718-68095DC6254B}"
Para desinstalar una aplicación para UWP:
winget uninstall --id "Microsoft.ZuneVideo_8wekyb3d8bbwe"
Sin embargo, winget no le permite desinstalar programas en una computadora remota. Para ejecutar el comando winget en una computadora remota, use las funciones de comunicación remota de PowerShell (cmdlets Invoke-Command y Enter-PSSession). Por ejemplo:
Invoke-Command -ComputerName wkmn-man231 -ScriptBlock {winget uninstall --name 7zip.7zip}
Puede usar los scripts de PowerShell que se muestran aquí para desinstalar programas de forma remota o ejecutarlos en equipos de dominio mediante scripts de inicio de sesión SCCM o GPO.
Artículos Interesantes
Relacionados:
Contenido