Probleme beim entfernen von RegistryKeys

Moderatoren: MVogt, moderators

Antworten
MATSupport
Beiträge: 66
Registriert: 31. Okt 2011, 10:41
Kontaktdaten:

Probleme beim entfernen von RegistryKeys

Beitrag von MATSupport » 31. Okt 2011, 11:37

Hallo Forum,

ich teste gerade das Paketieren mittels Empirum in einer Testumgebung.
Hierzu möchte ich auf einem Rechner mit alter Adobe Reader Version die aktuellste Version installieren und dabei ältere deinstallieren sowie die Registry bereinigen.

Installation und Update der aktuellsten Version funktioniert.

Das erste Problem, auf das ich gestossen bin ist folgendes:
Ich versuche, aus der Registry bestimmte Keys vor der Installation des neuen Pakets zu löschen.
Ich möchte mehrere keys löschen, daher habe ich mehrere if's verbaut:

Dazu habe ich folgendes gebaut:

Code: Alles auswählen

[Product]
If DoesRegKeyExist("HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Adobe Reader 9.3 9.3.0'") =="1" Then "Reg:DelOldKey2" EndIf
If DoesRegKeyExist("HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Test key 1.0 1.0.0'") =="1" Then "Reg:DelOldKey1" EndIf


;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT
;ReplaceEnv <Variable>

#Set:Product, DONTDELETE
#Set:Update, DONTDELETE
#Reg:OnUninstallProduct, DELETE
#Reg:Product, DONTDELETE
#Ini:Product, DONTDELETE
#Security:Product
#Set:Uninstall, DELETE
#Set:ChangeMSISourcelist, DONTDELETE

[Reg:DelOldKey1]
-HKLM,"'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Test key 1.0 1.0.0'"

[Reg:DelOldKey2]
-HKLM,"'\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Adobe Reader 9.3 9.3.0'"
Problem: durch die Punkte im Namen wird der Key scheinbar nicht gelöscht.
Wenn der Name keine Punkte enthält, gehts einwandfrei.

Frage1:
Mache ich einen Fehler in der Syntax?


Und meine 2. Frage:
Kann ich eigentlich eine if Abfrage bauen, die einen registry prüft, und wenn dieser vorhanden ist erst mal ein msiexec /x auf den key macht und dann erst in den Teil der Installation springt?

Die Idee ist klar, erst mal alles alte runter, dann das neue drauf.
Hat jemand da zufällig ein Beispiel parat?

Gruesse

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7407
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Re: Probleme beim entfernen von RegistryKeys

Beitrag von Hendrik_Ambrosius » 31. Okt 2011, 12:09

Das einfache Anführungszeichen im String sollte auf jeden Fall raus.
Vielleicht liegt es daran schon?!
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 AG or of the support team.

MATSupport
Beiträge: 66
Registriert: 31. Okt 2011, 10:41
Kontaktdaten:

Re: Probleme beim entfernen von RegistryKeys

Beitrag von MATSupport » 31. Okt 2011, 12:32

Hallo Herr Ambrosius,
der Einwand ist korrekt, die Kombination habe ich auch schon gentestet:

Code: Alles auswählen

[Product]
If DoesRegKeyExist("HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Adobe Reader 9.3 9.3.0'") =="1" Then "Reg:DelOldKey1" EndIf
If DoesRegKeyExist("HKLM,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Test Key 1.0 1.0.0'") =="1" Then "Reg:DelOldKey2" EndIf


;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT
;ReplaceEnv <Variable>

#Set:Product, DONTDELETE
#Set:Update, DONTDELETE
#Reg:OnUninstallProduct, DELETE
#Reg:Product, DONTDELETE
#Ini:Product, DONTDELETE
#Security:Product
#Set:Uninstall, DELETE
#Set:ChangeMSISourcelist, DONTDELETE

[Reg:DelOldKey1]
-HKLM,"\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Adobe Reader 9.3 9.3.0"

[Reg:DelOldKey2]
-HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Test Key 1.0 1.0.0"
Nun löscht er den Testkey erfolgreich weg, nur der Adobe-Key ist immer noch da.

Ich denke schon das die Syntax generell richtig ist. Mir ist schleierhaft, warum nur der eine Schlüssel entfernt wird und der andere nicht.

Gruss

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7407
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Re: Probleme beim entfernen von RegistryKeys

Beitrag von Hendrik_Ambrosius » 31. Okt 2011, 12:48

Nehmen Sie mal das Löschen des Keys via Differenzverfahren auf.
Dann haben Sie die 100% richtige Syntax frei Haus.
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 AG or of the support team.

MATSupport
Beiträge: 66
Registriert: 31. Okt 2011, 10:41
Kontaktdaten:

Re: Probleme beim entfernen von RegistryKeys

Beitrag von MATSupport » 31. Okt 2011, 15:55

Guten Tag Herr Ambrosius,

ich habe nun mal einen Diff drüberlaufen lassen.
Das Ergebnis führte leider nicht zum erfolg.

Der (oder die beiden) besagten Keys sind anschließend nach dem Diff nicht in der Setup.inf zu finden.
Die Keys befinden sich beide unterhalb von "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\", kann es sein das dieser Pfad beim Diff ausgenommen ist?

Gruesse

Ralf

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7407
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Re: Probleme beim entfernen von RegistryKeys

Beitrag von Hendrik_Ambrosius » 31. Okt 2011, 16:04

Ja, müssen Sie vorher aus der diff.inf entfernen.
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 AG or of the support team.

MATSupport
Beiträge: 66
Registriert: 31. Okt 2011, 10:41
Kontaktdaten:

Gelöst: Probleme beim entfernen von RegistryKeys

Beitrag von MATSupport » 11. Nov 2011, 14:44

Hallo Forum,

hat hervorragend geklappt, vielen Dank.

Benutzeravatar
doomsoul11223
Beiträge: 1
Registriert: 25. Jan 2017, 16:14
Kontaktdaten:

Re: Probleme beim entfernen von RegistryKeys

Beitrag von doomsoul11223 » 26. Jan 2017, 13:14

Auch wenn hier schon länger nichts mehr geschrieben wurde, wollte ich dem nächsten admin der ein ähnliches Problem hat Stundenlange Recherchen ersparen :wink:
Ich hatte auch ein Problem mit dem entfernen eines Registry Keys, der nur mit Admin-Rechten zu löschen ging und bin auf diesen thread gestoßen. Allerdings konnte ich den Registry Key durch keinen der genannten Wege entfernen.
Konkret ging es um den Key, den PDF Creator beim deinstallieren setzt wenn ein Neustart erforderlich ist: HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce,PDFCreatorRestart

Ich hatte alle möglichen varianten ausprobiert, über Setup.inf mittel, Batch Datei, Regedit, cmds... Der Key war nicht zu löschen.


Schließlich konnte ich das Problem über den Aufruf einer Administrativen CMD lösen:

[Set:Product]
If DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce,PDFCreatorRestart") == "1" Then "Set:DelRestartPending" EndIf

[Set:DelRestartPending]
Call cmd /c C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command "Start-Process cmd \"/c REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v PDFCreatorRestart /f\" -Verb RunAs"
Simon Müller / System Engineer

pzaenker
Beiträge: 3
Registriert: 07. Jul 2014, 15:00
Kontaktdaten:

Re: Probleme beim entfernen von RegistryKeys

Beitrag von pzaenker » 30. Apr 2019, 13:36

Ich habe eine Lösung gefunden, welche bei mir die Reg Einträge bei der Deinstallation berücksichtigt.
Ein dem Diff erstelltes Paket, hat die Werte richtig gesetzt, nach langem suchen habe ich den kleinen Unterschied gefunden:

[Application]
DataDir=%Personal%

Nachdem ich die Zeile DataDir angelegt habe, wurden auch die Zeilen in Reg:OnUninstallProduct richtig ausgeführt.

Antworten

Zurück zu „Software Management“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste