
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:
HKLMtraz programas instalados para todos os usuários do computador.HKCUtraz programas instalados apenas para o usuário atual.Wow6432Nodecostuma 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
InstallDatenem 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.


