ich versuche grade 3ds Max 2010 via OPSI zu installieren. Funktioniert auch soweit richtig und wird auch komplett installiert, allerdings bleibt OPSI beim Punkt "Waiting until the called process is finished" hängen obwohl der Prozess des Installationssetups schon lange beendet ist.
Hat jemand eine Idee wie ich das Problem lösen kann?
; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/en/credits/
[Actions]
requiredWinstVersion >= "4.11.2.6"
DefVar $MsiId32$
DefVar $UninstallProgram32$
DefVar $MsiId64$
DefVar $UninstallProgram64$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $InstallDir32$
DefVar $InstallDir64$
DefVar $ExitCode$
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
DefVar $INST_SystemType$
DefVar $INST_architecture$
Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
Set $LogDir$ = "%SystemDrive%\tmp"
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$ = "3dsMax"
Set $MinimumSpace$ = "2250 MB"
; the path were we find the product after the installation
Set $InstallDir32$ = "%ProgramFiles32Dir%\Autodesk"
Set $InstallDir64$ = "%ProgramFiles64Dir%\Autodesk"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
; ----------------------------------------------------------------
if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
isFatalError
; Stop process and set installation status to failed
else
comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
if FileExists("%ScriptPath%\delsub3264.ins")
comment "Start uninstall sub section"
Sub "%ScriptPath%\delsub3264.ins"
endif
if $LicenseRequired$ = "true"
comment "Licensing required, reserve license and get license key"
Sub_get_licensekey
endif
comment "installing"
if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only")
Message "Installing " + $ProductId$ + " 32 Bit..."
comment "Start setup program"
ChangeDirectory "%SCRIPTPATH%"
Winbatch_install_32
Sub_check_exitcode
comment "Copy files"
Files_install_32 /32Bit
comment "Patch Registry"
Registry_install /32Bit
comment "Create shortcuts"
LinkFolder_install
endif
if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
Message "Installing " + $ProductId$ + " 64 Bit..."
comment "Start setup program"
ChangeDirectory "%SCRIPTPATH%"
Winbatch_install_64
Sub_check_exitcode
comment "Copy files"
Files_install_64 /64Bit
comment "Patch Registry"
Registry_install /64Bit
comment "Create shortcuts"
LinkFolder_install
endif
endif
[Winbatch_install_32]
"%ScriptPath%\x86\AdminImage\setup.exe" /qb /I %ScriptPath%\x86\AdminImage\3ds Max 2010.ini
[Files_install_32]
[Winbatch_install_64]
"%ScriptPath%\x64\AdminImage\setup.exe" /qb /I %ScriptPath%\x64\AdminImage\3ds Max 2010 x64.ini
[Files_install_64]
[Registry_install]
[LinkFolder_install]
[Sub_get_licensekey]
[Sub_check_exitcode]
comment "Test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
comment "Looks good: setup program gives exitcode zero"
else
comment "Setup program gives a exitcode unequal zero: " + $ExitCode$
if ($ExitCode$ = "1605")
comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed."
comment "Uninstall of a not installed product failed - no problem"
else
if ($ExitCode$ = "1641")
comment "looks good: setup program gives exitcode 1641"
comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success."
else
if ($ExitCode$ = "3010")
comment "looks good: setup program gives exitcode 3010"
comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success."
else
logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$
isFatalError
endif
endif
endif
endif
siehst du den installationsprozess im taksmanager?
Der WINST wartet ja bis der aufgerufene Prozess wieder beendet wurde also würde das ja bedeuten das der installer da eine Prozessleiche hinterlassen würde
Könnte natürlich sein das Setup nen unterprozess startet von dem der WINST dann nix weis...
Du könntest natürlich auch das warten abschalten mit /letThemGo beim sektionsaufruf, allerdings wartet WINST dann halt nicht mehr und die scriptabarbeitung ist noch vor der installation beendet.
Das könnte man wiederum z.B. damit abfangen: wiki/userspace:find_killtask
aber ich denke das ziel sollte eher sein warum eine Prozessleiche(?) zurückbleibt
Das ist ja das seltsame. Es bleibt keine Prozessleiche zurück. Die setup.exe installiert mehrere msi Pakete und beendet sich dann. Für etwa eine Minute bleibt ein msiprozess noch bestehen während der setup.exe Prozess bereits weg ist und beendet sich dann auch. Hab es extra auf einem Rechner installiert auf dem sonst rein garnichts anderes installiert ist um zu sehen ob ein Prozess übrig bleibt. Das ist aber nicht der Fall. Kommt mir so vor als hätte opsi ein Problem damit das der inizialprozess (setup.exe) früher beendet wird als der letzte sekundärprozess (msiexec.exe).
chipo hat geschrieben:Kommt mir so vor als hätte opsi ein Problem damit das der inizialprozess (setup.exe) früher beendet wird als der letzte sekundärprozess (msiexec.exe).
Ich weis gar nicht ob Sekundärprozesse überhaupt vom WINST beachtet werden - da bin ich überfragt. das wird UIB aber sicher wissen.
Wenn keine Subprozesse beachtet werden dann ist es wohl ein generelles Problem beim erkenne von Prozessen, da z.b. AutoIT (ProcessWaitClose) das Ende des setup.exe Prozesse problemlos erkennt. Müsste ich dann halt wohl ein entsprechendes AutoIT-Script zwischenschalten.
; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/en/credits/
[Actions]
requiredWinstVersion >= "4.11.2.6"
DefVar $MsiId32$
DefVar $UninstallProgram32$
DefVar $MsiId64$
DefVar $UninstallProgram64$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $InstallDir32$
DefVar $InstallDir64$
DefVar $ExitCode$
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
DefVar $INST_SystemType$
DefVar $INST_architecture$
Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
Set $LogDir$ = "%SystemDrive%\tmp"
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$ = "3dsMax"
Set $MinimumSpace$ = "2250 MB"
; the path were we find the product after the installation
Set $InstallDir32$ = "%ProgramFiles32Dir%\Autodesk"
Set $InstallDir64$ = "%ProgramFiles64Dir%\Autodesk"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
; ----------------------------------------------------------------
if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
isFatalError
; Stop process and set installation status to failed
else
comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
if FileExists("%ScriptPath%\delsub3264.ins")
comment "Start uninstall sub section"
Sub "%ScriptPath%\delsub3264.ins"
endif
if $LicenseRequired$ = "true"
comment "Licensing required, reserve license and get license key"
Sub_get_licensekey
endif
comment "installing"
if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only")
Message "Installing " + $ProductId$ + " 32 Bit..."
comment "Start setup program"
ChangeDirectory "%SCRIPTPATH%"
Winbatch_install_32 /LetThemGo
ExecWith_autoit_confirm "%SCRIPTPATH%\autoit3.exe"
Sub_check_exitcode
comment "Copy files"
Files_install_32 /32Bit
comment "Patch Registry"
Registry_install /32Bit
comment "Create shortcuts"
LinkFolder_install
endif
if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
Message "Installing " + $ProductId$ + " 64 Bit..."
comment "Start setup program"
ChangeDirectory "%SCRIPTPATH%"
Winbatch_install_64 /LetThemGo
ExecWith_autoit_confirm "%SCRIPTPATH%\autoit3.exe"
Sub_check_exitcode
comment "Copy files"
Files_install_64 /64Bit
comment "Patch Registry"
Registry_install /64Bit
comment "Create shortcuts"
LinkFolder_install
endif
endif
[Winbatch_install_32]
"%ScriptPath%\x86\AdminImage\setup.exe" /qb /I %ScriptPath%\x86\AdminImage\3ds Max 2010.ini
[Files_install_32]
[Winbatch_install_64]
"%ScriptPath%\x64\AdminImage\setup.exe" /qb /I %ScriptPath%\x64\AdminImage\3ds Max 2010 x64.ini
[ExecWith_autoit_confirm]
ProcessWait("setup.exe")
ProcessWaitClose("setup.exe")
Exit
[Files_install_64]
[Registry_install]
[LinkFolder_install]
[Sub_get_licensekey]
[Sub_check_exitcode]
comment "Test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
comment "Looks good: setup program gives exitcode zero"
else
comment "Setup program gives a exitcode unequal zero: " + $ExitCode$
if ($ExitCode$ = "1605")
comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed."
comment "Uninstall of a not installed product failed - no problem"
else
if ($ExitCode$ = "1641")
comment "looks good: setup program gives exitcode 1641"
comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success."
else
if ($ExitCode$ = "3010")
comment "looks good: setup program gives exitcode 3010"
comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success."
else
logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$
isFatalError
endif
endif
endif
endif
ist nur ein Versuch,
aber ich habe neulich bei einem Kunden genau diesen Fall gehabt und wir haben hinter der Setup.exe statt /qb nur /q geschrieben und dann ist der Prozess wieder zurück gekommen.
Genau wie hier hat es sich auch um den Aufruf einer AdminImage Installatin gehandelt.
Gruß
Karsten Köpke
Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.
Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung. Gerne informieren wir Sie zu unserem Angebot.
danke für den Hinweis. 3Dsmax habe ich jetzt schon fertig. Morgen kommt aber Civil 3D ebenfalls als Adminimage und ebenfalls von der Firma Autodesk dran da probiere ich das dann mal.