EmpirumPaket-Lösung für Bereinigung (Registry/Files) bei AskUninstallOld=0-Paketen #SauberesInventory

Post Reply
tim.v
Posts: 111
Joined: 01. Feb 2013, 07:54
Location: Berlin
Contact:

EmpirumPaket-Lösung für Bereinigung (Registry/Files) bei AskUninstallOld=0-Paketen #SauberesInventory

Post by tim.v » 05. Nov 2021, 10:58

Hallo Zusammen,

da uns ein sauberes Inventory schon immer am Herzen lag aber bei AskUninstall=0-Paketen die Registry-Schlüssel für die Empirum-Installationen unter:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

sowie die Datei(en) die für die Installation im Pfad:

%App%

abgelegt werden in diesen Fällen auch wieder sauber zu entfernen, haben wir folgende Lösung dazu in unsere Pakettemplates eingearbeitet die alles entfernt was dieser Version nicht entspricht:

Voraussetzung/Empfehlung ist aber die %App-Varialbe% an einen gemeinsamen Ort zu verlegen und die Empirum-Installation-Registryschlüssen ebenfalls zu vereinheitlichen.

Weiter enthält die Lösung noch im Abschnitt "Set:CleanOldVersions" ein Gerüst zur Bereinigung falls, sich der Name oder Hersteller eines Paketes mal ändert und man auch eine Bereinigung durchführen möchte.

Ich hoffe es hilft und bereitet damit auch anderen ein saubereres Inventoy ;)


LG
Tim

Code: Select all

[Application]
...
UserKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%
MachineKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=Matrix42 - %DeveloperName% %ProductName% %Version%
UninstallDisplayName=Matrix42 - %DeveloperName% %ProductName% %Version%
...
ApplicationDir=%CommonAppData%\$Matrix42Scripts$\%DeveloperName%\%ProductName%\%Version%

...

Code: Select all

[Environment]
...
; Entfernen alter Empirum-Registry-Schlüssel und Dateien wg. Umstellung auf neuen Paketnamen
; Ggf. alten Hersteller- und Produktnamen einsetzten und entsprechende Zeilen im Abschnitt [Set:CleanOldVersions] einkommentieren
;V_DeveloperNameOld=
;V_ProductNameOld=
;V_VersionOld=%Version%

Code: Select all

[Product]
...
;#Set:CleanOldVersions, DONTDELETE
...

Code: Select all

[Set:CleanOldVersions]
; Entfernen alter Empirum-Registry-Schlüssel und Dateien bei AskUninstall=0
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('REG.EXE QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\$Matrix42Packages$\%DeveloperName%\%ProductName%" ^| FINDSTR /V /I "%Version%"') DO CALL REG.EXE DELETE "%%I" /F 
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('REG.EXE QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\$Matrix42Packages$\%DeveloperName%\%ProductName%" ^| FINDSTR /V /I "%Version%"') DO CALL REG.EXE DELETE "%%I" /F 
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('REG.EXE QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ^| FINDSTR /C:"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Matrix42 - %DeveloperName% %ProductName% " ^| FINDSTR /I /V "%Version%"') DO CALL REG.EXE DELETE "%%I" /F
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('REG.EXE QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" ^| FINDSTR /C:"HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Matrix42 - %DeveloperName% %ProductName% " ^| FINDSTR /I /V "%Version%"') DO CALL REG.EXE DELETE "%%I" /F
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('DIR "%CommonAppData%\$Matrix42Scripts$\%DeveloperName%\%ProductName%" /B ^| FINDSTR /V /I "%Version%"') DO RMDIR "%CommonAppData%\$Matrix42Scripts$\%DeveloperName%\%ProductName%\%%I" /S /Q

; Entfernen alter Empirum-Registry-Schlüssel und Dateien wg. Umstellung auf neuen Paketnamen
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('REG.EXE QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\$Matrix42Packages$\%V_DeveloperNameOld%\%V_ProductNameOld%" ^| FINDSTR /V /I "%V_VersionOld%"') DO CALL REG.EXE DELETE "%%I" /F 
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('REG.EXE QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\$Matrix42Packages$\%V_DeveloperNameOld%\%V_ProductNameOld%" ^| FINDSTR /V /I "%V_VersionOld%"') DO CALL REG.EXE DELETE "%%I" /F 
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('REG.EXE QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ^| FINDSTR /C:"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Matrix42 - %V_DeveloperNameOld% %V_ProductNameOld% " ^| FINDSTR /I /V "%V_VersionOld%"') DO CALL REG.EXE DELETE "%%I" /F
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('REG.EXE QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" ^| FINDSTR /C:"HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Matrix42 - %V_DeveloperNameOld% %V_ProductNameOld% " ^| FINDSTR /I /V "%V_VersionOld%"') DO CALL REG.EXE DELETE "%%I" /F
;Callhidden CMD.EXE /C FOR /F "Tokens=*" %%I IN ('DIR "%CommonAppData%\$Matrix42Scripts$\%V_DeveloperNameOld%\%V_ProductNameOld%" /B ^| FINDSTR /V /I "%V_VersionOld%"') DO RMDIR "%CommonAppData%\$Matrix42Scripts$\%V_DeveloperNameOld%\%V_ProductNameOld%\%%I" /S /Q
...

Post Reply

Return to “Biete”

Who is online

Users browsing this forum: No registered users and 0 guests