Wie liste ich alle Anwendungen auf, die über die Befehlszeile beim Hinzufügen/Entfernen von WinXP/Win7 angezeigt werden?

Wie liste ich alle Anwendungen auf, die über die Befehlszeile beim Hinzufügen/Entfernen von WinXP/Win7 angezeigt werden?

Ich versuche, alle installierten Anwendungen aufzulisten, die in der Liste „Programme hinzufügen/entfernen“ (WinXP/Win7) über die Befehlszeile angezeigt werden. Ich verstehe, dass es bei Win7 im CP „Programme und Funktionen“ heißt.

Ich habe wmic ausprobiert, aber das listet nur Programme auf, die mit MSIs installiert wurden. Ich habe versucht, die Registrierung abzufragen (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall und auch wow6432node).

Ich kann Spotify immer noch nicht abfangen (gutes Beispiel); es erscheint im Abschnitt „Hinzufügen/Entfernen“, aber nicht an diesen Stellen.

Irgendwelche Gedanken?

-Dom

Antwort1

Dies lässt sich anscheinend mit dem folgenden wmicBefehl erledigen
. Versuchen Sie Folgendes:

wmic product  

Zeigt eine Liste aller auf dem Computer installierten
Elemente. Quellen:
http://www.sepago.de/d/helge/2010/01/14/how-to-list-all-installed-applications-from-the-command-line http://technet.microsoft.com/en-us/library/bb742610.aspx#ECAA

Auf dieser Seite steht, dass es für Windows Vista und 7 ist, aber ich habe wmic auch unter Windows XP getestet
Abrufen einer Liste der installierten Anwendungen über die Windows-Befehlszeile

Außerdem wird auf dieser Seite erklärt, dass die Methode zur Überprüfung des Registrierungseintrags möglicherweise nicht genau ist
http://community.spiceworks.com/how_to/show/2238-how-add-remove-programs-works

Hier finden Sie weitere Informationen dazu, was Sie sonst noch mit wmic tun können:
http://betanews.com/2011/01/14/wmic-das-beste-command-line-tool-das-sie-ve-never-used/
Von dieser Website, speziell für Ihr Problem:

Das Programm kann auch Details zu vielen anderen Aspekten Ihres Systems liefern. Befehle wie:

kurze WMIC-Produktliste

Kurze Liste der WMIC-Dienste

Kurze WMIC-Prozessliste

kurze WMIC-Startup-Liste

listet beispielsweise Ihre installierte Software, Dienste, laufenden Prozesse und Windows-Startprogramme auf.

Antwort2

Ich glaube nicht, dass Sie mit einem der cmd-Ansätze zufrieden sein werden, da sie nicht vollständig sind. Wenn Sie mit Powershell zufrieden sind, hat mir das alles gegeben:

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
}

verwandte Informationen