Como listar todos os aplicativos exibidos de adicionar / remover WinXP / Win7 via linha de comando?

5

Estou tentando listar todos os aplicativos instalados que são exibidos na lista de adicionar / remover programas (WinXP / Win7) via linha de comando. Eu entendo que para o Win7 é chamado de "Programas e Recursos" do cp.

Eu tentei o wmic, mas isso apenas lista programas instalados usando MSIs. Eu tentei consultar o registro (HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall e também wow6432node).

Ainda não consigo capturar o Spotify (bom exame); aparece na seção adicionar / remover, mas não nesses locais.

Alguma opinião?

-Dom

    
por dom9360 28.11.2013 / 02:25

2 respostas

5

Parece que isso pode ser feito a partir do comando wmic
Tente isto:

wmic product  

Mostra uma lista de tudo instalado no computador
Fontes:
link link

Esta página diz que é para o Windows Vista e 7, mas testei o wmic no Windows XP também Obter lista de aplicativos instalados a partir da linha de comando do Windows

Além disso, esta página explica que o método de verificação da entrada do registro pode não ser preciso. link

Aqui estão mais algumas informações sobre o que mais pode ser feito usando o wmic: link
A partir deste site, especificamente para o seu problema:

The program can also provide details on many other aspects of your system. Commands like:

wmic product list brief

wmic service list brief

wmic process list brief

wmic startup list brief

will list your installed software, services, running processes and Windows startup programs, for instance.

    
por 28.11.2013 / 03:04
0

Eu não acho que você ficará satisfeito com qualquer uma das abordagens do cmd, pois elas não estarão completas. Se você está bem com o Powershell, então isso me deu tudo:

If(!([Diagnostics.Process]::GetCurrentProcess(). Path -match ‘\syswow64\’)) {
$unistallPath = “\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\”
$unistallWow6432Path = “\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\”
@( if (Test-Path “HKLM:$unistallWow6432Path” ) { Get-ChildItem “HKLM:$unistallWow6432Path”} if (Test-Path “HKLM:$unistallPath” ) { Get-ChildItem “HKLM:$unistallPath” } if (Test-Path “HKCU:$unistallWow6432Path”) { Get-ChildItem “HKCU:$unistallWow6432Path”} if (Test-Path “HKCU:$unistallPath” ) { Get-ChildItem “HKCU:$unistallPath” } ) | ForEach-Object { Get-ItemProperty $_.PSPath } | Where-Object { $_.DisplayName -and !$_.SystemComponent -and !$_.ReleaseType -and !$_.ParentKeyName -and ($_.UninstallString -or $_.NoRemove) } | Sort-Object DisplayName | Select-Object DisplayName
}
else {
“You are running 32-bit Powershell on 64-bit system. Please run 64-bit Powershell instead.” | Write-Host -ForegroundColor Red
}

pause
    
por 14.04.2017 / 05:27