Seite 1 von 1

Update Paket im Loop

Verfasst: 28. Jan 2020, 16:56
von caputo
Hallo Forum,

ich würde mich über Hinweise freuen, die helfen folgendes Problem zu beheben.

Ich habe den Owncloud Client 2.4.2 via "exe /S" paketiert und auf verschiedenen Rechnern sauber installieren lassen.
Nun möchte ich die aktuelle Version 2.6.0 ausrollen.
Habe hierfür die msi paketiert:

Code: Alles auswählen

Call MsiExec /I "%SRC%\ownCloud-2.6.0.13018.12690.msi"   REBOOT=REALLYSUPPRESS ARPSYSTEMCOMPONENT=1 /q /Li "%MSILogFile%"
Die SID der If Abfrage musste ich anpassen, da nach der Installation der Uninstall Key unter einer anderen SID in der Registry abgelegt war.
Die Platform ist bei beiden Paketen x86. Wobei die MSI nur für x64 ist. Das 2.4.2 Paket allerdings bereits als x86 installiert war.
ASKUNINSTALLOLD=0, da bei 1 die Meldung kam, der Uninstaller würde bereits laufen.

Nun habe ich das Update mit dem Package Editor sauber installieren können. Auch Test auf mehreren Rechnern liefen sauber durch.

Nach der Freigabe für alle Rechner verhalten sich einige Computer so, dass Sie einen Reboot verlangen und nach diesem das Paket im Loop immer wieder installieren. Wodurch kann der Loop enstanden sein? Wie kann ich ihn unterbinden?

Vielen Dank für Eure Tipps!

Re: Update Paket im Loop

Verfasst: 29. Jan 2020, 08:32
von MaMa82
Moin Moin!

Klassischer Weise passieren Loops, wenn das Empirum Paket als solches bspw. nicht vollständig installiert werden kann (das Skript also vor der letzten Sektion abbricht).

Desweiteren lohnt sich einmal die Kontrolle der CommandLineOptions. Manchmal wird beim Import des Pakets in der EMC noch ein unnötiges /AW in der Befehlszeile (und somit in der DB) eingefügt.

Da Du nur einen Schnipsel aus dem Skript gepostet hast, ist hier eine fundierte Aussage nicht möglich - es handelt sich hier eher um das Glaskugelprinzip. ;)

Und AskUninstallOld bezieht sich auf das (autmatische) Entfernen älterer Empirum Paket Versionen (und der älteren Software, sofern der Uninstall-Mechanismus des alten Pakets funktioniert).

Re: Update Paket im Loop

Verfasst: 29. Jan 2020, 09:53
von caputo
Vielen Dank, dass Du Dir die Zeit für mein Problem genommen hast!
Die Software an sich ist installiert und funktioniert. Nur eben der Loop nach Neustart des Client.

Mein Skript für die 2.4.2 sieht so aus:

Code: Alles auswählen

[SetupInfo]
Author                  =
CreationDate            =23.07.2018 12:38:31
InventoryID             =
Description             =
Method                  =
Tested on               =
Dependencies            =
Command line options    =/S2
Last Change             =
Build                   =

[VarDefInfo]
; <Variable>, <Type: 0=Computer 1=User>, <Allow NULL values: 0=No 1=Yes>

[Setup]
Version=14.2
ShowCaption=1
BlockInput=0
Platform=x86

[Requirements]

[Application]
ProductName=Owncloud Client
DeveloperName=Owncloud
Version=2.4.2.10040
Revision=0
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName% %Version%",         Arial,           30, , 2170F3, 4,    , LEFT BOLD ITALIC
Text2="%DeveloperName%",                 Arial,           24, , 2170F3, 4,    , LEFT BOLD ITALIC
Text8="%Company%",                       Arial,           18, , 2170F3, 4,  10, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial,           16, , 2170F3, 4, -18, BOTTOM ITALIC LEFT
BackgroundColor=EFEFEF,000000
CopyDialogRect=0%, 0%, 100%, 100%, HCENTER VCENTER

; Register all installations in common registry key
UserKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%
MachineKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=Matrix42 - %DeveloperName% %ProductName% %Version%
UninstallDisplayName=Matrix42 - %DeveloperName% %ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%App%\%SetupInfDir%\Setup.inf"
;UninstallDisplayIcon="%ApplicationDir%\%SetupInfDir%\Setup.ico",0
UninstallOptions=NOREMOVE NOREPAIR NOMODIFY
ReinstallMode=1
SrcDir=..

; Matrix42 Scripts are copied in a common scripts directory
ApplicationDir=%CommonAppData%\$Matrix42Scripts$\%DeveloperName%\%ProductName%\%Version%

SetupInfDir=Install
DataDir=%Personal%
AskUninstallOld=0
ShellLinks=1
CommonShellLinks=1
CreateUnresolvableShellLinks=1
UseStringSection=Strings:09
UseSysStringSection=SysStrings:09
DateWarning=1
SizeWarning=0
Reboot=0
PreventExternalReboot=1
StartServicesOnReboot=0
CallTimeOut=3600
AbortAfterCallTimeOut=1
DisableCancelButton=1
ShowEndMessage=1
EndMessage=%EndMessageDesc%

[Strings:07]
Disk1=Installationsmedium 1
EndMessageDesc=Die Installation wurde erfolgreich abgeschlossen!
ErrorLogMessage=Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen!
InstallationFor=Installation für:
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
InstallerName=Installationsprogramm
SetupWizard=Installations-Assistent
Uninstallation=deinstallieren
ErrorText=Fehler
CallingText=beim Aufruf von

[Strings:09]
Disk1=Installation media 1
EndMessageDesc=Installation was completed successfully!
ErrorLogMessage=The installation/uninstallation aborted with an error message!
InstallationFor=Installation for:
InstallerDesc=Service program to install single components.
InstallerName=Setup program
SetupWizard=Installation Wizard
Uninstallation=Uninstallation
ErrorText=Error
CallingText=launching

[SysStrings:07]
Users=Benutzer

[SysStrings:09]
Users=Users

[Environment]
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=\\%EmpirumServer%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

; Maschinenabhängige Variablen
; machine dependent variables
;VM_<Variable>=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,<Variable>%%

; Userabhängige Variablen
; user dependent variables
;VU_<Variable>=%%%V_UserValuesPath%\%WindowsUser%.ini,%WindowsUser%,<Variable>%%

; !!! Setzen der entsprechenden ReplaceEnv Befehle für die Variablen im Abschnitt [Product] nicht vergessen!!!
; !!! Don't forget to set the appropriate ReplaceEnv instructions for the variables in the section [Product]!!!

[Encryption]

[Disks]
1=%Disk1%

[Options]
Installer = %InstallerName%, COPYALWAYS, Installer, "%InstallerDesc%"
Product   = %ProductName%,   COPYALWAYS, Product,   "%ProductDesc%"

[Installer]
1:..\..\..\..\User\Setup.exe,          %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupDeu.chm,       %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupEnu.chm,       %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:%Temp%\Setup64.exe,                  %CommonSetupDir%\Setup.exe, OPTIONAL ALWAYS NOSIZEWARNING SETUP WINDOWS64,     0
1:..\..\..\..\User\Setup64.exe,        %CommonSetupDir%\Setup.exe, OPTIONAL ALWAYS NOSIZEWARNING SETUP WINDOWS64,     0
1:%SetupInfDir%\Setup.inf,                             , NORMAL,                                             0
; 1:%SetupInfDir%\Setup.ico,                             , NORMAL,                                           0
; 1:%SetupInfDir%\Logo.bmp,                              , NORMAL,                                           0

[Product]
; ReplaceEnv <Variable>

#Set:Product
#Set:Installation, DONTDELETE
#Set:Deinstallation, DELETE
#Reg:OnUninstallProduct, DELETE
#Reg:Product
#Ini:Product
#Security:Product

[Set:Product]

[Set:Installation]
AddMeter -1
Call "%Src%\ownCloud-2.4.2.10040-setup.exe" /S
Del "C:\Users\Public\Desktop\ownCloud.lnk" /F
If "%ErrorLevel%" <> "0" Then "SET:InstallationError" EndIf

[Set:Deinstallation]
If "%ErrorLevel%" <> "0" Then "SET:DeInstallationError" EndIf
-Call "C:\Program Files (x86)\ownCloud\uninstall.exe" /S 
-AddMeter -1

[Reg:OnUninstallProduct]

[Reg:Product]
HKLM,"SOFTWARE\WOW6432Node\Policies\ownCloud\ownCloud","SkipUpdateCheck",0x00010001,"0x00000001"
HKLM,"SOFTWARE\WOW6432Node\ownCloud\ownCloud","skipUpdateCheck",0x00010001,"0x00000001"

[Ini:Product]

[Security:Product]

[Shell:Product]

[Set:InstallationError]
ErrorLogMsg %ErrorText% %ErrorLevel% %CallingText% ownCloud-2.4.2.10040-setup.exe
Abort

[Set:DeInstallationError]
-Abort
-ErrorLogMsg %ErrorText% %ErrorLevel% %CallingText% ownCloud-2.4.2.10040-setup.exe
Das komplette Skript für die 2.6.0:

Code: Alles auswählen

[SetupInfo]
Author                  =
CreationDate            =27.01.2020 11:45:28 
InventoryID             = 
Description             = 
Method                  = MSI
Tested on               = 
Dependencies            = 
Command line options    =/S2
Last Change             = 
Build                   = 

[VarDefInfo]
; <Variable>, <Type: 0=Computer 1=User>, <Allow NULL values: 0=No 1=Yes>

[Setup]
Version=14.2
ShowCaption=1
BlockInput=0
Platform=x86

[Requirements]

[Application]
ProductName=Owncloud Client
DeveloperName=Owncloud
Version=2.6.0.12644
Revision=0
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName% %Version%",         Arial,           30, , 2170F3, 4,    , LEFT BOLD ITALIC
Text2="%DeveloperName%",                 Arial,           24, , 2170F3, 4,    , LEFT BOLD ITALIC
Text8="%Company%",                       Arial,           18, , 2170F3, 4,  10, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial,           16, , 2170F3, 4, -18, BOTTOM ITALIC LEFT
BackgroundColor=EFEFEF,000000
CopyDialogRect=0%, 77%, 100%, 100%, HCENTER

; Register all installations in common registry key
UserKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%
MachineKeyName=$Matrix42Packages$\%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=Matrix42 - %DeveloperName% %ProductName% %Version%
UninstallDisplayName=Matrix42 - %DeveloperName% %ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%App%\%SetupInfDir%\Setup.inf"
;UninstallDisplayIcon="%ApplicationDir%\%SetupInfDir%\Setup.ico",0
UninstallOptions=NOREMOVE NOREPAIR NOMODIFY
ReinstallMode=1
SrcDir=..

; Matrix42 Scripts are copied in a common scripts directory
ApplicationDir=%CommonAppData%\$Matrix42Scripts$\%DeveloperName%\%ProductName%\%Version%

SetupInfDir=Install
DataDir=%Personal%
AskUninstallOld=0
ShellLinks=1
CommonShellLinks=1
CreateUnresolvableShellLinks=1
UseStringSection=Strings:09
UseSysStringSection=SysStrings:09
DateWarning=1
SizeWarning=0
Reboot=1
PreventExternalReboot=1
StartServicesOnReboot=0
CallTimeOut=3600
AbortAfterCallTimeOut=1
DisableCancelButton=1
ShowEndMessage=1
EndMessage=%EndMessageDesc%

[Strings:07]
Disk1=Installationsmedium 1
EndMessageDesc=Die Installation wurde erfolgreich abgeschlossen!
ErrorLogMessage=Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen!
InstallationFor=Installation für:
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
InstallerName=Installationsprogramm
SetupWizard=Installations-Assistent
Uninstallation=deinstallieren

[Strings:09]
Disk1=Installation media 1
EndMessageDesc=Installation was completed successfully!
ErrorLogMessage=The installation/uninstallation aborted with an error message!
InstallationFor=Installation for:
InstallerDesc=Service program to install single components.
InstallerName=Setup program
SetupWizard=Installation Wizard
Uninstallation=Uninstallation

[SysStrings:07]
Users=Benutzer

[SysStrings:09]
Users=Users

[Environment]
V_MSIInstallerID=B53F53B08BEAF6545B57BCBBE8ACDDA0
ReInstSuccessMessage1031=Die Konfiguration wurde erfolgreich abgeschlossen.
ReInstSuccessMessage1031_1=Die Konfiguration wurde abgeschlossen.
ReInstSuccessMessage1033=Configuration completed successfully.
ReInstSuccessMessage1033_1=Configuration completed.
MSILogFile=%Temp%\MSI_%ProductName%.%Version%.%Revision%.log
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=\\%EmpirumServer%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

; Maschinenabhängige Variablen
; machine dependent variables
;VM_<Variable>=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,<Variable>%%

; Userabhängige Variablen
; user dependent variables
;VU_<Variable>=%%%V_UserValuesPath%\%WindowsUser%.ini,%WindowsUser%,<Variable>%%

; !!! Setzen der entsprechenden ReplaceEnv Befehle für die Variablen im Abschnitt [Product] nicht vergessen!!!
; !!! Don't forget to set the appropriate ReplaceEnv instructions for the variables in the section [Product]!!!

[Encryption]

[Disks]
1=%Disk1%

[Options]
Installer = %InstallerName%, COPYALWAYS, Installer, "%InstallerDesc%"
Product   = %ProductName%,   COPYALWAYS, Product,   "%ProductDesc%"

[Installer]
1:..\..\..\..\User\Setup.exe,          %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupDeu.chm,       %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupEnu.chm,       %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:%Temp%\Setup64.exe,                  %CommonSetupDir%\Setup.exe, OPTIONAL ALWAYS NOSIZEWARNING SETUP WINDOWS64,     0
1:..\..\..\..\User\Setup64.exe,        %CommonSetupDir%\Setup.exe, OPTIONAL ALWAYS NOSIZEWARNING SETUP WINDOWS64,     0
1:%SetupInfDir%\Setup.inf,                             , ALWAYS,                                             0
; 1:%SetupInfDir%\Setup.ico,                             , NORMAL,                                           0
; 1:%SetupInfDir%\Logo.bmp,                              , NORMAL,                                           0

[Product]
; ReplaceEnv <Variable>

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

[Set:Product]
Del "%MSILogFile%"
If DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{84FE3CE4-1E1F-4CE7-9606-4DD7BF0AE35D},UnInstallString") == "1" | DoesRegKeyExist ("HKLM,SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{84FE3CE4-1E1F-4CE7-9606-4DD7BF0AE35D},UnInstallString") == "1" Then "RepairMSI" Else "InstallMSI" EndIf

[RepairMSI]
AddMeter -1
Call MsiExec /Fvomus "%SRC%\ownCloud-2.6.0.13018.12690.msi"   REBOOT=REALLYSUPPRESS ARPSYSTEMCOMPONENT=1 /q /Li "%MSILogFile%"
If %ErrorLevel% == "3010" Then "RebootRequired" EndIf
If DoesTextInFileExist ("%ReInstSuccessMessage1031%", "%MSILogFile%") == "0" & DoesTextInFileExist ("%ReInstSuccessMessage1031_1%", "%MSILogFile%") == "0" & DoesTextInFileExist ("%ReInstSuccessMessage1033%", "%MSILogFile%") == "0" & DoesTextInFileExist ("%ReInstSuccessMessage1033_1%", "%MSILogFile%") == "0" Then "AbortMSIInst" EndIf
Del "%MSILogFile%"

[InstallMSI]
AddMeter -1
Call MsiExec /I "%SRC%\ownCloud-2.6.0.13018.12690.msi"   REBOOT=REALLYSUPPRESS ARPSYSTEMCOMPONENT=1 /q /Li "%MSILogFile%"
Del "C:\Users\Public\Desktop\ownCloud.lnk" /F
If %ErrorLevel% == "3010" Then "RebootRequired" EndIf
If DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{84FE3CE4-1E1F-4CE7-9606-4DD7BF0AE35D},UnInstallString") == "0" & DoesRegKeyExist ("HKLM,SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{84FE3CE4-1E1F-4CE7-9606-4DD7BF0AE35D},UnInstallString") == "0" Then "AbortMSIInst" EndIf
Del "%MSILogFile%"

[Set:Uninstall]
-Del "%MSILogFile%"
If DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{84FE3CE4-1E1F-4CE7-9606-4DD7BF0AE35D},UnInstallString") == "1" | DoesRegKeyExist ("HKLM,SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{84FE3CE4-1E1F-4CE7-9606-4DD7BF0AE35D},UnInstallString") == "1" Then "AbortMSIUnInst" EndIf
If %ErrorLevel% == "3010" Then "RebootRequired" EndIf
-Call MsiExec /X {84FE3CE4-1E1F-4CE7-9606-4DD7BF0AE35D} MSIRESTARTMANAGERCONTROL=Disable REBOOT=REALLYSUPPRESS /q /Li "%MSILogFile%"
-AddMeter -1

[RebootRequired]
SetReboot 1
-SetReboot 1

[AbortMSIInst]
ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%
Abort

[AbortMSIUnInst]
-Abort
-ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%

[SET:ChangeMSISourcelist]
ReplaceRegValue (HKCR,"Installer\Products\%V_MSIInstallerID%\Sourcelist","LastUsedSource","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)
ReplaceRegValue (HKCR,"Installer\Products\%V_MSIInstallerID%\Sourcelist\Net","1","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)

[Reg:OnUninstallProduct]

[Reg:Product]
HKLM,"SOFTWARE\WOW6432Node\Policies\ownCloud\ownCloud","SkipUpdateCheck",0x00010001,"0x00000001"
HKLM,"SOFTWARE\WOW6432Node\ownCloud\ownCloud","skipUpdateCheck",0x00010001,"0x00000001"

[Ini:Product]

[Security:Product]

[Shell:Product]

Re: Update Paket im Loop

Verfasst: 29. Jan 2020, 10:27
von MaMa82
Was sagt denn das SWDepot-Log der betroffenen Clients? (nach der Inst und vor dem Loop)

Re: Update Paket im Loop

Verfasst: 29. Jan 2020, 10:46
von caputo
29.01.2020 07:00 Domain ClientX SYSTEM Agent Daily Status Daily Status Information eho-emp-1 (SMB)
29.01.2020 06:59 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Success
28.01.2020 15:42 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Reboot Pending
28.01.2020 15:42 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Running
28.01.2020 15:40 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Success
28.01.2020 15:06 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Reboot Pending
28.01.2020 15:06 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Running
28.01.2020 15:03 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Success
28.01.2020 15:00 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Reboot Pending
28.01.2020 14:59 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Running
28.01.2020 14:57 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Success
28.01.2020 14:54 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Reboot Pending
28.01.2020 14:54 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Running
28.01.2020 14:52 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Success
28.01.2020 14:47 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Reboot Pending
28.01.2020 14:47 Domain ClientX SYSTEM Cloud 2.6 2.6.0.12644 0 Update Running
28.01.2020 14:46 Domain ClientX Distribution Cloud 2.6 2.6.0.12644 0 Download Success Empirum (SMB)
28.01.2020 14:46 Domain ClientX Distribution Cloud 2.6 2.6.0.12644 0 Download Running Empirum (SMB)

Re: Update Paket im Loop

Verfasst: 29. Jan 2020, 13:12
von marc.schneider
Hallo caputo,

ich wäre ja der Meinung, dass die MSIID falsch ist. Habe das MSI gerade mal geladen und mit Orca aufgemacht. Dort steht die ID {0B35F35B-AEB8-456F-B575-CBBB8ECADD0A}
Hast du das Paket mal Step by Step mit dem Package Editor debugged?

Beste Grüße
Marc

Re: Update Paket im Loop

Verfasst: 29. Jan 2020, 14:29
von caputo
Danke Marc für Deine Antwort.
Wie oben erwähnt, habe ich die SID im Skript an die angepaßt, die in der Registry nach der Installation angelegt wurde.
In der Registry findet sich nicht die {0B35F35B-AEB8-456F-B575-CBBB8ECADD0A} sondern die {84FE3CE4-1E1F-4CE7-9606-4DD7BF0AE35D}. Beim Step by Step Durchlauf brach das Skript beim Chekcen der RegKeys ab, weil der Key eben ein anderer ist. Da liegt wohl der Hase im Pfeffer!? Was kann ich hier tun? Das MSI Paket mit Orca anpassen und die SID austauschen? Geht das denn?

Re: Update Paket im Loop

Verfasst: 29. Jan 2020, 16:07
von marc.schneider
Hallo caputo,
mit Orca kannst Du die korrekte ID auslesen und dann einfach in der setup.inf mit suchen&ersetzen anpassen. Das klappt ;-)
Viel Erfolg
Marc

Re: Update Paket im Loop

Verfasst: 30. Jan 2020, 12:42
von caputo
Danke Marc für Deine Antwort!

Ich erstelle das Skript via Package Wizard "MSI".
Hier erstellt mir der Wizard das Skript mit der {0B35F35B-AEB8-456F-B575-CBBB8ECADD0A}

Code: Alles auswählen

If DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0B35F35B-AEB8-456F-B575-CBBB8ECADD0A},UnInstallString") == "0" & DoesRegKeyExist ("HKLM,SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{0B35F35B-AEB8-456F-B575-CBBB8ECADD0A},UnInstallString") == "0" Then "AbortMSIInst" EndIf
In der Registry wird der Owncloud Client allerdings folgendermaßen angelegt:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{84FE3CE4-1E1F-4CE7-9606-4DD7BF0AE35D}

Somit schlägt die Installation nach der If-Abfrage fehl. Daher habe ich die SID im Skript mit der in der Registry ersetzt, so dass das Skript nun logisch ist.
Allerdings tritt nun der Loop auf.

Es gibt keine andere SID die ich mit Orca auslesen könnte. In Orca finde ich unter Proberty - Product Code nur die "falsche" {0B35F35B-AEB8-456F-B575-CBBB8ECADD0A}.

Daher kann ich Deinen Lösungsvorschlag nichts anwenden. Oder stehe ich auf dem Schlauch?

Re: Update Paket im Loop

Verfasst: 30. Jan 2020, 13:01
von MaMa82
Herzlichen Glückwunsch,

dann hast Du sehr wahrscheinlich ein Produkt/Installer erwischt, der dynamische MSI GUIDs erzeugt.
Das habe ich nämlich auch schon mal gesehen. :D

Es gibt hier aber eine Empirum Skript-Interpreter interne Funktion um die passende MSIGUID direkt aus der Registry auszulesen. ;)
Siehe: GetUninstallKeyName :!: :wink:

Re: Update Paket im Loop

Verfasst: 30. Jan 2020, 13:56
von marc.schneider
Hallo MaMa82!
dann hast Du sehr wahrscheinlich ein Produkt/Installer erwischt, der dynamische MSI GUIDs erzeugt.
Das habe ich nämlich auch schon mal gesehen. :D
Ach Du Sch<piep>! Na toll, so etwas hatte ich glücklicher Weise noch nicht.

Danke für die Info
Marc

Re: Update Paket im Loop

Verfasst: 30. Jan 2020, 14:51
von caputo
Danke Jungs für Eure Zeit.
Ich werd versuchen mich schlau zu machen und das ggf für die Nachwelt hier posten.