Tipps & Tricks 06.09.2016, 06:00 Uhr

Windows 7 bis 10: Skript zum Auflisten von Programmen und Apps

Wenn Sie öfter mal eine Liste aller installierter Apps und Programme brauchen, hilft unser PowerShell-Skript.
Welche Programme und Apps sind auf dem PC installiert? Das ist eine Frage, die sich zum Beispiel dann stellt, wenn Sie einem PC-Supporter Hinweise zur Lösung eines PC-Problems geben müssen. Oder vor einer Neuinstallation, damit Sie wissen, welche Apps und Programme Sie wieder installieren sollten. Oder wenn Sie – wie die Autorin – etwas brauchen, mit dem Sie auf brandneuen PCs gleich mal die Liste der vorinstallierten Programme herauskitzeln, um zu eruieren, welches davon in die Kategorie «Bloatware» gehört.
Das Skript können Sie übrigens entweder in eine Textdatei stecken und von dieser in eine PowerShell einfügen oder Sie kopieren den Skript-Text gleich aus der Codebox. Im Detail geht das so:
Klicken Sie auf Start, tippen Sie Power ein, klicken Sie mit der rechten Maustaste auf Windows PowerShell und wählen Sie Als Administrator ausführen, das ist wichtig. Markieren und kopieren Sie den kompletten Skriptcode entweder hier gleich in der Codebox oder in eine Textdatei, in der Sie den Skriptcode lokal ablegen. Klicken Sie mit der rechten Maustaste ins PowerShell-Fenster. Der Code wird sofort eingefügt. Drücken Sie zum Abschluss einmal Enter. Jetzt erscheint eine Textdatei mit einem Namen wie «PCNameXYProgrammliste.txt» auf Ihrem Desktop.
Wichtig: In Windows 7 gibt es noch keine Apps. Darum würde der für Windows 8 und 10 gültige Skriptcode eine Fehlermeldung ausgeben. Abgesehen von der einen Zeile (beginnend mit «Get-AppxPackage») funktioniert das Skript aber auch in Windows 7. Darum hier zwei Skript-Varianten, einmal für Windows 8 und 10 und unten einmal ohne die Apps-Zeile für Windows 7.
Für Windows 8 und Windows 10:
$file = "Programmliste.txt"
$marke = (get-item hklm:\HARDWARE\DESCRIPTION\System\BIOS).GetValue("SystemManufacturer")
$typ = (get-item hklm:\HARDWARE\DESCRIPTION\System\BIOS).GetValue("SystemProductName")
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > $env:userprofile\Desktop\Programmliste.txt
Get-AppxPackage -AllUsers | Select Name, PackageFullName >> $env:userprofile\Desktop\Programmliste.txt
ren $env:userprofile\Desktop\Programmliste.txt $marke$typ$file
In den sechs Zeilen (wovon eine sehr lang ist und auf mehrere Zeilen umbricht) steht Folgendes:
Zeile 1: Mit $file definieren wir eine Variable mit dem Dateinamen Programmliste.txt.
Zeile 2: Mit $marke definieren wir eine Variable, die wir aus den Herstellerinfos in der Windows-Registry beziehen.
Zeile 3: Auch den $typ des PCs entlocken wir mit einem Befehl den Herstellerinfos. Die beiden Elemente wollen wir später für den Dateinamen verwenden.
Zeile 4: Hiermit ziehen wir die Programminfos aus der Registry und lassen diese gleich mal in die Datei Programmliste.txt schreiben.
Zeile 5: Hiermit schreiben wir auch noch eine Liste der Apps in die Datei Programmliste.txt.
Zeile 6: Jetzt wird die Datei Programmliste.txt nach dem Schema HerstellernameTypProgrammliste.txt umbenannt.
Das PowerShell-Skript unter Windows 10
Skriptvariante für Windows 7 (ohne die «Get-AppxPackage»-Zeile):
$file = "Programmliste.txt"
$marke = (get-item hklm:\HARDWARE\DESCRIPTION\System\BIOS).GetValue("SystemManufacturer")
$typ = (get-item hklm:\HARDWARE\DESCRIPTION\System\BIOS).GetValue("SystemProductName")
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > $env:userprofile\Desktop\Programmliste.txt
ren $env:userprofile\Desktop\Programmliste.txt $marke$typ$file
Die können Sie nach Belieben weiterbearbeiten oder Ihrem Support mailen.



Kommentare
Avatar
mkast
07.09.2016
Cooles Script Praktische Script vielen Dank. Für 32-Bit-Windows-Versionen muss der Registry-Eintrag HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* heissen

Avatar
henris
07.09.2016
Bei mir Windows 10 64 Bit Kommt leider diese Meldung: ren : Das angegebene Ziel kann nicht umbenannt werden, da es einen Pfad- oder Gerätenamen darstellt. In Zeile:5 Zeichen:1 + ren $env:userprofile\Desktop\Programmliste.txt $marke$typ$file + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Rename-Item], PSArgumentException + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand Was kann ich da machen das es funktioniert? MfG henris