Mit Powershell erhalten Sie genau die gleiche Anwendungsliste wie unter „Programme hinzufügen/entfernen“

Mit Powershell erhalten Sie genau die gleiche Anwendungsliste wie unter „Programme hinzufügen/entfernen“

Es gibt verschiedene Methoden, um installierte Anwendungen auf dem System zu finden, aber meines Wissens liefert keine davon genau dieselbe Liste wie das Systemsteuerungselement „Programme hinzufügen/entfernen“. Einige der Methoden, die ich ausprobiert habe, sind:

  • WMI über Win32_Product und Win32Reg_AddRemovePrograms
  • Registrierung, sowohl x32- als auch x64-Zweige

Ich habe zum Beispiel 217 Einträge in AR und

gwmi  Win32_Product

gibt 261 Elemente zurück.

gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | ? {![string]::IsNullOrWhiteSpace($_.DisplayName) } | select DisplayName

gibt 119 Elemente zurück.

 (gwmi Win32Reg_AddRemovePrograms) + (gwmi Win32Reg_AddRemovePrograms64) | sort DisplayName -Unique 

gibt 107 Elemente zurück.

Ich habe erfolglos versucht, es mit komplexeren Filtern, die InstallLocation, InstallSource, usw. enthielten, festzulegen .InstallDate

Antwort1

Für mich ist das ein bedauerlicher Fall vonConways Gesetz. Windows ist ein sehr komplexes Betriebssystem mit jahrzehntelanger Geschichte und einer riesigen Anzahl beweglicher Teile. Das bedeutet, dass etwas, das einfach erscheint, wie die Frage „Was zum Teufel ist alles auf meinem Computer installiert?“, leider sehr kompliziert wird. „Installierte Software“ wird dadurch kompliziert, dass sie aus mehreren verschiedenen Quellen stammt. Es gibt 64-Bit-Software und 32-Bit-Software, Software, die nur für bestimmte Benutzer installiert ist, und Software, die für alle Benutzer installiert ist, und Software, die installiert oder Ihnen über die Gruppenrichtlinie zugewiesen wurde, und mehr.

Glücklicherweise,Sysinternals Prozessmonitorkann Ihnen alle Informationen zeigen. Starten Sie es einfach, überwachen Sie Registrierungsereignisse und klicken Sie dann selbst auf das Systemsteuerungs-Applet „Software“ und sehen Sie, was Windows im Hintergrund tut.

Darin heißt es aus vielen verschiedenen Quellen:

HKLM\Software\Installer\Products
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\...
HKCU\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\...
HKCU\Software\Microsoft\Installer\Products
HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\AppMgmt
HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\...

Und mehr!

EinerseitsIstmöglich, genau zu sehen, welche Abfolge von Registrierungsabfragen erforderlich ist, um genau das wiederherzustellen, was Sie unter "Programme hinzufügen/entfernen" sehen, nämlich eine "Ansicht", die auf dem aktuell angemeldeten Benutzer usw. basiert. Andererseits denke ich, dass Sie schnell zu der Erkenntnis gelangen werden, dass es sich um einevielan Arbeit und dass Ihnen die Wiederherstellung einer genauen Ansicht von „Programme hinzufügen/entfernen“ vielleicht von vornherein nicht so wichtig war. :)

verwandte Informationen