Code-Beispiel

Installierte Anwendungen auflisten

Autor: Dr. Holger Schwichtenberg

Beschreibung

Für die Softwareverwaltung bietet die PowerShell keine eigenen Commandlets. Die WMI-Klasse Win32_Products mit Informationen über die installierten MSI-Pakete steht zur Verfügung, sofern der „WMI-Provider für Windows Installer“ installiert ist. Unter Windows Server 2003 ist dieser Provider eine Installationsoption von Windows und nicht mehr Standardinstallationsumfang.

Get-Wmiobject Win32_Product

Win32_Product listet aber nur Anwendungen auf, die mit Windows Installer installiert wurden. Alle Anwendungen, die man in der Systemsteuerung sieht, bekommt man nur über den Schlüssel
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall der Registrierungsdatenbank heraus.
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Vereinfachen kann man den Zugang dorthin, indem man ein neues PowerShell-Laufwerk definiert:

New-PSDrive -Name Software -PSProvider Registrierungsdatenbank -Root HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Danach kann man einfach schreiben:

Get-ChildItem Software:

Beim Filtern muss man in jedem Fall beachten, dass die Eigenschaften (z.B. DisplayName, Comments und UninstallString) keine Attribute des Objekts vom Typ Microsoft.Win32.RegistryKey sind, sondern Unterelemente dieses Objekts. Daher muss GetValue() verwendet werden für den Zugriff auf die Daten.

Get-ChildItem Software: | Where-Object -FilterScript { $.GetValue("DisplayName") -like "a*"} | ForEach-Object -Process {$_.GetValue("DisplayName") , $_.GetValue("Comments"), $.GetValue("UninstallString") }

Programmcodebeispiel in PowerShell-Skript

Auflisten der installierten Anwendungen aus der Registry, deren Name mit a beginnt

Get-Wmiobject Win32Product | where-object { $.name -like "a*" }

Weiteres Programmcodebeispiel in PowerShell-Skript

Auflisten der installierten Anwendungen aus der Registry, deren Name mit a beginnt

New-PSDrive -Name Software -PSProvider Registrierungsdatenbank -Root HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Get-ChildItem Software: | Where-Object -FilterScript { $.GetValue("DisplayName") -like "a*"} | ForEach-Object -Process {$_.GetValue("DisplayName") , $_.GetValue("Comments"), $.GetValue("UninstallString") }


 

Querverweise

 Liste aller Codebeispiele  Definition '.NET Framework Class Library'  PowerShell Community Portal

Buchtipp

Buchcover PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch (6. Auflage Juni 2024 (10. Auflage Gesamtreihe)) PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
Autor(en): Dr. Holger Schwichtenberg
Erschienen 2024
Umfang: 1426 Seiten
ISBN: 3446481958

Beratung & Support

Schulungen

  Anfrage für eine individuelle Schulung zum Thema POWERSHELL POWERSHELL  Gesamter Schulungsthemenkatalog