User Tools

Site Tools


userspace:origin

This is an old revision of the document!



This is a master copy. Click on <edit this page> and copy the contents under “snipp”. Then create the page for your own script, paste the content to the editor and modify it as you need it.

Origin Ver. 9.1 MSI Installer

Tested with opsi X.Y.Z
requiredWinstVersion >= W.X.Y.Z
Files can be downloaded at Download here: Download

By <click on the button signature>

Tree:

├── CLIENT_DATA
│   ├── additional
│   │   ├── additional_actions.opsiinc
│   │   ├── additional_sections.opsiinc
│   ├── config.opsiinc
│   ├── delsub.ins
│   ├── files
│   │   ├── MSI
│   │   │   ├── Origin91_x64
│   │   │   │   └── setup.msi
│   │   │   ├── Origin91_x86
│   │   │   │   └── setup.msi
│   │   │   ├── vcreddist_x64_2008_x64
│   │   │   │   ├── vc_red.cab
│   │   │   │   └── vc_red.msi
│   │   │   ├── vcredist_x64-2012_x64
│   │   │   │   ├── vcRuntimeAdditional_amd64
│   │   │   │   │   ├── cab1.cab
│   │   │   │   │   └── vc_runtimeAdditional_x64.msi
│   │   │   │   └── vcRuntimeMinimum_amd64
│   │   │   │       ├── cab1.cab
│   │   │   │       └── vc_runtimeMinimum_x64.msi
│   │   │   ├── vcredist_x86-2008_x86_x64
│   │   │   │   ├── vc_red.cab
│   │   │   │   └── vc_red.msi
│   │   │   └── vcredist_x86-2012_x86_x64
│   │   │       ├── vcRuntimeAdditional_x86
│   │   │       │   ├── cab1.cab
│   │   │       │   └── vc_runtimeAdditional_x86.msi
│   │   │       └── vcRuntimeMinimum_x86
│   │   │           ├── cab1.cab
│   │   │           └── vc_runtimeMinimum_x86.msi
│   │   └── use_server.lic
│   ├── origin9.1.png
│   ├── setup.ins
│   ├── uninstall.ins
│   └── vars.opsiinc
├── OPSI
│   ├── control
│   ├── postinst
│   └── preinst

What you need

  • the MSI Installer from Additive (64bit + 32bit)
  • the MSI files from VISUAL C++ 2012 REDISTRIBUTABLE How to get the MSI Installer:
  • the MSI files from VISUAL C++ 2008 REDISTRIBUTABLE (64bit + 32bit)

Change the following headlines to the names of your scripts

additional_actions.opsiinc

; Insert additional Sektions (only the section name, not the section)
if ($INST_SystemType$ = "x86 System")
	Message "Lizensiere Origin 9.1"
	files_lic_x86
	Message "Installiere benoetigte Laufzeitumgebungen"
	winbatch_vcredist_x86
 
else
	Message "Lizensiere Origin 9.1"
	files_lic_x64
	Message "Installiere benoetigte Laufzeitumgebungen"
	winbatch_vcredist_x64
 
endif

additional_sections.opsiinc

; Insert the section, not the section name !!!
[files_lic_x86]
 copy -s "%ScriptPath%\files\use_server.lic" "%ProgramFilesDir%\Originlab\Origin 9.1\License"
 
[files_lic_x64]
 copy -s "%ScriptPath%\files\use_server.lic" "%ProgramFiles64Dir%\Originlab\Origin 9.1\License"
 
[winbatch_vcredist_x86]
msiexec -i %scriptpath%\files\MSI\vcredist_x86-2008_x86_x64\vc_red.msi -passive
msiexec -i %scriptpath%\files\MSI\vcredist_x86-2012_x86_x64\vcRuntimeMinimum_x86\vc_runtimeMinimum_x86.msi -passive ADDEPLOY=1
msiexec -i %scriptpath%\files\MSI\vcredist_x86-2012_x86_x64\vcRuntimeAdditional_x86\vc_runtimeAdditional_x86.msi -passive ADDEPLOY=1
 
 
[winbatch_vcredist_x64]
msiexec -i %scriptpath%\files\MSI\vcreddist_x64_2008_x64\vc_red.msi -passive
msiexec -i %scriptpath%\files\MSI\vcredist_x86-2008_x86_x64\vc_red.msi -passive
 
msiexec -i %scriptpath%\files\MSI\vcredist_x64-2012_x64\vcRuntimeMinimum_amd64\vc_runtimeMinimum_x64.msi -passive ADDEPLOY=1
msiexec -i %scriptpath%\files\MSI\vcredist_x64-2012_x64\vcRuntimeAdditional_amd64\vc_runtimeAdditional_x64.msi -passive ADDEPLOY=1
 
msiexec -i %scriptpath%\files\MSI\vcredist_x86-2012_x86_x64\vcRuntimeMinimum_x86\vc_runtimeMinimum_x86.msi -passive ADDEPLOY=1
msiexec -i %scriptpath%\files\MSI\vcredist_x86-2012_x86_x64\vcRuntimeAdditional_x86\vc_runtimeAdditional_x86.msi -passive ADDEPLOY=1

config.opsiinc

; ----------------------------------------------------------------
; -  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$         = "Origin9.1"
Set $MinimumSpace$      = "500 MB"
set $setupcommand32$    =  "msiexec /i %ScriptPath%\files\MSI\Origin91_x86\setup.msi  /passive ALLUSERS=2 REBOOT=ReallySuppress PIDKEY=SF8T5-3089-7902407"
set $setupcommand64$    =  "msiexec /i %ScriptPath%\files\MSI\Origin91_x64\setup.msi  /passive ALLUSERS=2 REBOOT=ReallySuppress PIDKEY=SF8T5-3089-7902407"
 
Set $INST_SystemType$   = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
Set $LogDir$            = "%SystemDrive%\tmp"
 
 
 
; ----------------------------------------------------------------
; -  Currently installing MSIs
; ----------------------------------------------------------------
 
set $installed_MSI_32$          = createStringList (' ')
 
set $installed_MSI_64$          = createStringList ('{3C28BFD4-90C7-3138-87EF-418DC16E9598}','{5AF4E09F-5C9B-3AAF-B731-544D3DC821DD}','{5FCE6D76-F5DC-37AB-B2B8-22AB8CEDB1D4}')
 
set $installed_MSI_Both$        = createStringList ('{912C907D-E18C-4560-859B-2B1EA969BAB5}','{E824E81C-80A4-3DFF-B5F9-4842A9FF5F7F}','{6C772996-BFF3-3C8C-860B-B3D48FF05D65}','{9BE518E6-ECC6-35A9-88E4-87755C07200F}')
 
 
 
; ----------------------------------------------------------------
; -  MSIID MAPP / Aktuelle MSIIDs
; ----------------------------------------------------------------
;32
; -
 
;64
;Origin91_x64			- {912C907D-E18C-4560-859B-2B1EA969BAB5}
;vcredist_x64-2012 Additional 	- {3C28BFD4-90C7-3138-87EF-418DC16E9598}
;vcredist_x64-2012 Minimum	- {5AF4E09F-5C9B-3AAF-B731-544D3DC821DD}
;vcredist_x64_2008		- {5FCE6D76-F5DC-37AB-B2B8-22AB8CEDB1D4}
 
;Both   
;Origin91_x86 			- {912C907D-E18C-4560-859B-2B1EA969BAB5}
;vcredist_x86-2012 Additional	- {6C772996-BFF3-3C8C-860B-B3D48FF05D65}
;vcredist_x86-2012 Minimum	- {E824E81C-80A4-3DFF-B5F9-4842A9FF5F7F}
;vcredist_x86-2008 		- {9BE518E6-ECC6-35A9-88E4-87755C07200F}
 
 
 
 
; ----------------------------------------------------------------
; -  MSIs from outdated packages
; ----------------------------------------------------------------
set $MSI_32$    = createStringList ('{9DE4251D-D6A0-445B-A006-42F20D46CB62}')
 
set $MSI_64$    = createStringList (' ')
 
set $MSI_Both$  = createStringList (' ')
 
 
 
; ----------------------------------------------------------------
; -  Additional Configuration
; ----------------------------------------------------------------
set $checktask$         = "false"
set $killtask$          = "false"
set $SearchProcess$     = createStringList ('cmd.exe')

delsub.ins

; ----------------------------------------------------------------
; - 32Bit                            -
; ----------------------------------------------------------------
 
 
 
if ($INST_SystemType$ = "x86 System")
	Message "Uninstalling " + $ProductId$ + " 32 Bit..."
 
 
        if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $ID$ + "] DisplayName") = "")
		comment "MSI id " + $ID$ + " found in registry, starting msiexec to uninstall"
		Winbatch_uninstall_msi
		sub_check_exitcode
        endif
endif
 
 
 
; ----------------------------------------------------------------
; - 64Bit                         -
; ----------------------------------------------------------------
 
 
 
if ($INST_SystemType$ = "64 Bit System")
	Message "Uninstalling " + $ProductId$ + " 64 Bit..."
 
 
        if not (GetRegistryStringValue64("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $ID$ + "] DisplayName") = "")
		comment "MSI id " + $ID$ + " found in registry, starting msiexec to uninstall"
		Winbatch_uninstall_msi
		sub_check_exitcode
        endif
endif
 
 
; ----------------------------------------------------------------
; - Both                         -
; ----------------------------------------------------------------
 
	Message "Uninstalling " + $ProductId$ + " Both..."
 
 
if not (GetRegistryStringValue("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $ID$ + "] DisplayName") = "")
		comment "MSI id " + $ID$ + " found in registry, starting msiexec to uninstall"
		Winbatch_uninstall_msi
		sub_check_exitcode
endif
 
 
 
 
[Winbatch_uninstall_msi]
msiexec /x $ID$ /qb! REBOOT=ReallySuppress
 
 
 
 
[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

setup.ins

[Actions]
 
 
SetLogLevel=6
 
requiredWinstVersion >= "4.10.8.6"
 
; Include configuration
include_insert "%scriptpath%\vars.opsiinc"
include_insert "%scriptpath%\config.opsiinc"
 
 
; ----------------------------------------------------------------
; - PreCheck & Settings
; ----------------------------------------------------------------
 
 
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$
endif	
 
 
if ( $checktask$  = "true")
        for %s% in $SearchProcess$ do sub_checktask
else
        comment "Checktask is off"
endif
 
 
 
 
; ----------------------------------------------------------------
; - Remove Aktionen
; ----------------------------------------------------------------
 
comment "Remove MSI from System"
 
if ($INST_SystemType$ = "x86 System")
    for %s% in $MSI_32$ do sub_open_dellsub
 
else
 
    for %s% in $MSI_64$ do sub_open_dellsub
 
endif
 
    for %s% in $MSI_Both$ do sub_open_dellsub
 
 
 
 
 
; ----------------------------------------------------------------
; - Setup Aktionen
; ----------------------------------------------------------------
 
if ($INST_SystemType$ = "x86 System") 
		Message "Installing " + $ProductId$ + " 32 Bit..."
		comment "Start setup program"
		Winbatch_install_32
		Sub_check_exitcode
endif
 
 
if ($INST_SystemType$ = "64 Bit System") 
		Message "Installing " + $ProductId$ + " 64 Bit..."
		comment "Start setup program"
		Winbatch_install_64
		Sub_check_exitcode
endif
 
include_append "%scriptpath%/additional/additional_sections.opsiinc"	
include_insert "%scriptpath%/additional/additional_actions.opsiinc"
 
 
 
 
 
; ----------------------------------------------------------------
; - Sektionen
; ----------------------------------------------------------------
 
 
 
[Winbatch_install_32]
 
$setupcommand32$
 
 
 
[Winbatch_install_64]
 
$setupcommand64$
 
 
[sub_open_dellsub]
set $ID$ = "%s%"
Sub "%ScriptPath%\delsub.ins"
 
 
[sub_checktask]
set $currentchecktask$ = "%s%"
set $tasklist$ = getOutStreamFromSection('DosInAnIcon_checkprocess')
set $processVAR$ = unquote(takeString(1,$tasklist$), '"')
 
if ($processVAR$ = $currentchecktask$)
Message = "Prozess gefunden"
	if ($killtask$ = "true")
		killtask $currentchecktask$
	else
		message "killtask is set to false"
 
	endif
	if ($fatalerror$ = "true")
		pause  $userfail$
		isFatalError
 
	else
		message "fatalError is set to false"
	endif
 
message  "Prozess nicht gefunden - do nothing"
endif
 
 
[DosInAnIcon_checkprocess]
@echo off
TASKLIST /FI "IMAGENAME eq $subvar$" /fo CSV
 
 
[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

uninstall.ins

[Actions]
 
SetLogLevel=6
 
requiredWinstVersion >= "4.10.8.6"
 
include_insert "%scriptpath%\vars.opsiinc"
include_insert "%scriptpath%\config.opsiinc"
 
comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
 
 
 
comment "Remove MSI from System"
 
if ($INST_SystemType$ = "x86 System")
    for %s% in $installed_MSI_32$ do sub_open_dellsub
 
else
 
    for %s% in $installed_MSI_64$ do sub_open_dellsub
 
endif
 
for %s% in $installed_MSI_Both$ do sub_open_dellsub
 
 
 
[sub_open_dellsub]
set $ID$ = "%s%"
Sub "%ScriptPath%\delsub.ins"

vars.ins

;this is my vbs-script...
echo click on "edit this page" to see the complete source.
userspace/origin.1386922000.txt.gz · Last modified: 2021/08/23 08:37 (external edit)