habe das Problem das mehrere Pakete sich immer neu installieren.
Hintergrund: Wir testen grade WinXP 64 auf einigen CAD-Workstations. Aufgrund dessen haben wir ein paar Softwarepakete angepasst und die neue Platform-Variable gesetzt und zwar auf *.
Wenn ich das richtig verstanden habe prüft das Empirum wenn Platform=* gesetzt ist ob es sich um ein 64 Bit Betriebssystem handelt und falls ja setzt es die Variablen und Pfade auf 64 Bit. Will sagen Sachen wie MachineKeyName werden unter dem Hive HKLM-Software überprüft und NICHT unter HKLM-Software-Wow6432Node. Soweit ich das Beurteilen kann werden die Registry-Schlüssel auch korrekt unter HKLM-Software-MATRIX42-InstalledApps- angelegt aber bei der nächsten Anmeldung wird wieder munter drauf los installiert.
Folgendes Phänomen tritt auf: Sobald ich die Setup.inf anpasse und Platform=* setze installiert er das Paket bei jeder Anmeldung erneut obwohl der Registry-Schlüssel korrekt gesetzt ist! Wir prüfen auf HKLM-Software-Matrix42-InstalledApps-%Developer Name%-%Product Name%
Da wir das Paket schon vorher auf unsere 32 Bit Rechner ausgerollt haben weiß ich das es 100% funktioniert! Hier mal die Setup.inf
Code: Select all
[Setup]
Version=10.5
ShowCaption=1
BlockInput=0
Platform=*
[Requirements]
[Application]
ProductName=SetAdminPWD
ProductNameShort=SetAdminPWD
Version=1.0
VersionDirSuffix=100
Revision=0
ServiceRelease=0
DeveloperName=Weeke
DeveloperNameShort=
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName% %Version%", Arial, 30, , 00FFFF, 4, , LEFT BOLD ITALIC
Text2="%DeveloperName%", Arial, 24, , 00FFFF, 4, , LEFT BOLD ITALIC
Text8="%Company%", Arial, 18, , 00FFFF, 4, 10, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial, 14, , 007F00, 4, -14, BOTTOM ITALIC LEFT
BackgroundColor=FF0000,000000
BackgroundPicture=
BackgroundSound=
Logo=
WizardPicture=
CopyDialogRect=0%, 0%, 100%, 100%, HCENTER VCENTER
PrecopyFiles=
UserKeyName=%DeveloperName%%ProductName%
MachineKeyName=Matrix42Installed Apps%DeveloperName%%ProductName%%Version%
UninstallKeyName=%DeveloperNameShort% %ProductName%
UninstallDisplayName=%ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%Setup.exe" "%ProgramFilesDir%EmpInst%DeveloperName% %ProductName% %Version%.%Revision%Setup.inf"
ReinstallMode=1
HideUninstall=0
UninstallDisplayIcon=
SrcDir=..
ApplicationDir=
SetupInfDir=Install
DataDir=%Personal%
DefaultUser=
DefaultCompany=
Prompts=
RunIfInstalled=
Readme=
Execute=
Expand=0
CopyExistingFiles=0
AskUninstallOld=1
AskLicence=0
AskInfo=0
AskFromCD=0
AskShared=0
AskMode=0
AskDir=0
AskDataDir=0
AskUser=0
AskWinDir=0
UseUser=0
UseCompany=1
UseProductID=0
ProductIDLength=0
UseProductIDPerOption=0
UseCheckmarks=2
AutoIniFileMapping=0
ShellLinks=1
CommonShellLinks=0
CreateUnresolvableShellLinks=1
ShowShellFolder=
LicenceText=
InfoText=
RequirementsText=
UseStringSection=Strings:09
UseSysStringSection=SysStrings:09
PrintServer=
PrintEnvironment=
DateWarning=1
SizeWarning=1
Reboot=0
PreventExternalReboot=0
StartServicesOnReboot=0
CallTimeOut=3600
AbortAfterCallTimeOut=1
ReplaceRunOnce=0
DisableCancelButton=1
ShowEndMessage=1
EndMessage=%EndMessageDesc%
SetupExtDll=
SetupHookFunc=
ShowFullPath=0
VerboseLevel=0
[Admin]
AdminSetup=0
ApplicationDir=
AskDir=1
AskOptions=0
ClientSrcDir=Client
ReinstallString="%ProgramFilesDir%EmpInst%DeveloperName% %ProductName% %Version%.%Revision%Setup.inf"
UninstallString=%ReinstallString% /U
[Client]
AskDir=0
AskOptions=1
ClientDir=
InstallAtLast=0
Reboot=0
UseUninstallStringFromApplication=1
[Workstation]
AskOptions=0
AdminUninstallLink=0
AdminUninstallLinkName=%ProductName% %Version%
UserSetupLink=0
UserSetupLinkName=%ProductName% %Version%
[Strings:07]
Disk1=Diskette 1: Installationsdiskette
EndMessageDesc=Die Installation wurde erfolgreich abgeschlossen!
InstallationFor=Installation für:
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
InstallerName=Installationsprogramm
ProductDesc=
SetupWizard=Installations-Assistent
Uninstallation=deinstallieren
[Strings:09]
Disk1=Diskette 1: Installation disk
EndMessageDesc=Installation was completed successfully!
InstallationFor=Installation for:
InstallerDesc=Service program to install single components.
InstallerName=Setup program
ProductDesc=
SetupWizard=Installation Wizard
Uninstallation=Uninstallation
[SysStrings:07]
Users=Benutzer
[SysStrings:09]
Users=Users
[Environment]
; NetInstall-GUID des Paketes eintragen
NIKey=NoKey
;HardwareType=Laptop
;HardwareType=Deskop
HardwareType=%HKLM,"SoftwareMatrix42Installed AppsHardware","Type"%
CommonSetupDir=%CommonFilesDir%Setup%SetupBits%
V_MachineValuesPath=\%EmpirumServer%Values$MachineValues%DomainName%
V_UserValuesPath=%HKLM,"Softwarematrix42Software 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]!!!
VM_CAS=%%%V_MachineValuesPath%%ComputerName%.ini,%ComputerName%,CAS%%
[Prompts]
[Services]
[Processes]
[EventSources]
[Encryption]
AdminPwd=*YRcw.mzwZ~
[Disks]
1=%Disk1%
[UserKeyNames]
[Icons]
Product = %ProductNameShort%.ico, 0, 000000, ICON
[Options]
Installer = %InstallerName%, COPYALWAYS, Installer, "%InstallerDesc%"
Product = %ProductName%, COPYALWAYS, Product, "%ProductDesc%"
[OptionDependencies]
[OptionGroups]
[Installer]
1:........UserSetup.exe, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:........UserSetupDeu.chm, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:........UserSetupEnu.chm, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:........UserMx42SynSem.dll, %System%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP WINDOWS32, 0
1:........Userx64Mx42SynSem.dll, %System%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP WINDOWS64, 0
1:%SetupInfDir%Setup.inf, %ProgramFilesDir%EmpInst%DeveloperName% %ProductName% %Version%.%Revision%, DIRECTORY USEFILENAME, 0
1:%Temp%Setup64.exe, %CommonSetupDir%Setup.exe, OPTIONAL NOSIZEWARNING SETUP ALWAYS WINDOWS64, 0
[FileCheckMachine]
ReplaceEnv V_MachineValuesPath
If DoesFileExist ("%V_MachineValuesPath%%ComputerName%.ini") == "0" Then "FileIsntThere" EndIf
[FileCheckClient]
ReplaceEnv V_UserValuesPath
If "%UserDomain%" <> "%ComputerName%" Then "CheckClientFile" EndIf
[CheckClientFile]
If DoesFileExist ("%V_UserValuesPath%%WindowsUser%.ini") == "0" Then "FileIsntThere" EndIf
[FileIsntThere]
ErrorLogMsg <Error>
Abort
[Product]
If DoesRegKeyExist ("HKLM,SOFTWARENetSupportNetInstallInstalled Apps%NIKey%") == "0" Then "StartInstallation" Else "NetInstall" Endif
[StartInstallation]
;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT
ReplaceEnv VM_CAS
#Set:Product
#Reg:OnUninstallProduct, DELETE
#Reg:Product
#Ini:Product
#Security:Product
#Set:StartInventory, DONTDELETE
[Set:Product]
mkdir "%Systemdrive%temp"
[Reg:OnUninstallProduct]
[Reg:Product]
[Ini:Product]
[Security:Product]
LocalUser.Mod (Administrator, %AdminPwd%,,,,,,,)
LocalGroup.AddMember("%$LocalAdmins%","homag-groupdv60")
[Shell:Installer]
[Shell:Product]
[NetInstall]
#Set:NIDeInstallation, DELETE
[Set:NIDeInstallation]
-CallHidden "CMD.EXE" /C reg delete "HKLMSOFTWARENetSupportNetInstallInstalled Apps%NIKey%" /f
;DeInstallations-Routine einfuegen
[Set:StartInventory]
If DoesRegKeyExist ("HKLM,SOFTWAREMATRIX42Installed Apps,OSInstallation") == "0" Then "Set:StartInventory2" Endif
[Set:StartInventory2]
CallHidden "CMD.EXE" /C \%empirumserver%Configurator$Packagesmatrix42Inventory11.0WindowsSystemEmpirumEmpInventory.exe /C\%empirumserver%Configurator$UserEmpInvScan_WINDOWS.xml /O"\%empirumserver%EmpInv$#DomainName#.%ComputerName%_#SysTime#.xml" /E /DMI /WMI /AUT /V2 /M /T /ZIP
Was mich sehr verwundert hat ist folgendes, sobald ich in der Setup.inf aus dem Platform=* ein Platform=x86 mache funktioniert das ganze wieder. D.h. das Paket wird bei der nächsten Anmeldung installiert und in die Registry eingetragen (Diesmal unter dem Hive HKLM-Software-Wow6432Node-matrix42-InstalledApps-) und danach folgt KEIN Installationsaufruf mehr. Wenn ich das Paket danach deinstalliere und Platform=* eintragen geht die Sache wieder von vorne los und das Paket installiert sich immer wieder...
Habe ich da von der Funktionsweise des Platform Parameters etwas falsch verstanden oder läuft es wirklich nicht so wie es soll?
Was ich schon probiert habe: Setup.inf neu erstellen; Paket aus dem Empirum Depot löschen und neu einfügen