Como listar programas instalados no Windows com PowerShell

Tecnologia

Como listar programas instalados no Windows com PowerShell


Como listar programas instalados no Windows usando PowerShell

Saber quais programas estão instalados em um computador pode ser muito útil em várias situações: auditoria de máquinas, inventário de software, suporte técnico, preparação para formatação, identificação de programas antigos ou até busca pelo comando de desinstalação de um aplicativo.

No Windows, é possível fazer isso sem instalar programas extras. Usando o PowerShell, podemos consultar o Registro do sistema e listar os softwares instalados de forma rápida e organizada.

Por que usar PowerShell para listar programas instalados?

Normalmente, o usuário acessa a lista de programas pelo menu Configurações > Aplicativos ou pelo antigo painel Programas e Recursos. Essa forma é simples, mas não é muito prática quando você precisa copiar a lista, filtrar resultados ou automatizar uma verificação.

Com PowerShell, é possível:

  • Listar programas instalados no computador.

  • Filtrar por nome do programa.

  • Ver o comando de desinstalação.

  • Exportar a lista para CSV.

  • Usar o mesmo comando em scripts de suporte técnico.

  • Fazer inventário de software com mais agilidade.

Essa abordagem é especialmente útil para técnicos, administradores de rede, analistas de suporte e usuários avançados.

Onde o Windows armazena a lista de programas?

Muitos programas instalados no Windows registram suas informações em chaves específicas do Registro. Essas chaves normalmente ficam em locais como:

HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*
HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*
HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*
HKCU:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*

De forma simplificada:

  • HKLM traz programas instalados para todos os usuários do computador.

  • HKCU traz programas instalados apenas para o usuário atual.

  • Wow6432Node costuma armazenar informações de programas 32 bits em sistemas Windows 64 bits.

Por isso, consultar apenas uma chave pode trazer uma lista incompleta. O ideal é verificar todas essas possibilidades.

Comando simples para listar programas instalados

Para começar, abra o PowerShell e execute:

Get-ItemProperty 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*' |
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Sort-Object DisplayName

Esse comando consulta uma das áreas do Registro onde ficam informações sobre programas instalados.

O resultado pode mostrar dados como:

  • Nome do programa.

  • Versão instalada.

  • Fabricante.

  • Data de instalação, quando disponível.

Porém, esse comando ainda não mostra tudo, pois alguns programas podem estar em outras chaves do Registro.

Função PowerShell para listar programas de forma mais completa

Uma forma melhor é criar uma função para consultar várias chaves ao mesmo tempo.

Copie o código abaixo e cole no PowerShell:

function Get-ProgramasInstalados {
    param (
        [string]$Nome = "*"
    )

    $caminhos = @(
        "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*",
        "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*",
        "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*",
        "HKCU:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
    )

    Get-ItemProperty -Path $caminhos -ErrorAction SilentlyContinue |
    Where-Object {
        $_.DisplayName -like $Nome
    } |
    Select-Object DisplayName, DisplayVersion, Publisher, InstallDate, UninstallString, ModifyPath |
    Sort-Object DisplayName
}

Depois de carregar a função, execute:

Get-ProgramasInstalados

Esse comando irá listar os programas encontrados nas principais áreas do Registro.

Como filtrar por um programa específico

Se você quiser localizar apenas programas com determinado nome, use:

Get-ProgramasInstalados "*firefox*"

Ou, por exemplo:

Get-ProgramasInstalados "*chrome*"

Esse tipo de filtro é muito útil quando você quer descobrir se um programa específico está instalado na máquina.

Como visualizar melhor os detalhes

Para exibir os dados em formato de lista, use:

Get-ProgramasInstalados "*firefox*" | Format-List

Esse formato facilita a leitura quando o resultado tem muitas colunas, principalmente os campos UninstallString e ModifyPath.

Para que servem UninstallString e ModifyPath?

Na lista retornada, dois campos podem chamar atenção:

UninstallString

O campo UninstallString normalmente indica o comando usado para remover o programa.

Exemplo:

"C:\Program Files\Programa\uninstall.exe"

Em alguns casos, esse comando pode ser usado para automatizar a desinstalação. Porém, é importante ter cuidado, pois alguns desinstaladores exigem parâmetros específicos, confirmação do usuário ou execução como administrador.

ModifyPath

O campo ModifyPath pode apontar para o caminho usado para modificar, reparar ou alterar a instalação do programa.

Nem todos os programas possuem esse campo preenchido.

Como exportar a lista para CSV

Uma das grandes vantagens de usar PowerShell é poder exportar o resultado para uma planilha.

Para gerar um arquivo CSV na área de trabalho, use:

Get-ProgramasInstalados |
Export-Csv "$env:USERPROFILE\Desktop\programas-instalados.csv" -NoTypeInformation -Encoding UTF8

Depois disso, basta abrir o arquivo no Excel, LibreOffice Calc ou outro editor de planilhas.

Essa opção é excelente para quem precisa documentar os softwares instalados antes de formatar uma máquina ou gerar um relatório de inventário.

Como listar apenas nome e versão

Se você quiser uma saída mais limpa, execute:

Get-ProgramasInstalados |
Select-Object DisplayName, DisplayVersion |
Sort-Object DisplayName

Isso mostra apenas o nome do programa e sua versão.

Cuidados importantes

Apesar de ser uma solução prática, alguns cuidados são necessários:

  • Nem todo programa aparece no Registro da mesma forma.

  • Programas portáteis podem não aparecer na lista.

  • Aplicativos da Microsoft Store podem ser tratados de maneira diferente.

  • O campo InstallDate nem sempre estará preenchido.

  • O comando de desinstalação deve ser testado antes de ser usado em automações.

  • Evite alterar ou apagar chaves do Registro sem saber exatamente o que está fazendo.

O objetivo desse procedimento é consultar informações, não modificar o Registro.

Quando esse método é útil?

Esse tipo de comando pode ajudar em várias situações práticas, como:

  • Criar inventário de programas instalados.

  • Conferir se determinado software está presente em uma máquina.

  • Preparar uma lista antes de formatar o computador.

  • Identificar versões antigas de programas.

  • Encontrar comandos de desinstalação.

  • Apoiar rotinas de suporte técnico.

  • Gerar relatórios para pequenas empresas.

Para quem trabalha com manutenção de computadores, suporte ou administração de ambientes Windows, esse tipo de script economiza bastante tempo.

Conclusão

Listar programas instalados no Windows usando PowerShell é uma forma simples, rápida e eficiente de obter informações sobre os softwares presentes no computador.

Ao consultar as chaves corretas do Registro, é possível obter uma lista parecida com a exibida em “Aplicativos instalados” ou “Programas e Recursos”, mas com a vantagem de permitir filtros, exportação e automação.

Esse recurso pode ser muito útil tanto para usuários avançados quanto para profissionais de TI que precisam organizar, auditar ou documentar computadores Windows.

Fonte
https://schneegans.de/windows/pwsh-installed-programs/

Veja também

Mais Dicas