Programme deinstallieren unter Windows Server Core


    Tags: ,

    Der schlanken Installationsoption Server Core fehlt es nicht nur am gewohnten Desktop, sondern auch an allen möglichen grafischen Tools für die Verwaltung des Systems. Dazu zählt auch das Applet der Systemsteuerung namens Programme und Funktionen. Daher ist Handarbeit notwendig, um eine Software zu deinstallieren.

    Dazu gehört in erster Linie, dass man den Aufruf der De-Installationsroutine ermittelt, und zwar indem man den entsprechenden Eintrag in der Registry findet und ausliest. Zu diesem Zweck steht als eines der wenigen GUI-Tools regedit.exe auch unter Server Core zur Verfügung.

    Uninstall-Informationen über mehrere Orte verteilt

    Die Uninstall-Informationen können sich über verschiedene Zweige der Registrierdatenbank verteilen, wobei nicht erkennbar ist, nach welchen Kriterien sie wo abgelegt werden. Es sieht so aus, als würden Programme, die per User installiert wurden, getrennt von jenen verwaltet, die per Maschine eingespielt wurden. Letztere finden sich unter HKLM\Software\Microsoft\Windows­\CurrentVersion\Uninstall.

    Die meisten Uninstall-Informationen finden sich unter HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData, wo sie nach Benutzer sortiert sind.

    Erstere trägt das System unterhalb von HKLM\Software\Microsoft\Windows­\CurrentVersion\Installer\UserData ein, wobei dieser Schlüssel eine Reihe von Unterschlüssel enthält, deren Namen SIDs von verschiedenen Benutzern sind, beispielsweise S-1-5-18 für das lokale Systemkonto. Von hier folgt man dem Pfad Products\<UUID der Software>\InstallProperties.

    Befehlszeile aus UninstallString entnehmen

    Dieser Schlüssel enthält wie die UUID unter dem ersten Speicherort Uninstall die Werte für DisplayName und UninstallString. Der erste gibt Auskunft über den Namen der Software, der zweite liefert die Befehlszeile für den Aufruf der De-Installation.

    Alternativ zu regedit kann man diese Schlüssel relativ einfach mit Powershell auslesen und filtern, so dass man sich bei langen Listen von installierten Programmen das Suchen erspart:

    Get-ChildItem HKLM:\software\microsoft\windows\currentversion\uninstall |
    ForEach-Object{Get-ItemProperty $_.pspath|select -property DisplayName, UninstallString |
    Format-List}

    Uninstall-String mit PowerShell aus der Registrierdatenbank auslesen

    Grundsätzlich geht das auch mit reg.exe, dieses kann aber die Werte für DisplayName und UninstallString nur in getrennten Aufrufen ermitteln, so dass sich die zusammengehörigen Informationen kaum verbinden lassen.

    Windows-Features über Paketverwaltung entfernen

    Wenn man Features von Windows entfernen möchte, dann erfolgt das bei einer GUI-Version des Betriebssystems ebenfalls über Systemsteuerung => Programme und Funktionen.

    Unter Server Core muss man zu diesem Zweck jedoch nicht in der Registry wühlen, vielmehr hat man dafür gleich die Wahl zwischen mehreren Tools für die Paketverwaltung.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut

    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links