diff --git a/CLIENT_DATA/delsub32.ins b/CLIENT_DATA/delsub32.ins index 1fb4baa..426c8e8 100644 --- a/CLIENT_DATA/delsub32.ins +++ b/CLIENT_DATA/delsub32.ins @@ -2,111 +2,21 @@ ; This sourcecode is owned by uib gmbh ; and published under the Terms of the General Public License. ; credits: http://www.opsi.org/credits/ +Set $MsiId$ = '{2FF43F5D-5729-4E02-A548-310E30A5F29B}' +Message "Uninstalling " + $ProductId$ + " ..." -Set $MsiId32$ = '{E7C06D29-B16A-4D88-A917-55422FAB4E9D}' -Set $UninstallProgram32$ = $InstallDir32$ + "\uninstall.exe" - -Set $MsiId64$ = '{8D7DDFA2-3A50-49A4-99C5-6D8BE66FE0B9}' -Set $UninstallProgram64$ = $InstallDir64$ + "\uninstall.exe" - -if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only") - Message "Uninstalling " + $ProductId$ + " 32 Bit..." - - if FileExists($UninstallProgram32$) - comment "Uninstall program found, starting uninstall" - Winbatch_uninstall_32 - sub_check_exitcode - endif - - if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiId32$ + "] DisplayName") = "") - comment "MSI id " + $MsiId32$ + " found in registry, starting msiexec to uninstall" - Winbatch_uninstall_msi_32 - sub_check_exitcode - endif - - comment "Delete files" - Files_uninstall_32 /32Bit - comment "Cleanup registry" - Registry_uninstall /32Bit +if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiId$ + "] DisplayName") = "") + dosinanicon_uninstall + Winbatch_uninstall_msi + sub_check_exitcode endif -if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only")) - Message "Uninstalling " + $ProductId$ + " 64 Bit..." +[dosinanicon_uninstall] +regsvr32 /s /u "C:\Programme\Microsoft CAPICOM 2.1.0.2 SDK\Lib\X86\capicom.dll" - if FileExists($UninstallProgram64$) - comment "Uninstall program found, starting uninstall" - Winbatch_uninstall_64 - sub_check_exitcode - endif - - if not (GetRegistryStringValue64("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiId64$ + "] DisplayName") = "") - comment "MSI id " + $MsiId64$ + " found in registry, starting msiexec to uninstall" - Winbatch_uninstall_msi_64 - sub_check_exitcode - endif - - comment "Delete files" - Files_uninstall_64 /64Bit - comment "Cleanup registry" - Registry_uninstall /64Bit -endif - -comment "Delete program shortcuts" -LinkFolder_uninstall - -[Winbatch_uninstall_32] -; Choose one of the following examples as basis for program uninstall -; -; === Nullsoft Scriptable Install System ================================================================ -; "$UninstallProgram32$" /S -; -; === Inno Setup ======================================================================================== -; "$UninstallProgram32$" /silent /norestart /SUPPRESSMSGBOXES - - -[Winbatch_uninstall_msi_32] -msiexec /x $MsiId32$ /qb! REBOOT=ReallySuppress - -[Files_uninstall_32] -; Example for recursively deleting the installation directory (don't forget the trailing backslash): -; -; delete -sf "$InstallDir32$\" - -[Winbatch_uninstall_64] -; Choose one of the following examples as basis for program uninstall -; -; === Nullsoft Scriptable Install System ================================================================ -; "$UninstallProgram64$" /S -; -; === Inno Setup ======================================================================================== -; "$UninstallProgram64$" /silent /norestart /SUPPRESSMSGBOXES - - -[Winbatch_uninstall_msi_64] -msiexec /x $MsiId64$ /qb! REBOOT=ReallySuppress - -[Files_uninstall_64] -; Example for recursively deleting the installation directory (don't forget the trailing backslash): -; -; delete -sf "$InstallDir64$\" - -[Registry_uninstall] -; Example of deleting a registry key: -; -; deletekey [HKEY_LOCAL_MACHINE\Software\$ProductId$] - -[LinkFolder_uninstall] -; Example of deleting a folder from AllUsers startmenu: -; -; set_basefolder common_programs -; delete_subfolder $ProductId$ -; -; Example of deleting a shortcut from AllUsers desktop: -; -; set_basefolder common_desktopdirectory -; set_subfolder "" -; delete_element $ProductId$ +[Winbatch_uninstall_msi] +msiexec /x $MsiId$ /qb! REBOOT=ReallySuppress [Sub_check_exitcode] comment "Test for installation success via exit code" diff --git a/CLIENT_DATA/setup32.ins b/CLIENT_DATA/setup32.ins index 41aca61..0bd9611 100644 --- a/CLIENT_DATA/setup32.ins +++ b/CLIENT_DATA/setup32.ins @@ -6,10 +6,7 @@ [Actions] requiredWinstVersion >= "4.10.8.6" -DefVar $MsiId32$ -DefVar $UninstallProgram32$ -DefVar $MsiId64$ -DefVar $UninstallProgram64$ +DefVar $MsiId$ DefVar $LogDir$ DefVar $ProductId$ DefVar $MinimumSpace$ @@ -44,11 +41,9 @@ Set $LogDir$ = "%SystemDrive%\tmp" ;$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$ = "CAPICOM" +Set $ProductId$ = "capicom" Set $MinimumSpace$ = "1 MB" ; the path were we find the product after the installation -Set $InstallDir32$ = "%ProgramFiles32Dir%\" -Set $InstallDir64$ = "%ProgramFiles64Dir%\" Set $LicenseRequired$ = "false" Set $LicensePool$ = "p_" + $ProductId$ ; ---------------------------------------------------------------- @@ -61,9 +56,9 @@ else comment "Show product picture" ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ - if FileExists("%ScriptPath%\delsub3264.ins") + if FileExists("%ScriptPath%\delsub32.ins") comment "Start uninstall sub section" - Sub "%ScriptPath%\delsub3264.ins" + Sub "%ScriptPath%\delsub32.ins" endif if $LicenseRequired$ = "true" @@ -76,25 +71,43 @@ else Message "Installing " + $ProductId$ + " 32 Bit..." comment "Start setup program" Winbatch_install - dosinanicon_install - Files_sky Sub_check_exitcode - comment "Copy files" - Files_install_32 /32Bit - comment "Patch Registry" - Registry_install /32Bit - comment "Create shortcuts" - LinkFolder_install + dosinanicon_install endif [Winbatch_install] ; === MSI package ======================================================================================= -msiexec /i "%ScriptPath%\custom\capicom_dc_sdk.msi" /qb-! +msiexec /i "$Install32Exe$" /qb-! [dosinanicon_install] regsvr32 /s "C:\Programme\Microsoft CAPICOM 2.1.0.2 SDK\Lib\X86\capicom.dll" -;cscript "C:\Programme\Microsoft CAPICOM 2.1.0.2 SDK\Samples\vbs\CStore.vbs" import c:\Sky\PZ-7462673.pfx t1akXk9Zpi -[Files_sky] -copy "%scriptpath%\custom\PZ-6362570.pfx" "C:\Sky\" +[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 diff --git a/CLIENT_DATA/uninstall32.ins b/CLIENT_DATA/uninstall32.ins index 120b1e7..600b79c 100644 --- a/CLIENT_DATA/uninstall32.ins +++ b/CLIENT_DATA/uninstall32.ins @@ -6,23 +6,10 @@ [Actions] requiredWinstVersion >= "4.10.8.6" -DefVar $MsiId32$ -DefVar $UninstallProgram32$ -DefVar $MsiId64$ -DefVar $UninstallProgram64$ +DefVar $MsiId$ DefVar $LogDir$ DefVar $ExitCode$ DefVar $ProductId$ -DefVar $InstallDir32$ -DefVar $InstallDir64$ -DefVar $LicenseRequired$ -DefVar $LicensePool$ -DefVar $INST_SystemType$ -DefVar $INST_architecture$ - -Set $INST_SystemType$ = GetSystemType -set $INST_architecture$ = GetProductProperty("install_architecture","system specific") - Set $LogDir$ = "%SystemDrive%\tmp" @@ -39,11 +26,7 @@ Set $LogDir$ = "%SystemDrive%\tmp" ; ---------------------------------------------------------------- ; - Please edit the following values - ; ---------------------------------------------------------------- -Set $ProductId$ = "adobeflash" -Set $InstallDir32$ = "%ProgramFiles32Dir%\" -Set $InstallDir64$ = "%ProgramFiles64Dir%\" -Set $LicenseRequired$ = "false" -Set $LicensePool$ = "p_" + $ProductId$ +Set $ProductId$ = "capicom" ; ---------------------------------------------------------------- @@ -52,28 +35,9 @@ ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ Message "Uninstalling " + $ProductId$ + " ..." -if FileExists("%ScriptPath%\delsub3264.ins") +if FileExists("%ScriptPath%\delsub32.ins") comment "Start uninstall sub section" - Sub "%ScriptPath%\delsub3264.ins" + Sub "%ScriptPath%\delsub32.ins" endif -if $LicenseRequired$ = "true" - comment "Licensing required, free license used" - Sub_free_license -endif - -[Sub_free_license] -comment "License management is enabled and will be used" - -comment "Trying to free license used for the product" -DefVar $result$ -Set $result$ = FreeLicense($LicensePool$) -; If there is an assignment of a license pool to the product, it is possible to use -; Set $result$ = FreeLicense("", $ProductId$) -; -; If there is an assignment of a license pool to a windows software id, it is possible to use -; DefVar $WindowsSoftwareId$ -; $WindowsSoftwareId$ = "..." -; set $result$ = FreeLicense("", "", $WindowsSoftwareId$) - diff --git a/OPSI/control b/OPSI/control index 53a059e..5cf2f6d 100644 --- a/OPSI/control +++ b/OPSI/control @@ -6,8 +6,8 @@ incremental: False [Product] type: localboot id: microsoft.capicom -name: CAPICOM -description: CAPICOM: Zur silent Installation Zertifikate +name: capicom +description: digitally sign data, sign code, verify digital signatures advice: ADVICE version: VERSION priority: PRIORITY @@ -21,11 +21,3 @@ onceScript: customScript: userLoginScript: -[ProductProperty] -type: unicode -name: install_architecture -multivalue: False -editable: False -description: which architecture (32/64 bit) has to be installed -values: ["32 only", "64 only", "both", "system specific"] -default: ["system specific"] diff --git a/builder-product.cfg b/builder-product.cfg index c425fcd..c89585c 100644 --- a/builder-product.cfg +++ b/builder-product.cfg @@ -12,8 +12,13 @@ ADVICE="" # Valid value: restricted | public TYPE="restricted" -DL_FILE[0]="adobeflash.png" -DL_SOURCE[0]="http://www.veryicon.com/icon/png/Application/Adobe%20Symbolism%20CS3/Flash%20Player.png" +DL_FILE[0]="capicom.png" +DL_SOURCE[0]="http://www.veryicon.com/icon/128/System/Cristal%20Intense/Windows.png" + +DL_FILE[1]="capicom.msi" +DL_SOURCE[1]="http://download.microsoft.com/download/5/7/9/579f7fa4-217e-438b-b117-e77fd14db181/capicom_dc_sdk.msi" +DL_ARCH[1]="X86" +DL_WINST_NAME[1]=Install32Exe # File array index for the image showing while installing the program ICON_DL_INDEX=0 \ No newline at end of file