Hallo zusammen,
wir haben einige Anwendungen im Unternehmen, die über einen eigenen Updatemechanismus verfügen, der teilweise nicht unterbunden werden kann.
Bei diesen Programmen wird entweder eine Anwendung installiert oder „einfach“ ein Programmverzeichnis lokal kopiert, das sich beim Start eigenständig aktualisiert.
Es kommt alle paar Monate oder Jahre vor, dass wir die Installationsdateien aktualisieren, damit beim ersten Start nicht erst eine Vielzahl an Updates installiert werden müssen.
Früher (bei Setup.inf-Paketen) haben wir die Version 1.0 verteilt und bei einem Update lediglich die Installationsdateien ersetzt und die Build-Nummer um 1 erhöht.
Später sind wir dazu übergegangen, die korrekte Version in der Setup.inf zu pflegen, AskUninstallOld auf 0 zu setzen und vor der Installation zu prüfen, ob das Verzeichnis bereits vorhanden ist.
Für diese Vorgehensweise haben wir den folgenden Befehl aus den neo-Paketen übernommen, um die alte Version korrekt zu deregistrieren, damit keine Paketreste im Empirum-Inventory verbleiben:
CallHidden %System%\cmd.exe /C FOR /F "Tokens=*" %%I IN ('%System%\reg.exe QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" ^| %System%\find.exe /I "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Matrix42 - %DeveloperName% %ProductName%"') DO CALL %System%\reg.exe DELETE "%%I" /F
CallHidden %System%\cmd.exe /C FOR /F "Tokens=*" %%I IN ('%System%\reg.exe QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\$Matrix42Packages$\%DeveloperName%\%ProductName%" ^| %System%\find.exe /V /I "HKEY_LOCAL_MACHINE\Software\$Matrix42Packages$\%DeveloperName%\%ProductName%\%Version%"') DO CALL %System%\reg.exe DELETE "%%I" /F
CallHidden %System%\cmd.exe /C FOR /F "Tokens=*" %%I IN ('dir /B /AD /S "%CommonAppData%\$Matrix42Scripts$\%DeveloperName%\%ProductName%" ^| %System%\find.exe /V /I "%CommonAppData%\$Matrix42Scripts$\%DeveloperName%\%ProductName%\%Version%"') DO RD /S /Q "%%I"
Bei den neuen PSADT-Paketen bin ich unsicher, wie ich das genau abbilden soll. Ein Paket, das ich bereits umgestellt habe, läuft derzeit noch auf Version 1.0.
Dass die alte Version nicht aktiv deinstalliert wird, würde ich vermutlich über den Schalter UninstallOld in der neo42PackageConfig.json steuern.
Wie kann ich erreichen, dass das alte Paket korrekt sowohl für Empirum als auch für PSADT deregistriert wird?
Gruß
Meikel Hartmann