This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| 
                    userspace:fsecureclientmanagement [2013/02/13 11:56] bobzbobz created  | 
                
                    userspace:fsecureclientmanagement [2021/08/23 08:37] (current) | 
            ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== F-Secure Client Via Management ====== | + | ====== F-Secure Client  | 
| + | //Scripts and guide by Soren Birk// | ||
| + | This is F-Secure-client which is used together with a server management-console. | ||
| + | |||
| + | **Tested With:** | ||
| + | * OPSI 4.0.2.4 | ||
| + | * Winst 4.11.3.3 | ||
| + | * Windows 7, 32 and 64-Bit | ||
| + | |||
| + | Start by setting up the server-side and exporting your preferences to the client install-file (rename and move to CLIENT_DATA). | ||
| + | |||
| + | I have commented the check exitcode sub-sections, | ||
| + | |||
| + | The PC will reboot when the package has been uninstalled/ | ||
| + | |||
| + | **Tree:** | ||
| + | < | ||
| + | CLIENT_DATA | ||
| + | ├ fsecureclient.msi | ||
| + | ├ fsecurelogo.png | ||
| + | ├ setup32.ins | ||
| + | ├ uninstall32.ins | ||
| + | └ delsub32.ins | ||
| + | </ | ||
| + | |||
| + | ==== Setup32.ins ==== | ||
| + | <code winst> | ||
| + | ; Author Soren Birk | ||
| + | |||
| + | [Actions] | ||
| + | requiredWinstVersion >= " | ||
| + | |||
| + | DefVar $MsiId$ | ||
| + | DefVar $LogDir$ | ||
| + | DefVar $ProductId$   | ||
| + | DefVar $MinimumSpace$ | ||
| + | DefVar $InstallDir$ | ||
| + | DefVar $ExitCode$ | ||
| + | DefVar $LicenseRequired$ | ||
| + | DefVar $LicenseKey$ | ||
| + | DefVar $LicensePool$ | ||
| + | DefVar $RebootFlag$ | ||
| + | DefVar $WinstRegKey$ | ||
| + | |||
| + | Set $LogDir$ = " | ||
| + | |||
| + | Set $WinstRegKey$ = " | ||
| + | Set $RebootFlag$ = GetRegistryStringValue(" | ||
| + | |||
| + | ; ---------------------------------------------------------------- | ||
| + | ; - Please edit the following values  | ||
| + | ; ---------------------------------------------------------------- | ||
| + | Set $ProductId$  | ||
| + | Set $MinimumSpace$  | ||
| + | Set $InstallDir$ = " | ||
| + | Set $LicenseRequired$ = " | ||
| + | Set $LicensePool$  | ||
| + | ; ---------------------------------------------------------------- | ||
| + | |||
| + | if not(HasMinimumSpace (" | ||
| + | 	LogError "Not enough space on %SystemDrive%, | ||
| + | isFatalError "Not enough free space" | ||
| + | else | ||
| + | 	comment " | ||
| + | 	ShowBitmap " | ||
| + | |||
| + | 	if not (($RebootFlag$ = " | ||
| + | |||
| + | 		comment " | ||
| + | 		Set $RebootFlag$ = " | ||
| + | Registry_SaveRebootFlag /32Bit | ||
| + | |||
| + | 		if FileExists(" | ||
| + | 			comment "Start uninstall sub section" | ||
| + | 			Sub " | ||
| + | endif | ||
| + | endif | ||
| + | |||
| + | 	if ($RebootFlag$ = " | ||
| + | 		Message " | ||
| + | |||
| + | 		if $LicenseRequired$ = " | ||
| + | 			comment " | ||
| + | Sub_get_licensekey | ||
| + | endif | ||
| + | |||
| + | 		comment "Start setup-program" | ||
| + | 		ChangeDirectory " | ||
| + | 		Winbatch_install / | ||
| + | ; Sub_check_exitcode | ||
| + | |||
| + | 		comment " | ||
| + | 		Set $RebootFlag$ = " | ||
| + | Registry_SaveRebootFlag /32Bit | ||
| + | |||
| + | 		Message " | ||
| + | 		ExitWindows / | ||
| + | |||
| + | else | ||
| + | 		comment " | ||
| + | 		Set $RebootFlag$ = " | ||
| + | Registry_SaveRebootFlag /32Bit | ||
| + | endif | ||
| + | |||
| + | |||
| + | endif | ||
| + | |||
| + | [Winbatch_install] | ||
| + | msiexec /i " | ||
| + | |||
| + | |||
| + | [Registry_SaveRebootFlag] | ||
| + | openKey [$WinstRegKey$] | ||
| + | set " | ||
| + | |||
| + | |||
| + | [Sub_get_licensekey] | ||
| + | if opsiLicenseManagementEnabled | ||
| + | 	comment " | ||
| + | |||
| + | 	comment " | ||
| + | Set $LicenseKey$ = demandLicenseKey ($LicensePool$) | ||
| + | ; If there is an assignment of exactly one licensepool to the product the following call is possible: | ||
| + | 	; Set $LicenseKey$ = demandLicenseKey ("", | ||
| + | ; | ||
| + | ; If there is an assignment of a license pool to a windows software id, it is possible to use: | ||
| + | ; DefVar $WindowsSoftwareId$ | ||
| + | 	; $WindowsSoftwareId$ = " | ||
| + | 	; Set $LicenseKey$ = demandLicenseKey ("", | ||
| + | |||
| + | DefVar $ServiceErrorClass$ | ||
| + | set $ServiceErrorClass$ = getLastServiceErrorClass | ||
| + | comment "Error class: " + $ServiceErrorClass$ | ||
| + | |||
| + | 	if $ServiceErrorClass$ = " | ||
| + | 		comment " | ||
| + | else | ||
| + | 		if $ServiceErrorClass$ = " | ||
| + | 			LogError " | ||
| + | LogError getLastServiceErrorMessage | ||
| + | isFatalError | ||
| + | 		else  | ||
| + | 			if $ServiceErrorClass$ = " | ||
| + | 				LogError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | endif | ||
| + | endif | ||
| + | else | ||
| + | 	LogError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | |||
| + | |||
| + | [Sub_check_exitcode] | ||
| + | comment "Test for installation success via exit code" | ||
| + | set $ExitCode$ = getLastExitCode | ||
| + | ; informations to exit codes see | ||
| + | ; http:// | ||
| + | ; http:// | ||
| + | if ($ExitCode$ = " | ||
| + | comment "Looks good: setup program gives exitcode zero" | ||
| + | else | ||
| + | comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ | ||
| + | 	if ($ExitCode$ = " | ||
| + | 		comment " | ||
| + | 		comment " | ||
| + | else | ||
| + | 		if ($ExitCode$ = " | ||
| + | comment "looks good: setup program gives exitcode 1641" | ||
| + | 			comment " | ||
| + | else | ||
| + | 			if ($ExitCode$ = " | ||
| + | comment "looks good: setup program gives exitcode 3010" | ||
| + | 				comment " | ||
| + | else | ||
| + | 				logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | endif | ||
| + | endif | ||
| + | endif | ||
| + | </ | ||
| + | |||
| + | ==== Uninstall32.ins ==== | ||
| + | <code winst> | ||
| + | ; Author Soren Birk | ||
| + | |||
| + | [Actions] | ||
| + | requiredWinstVersion >= " | ||
| + | |||
| + | DefVar $MsiId$ | ||
| + | DefVar $LogDir$ | ||
| + | DefVar $ExitCode$ | ||
| + | DefVar $ProductId$ | ||
| + | DefVar $InstallDir$ | ||
| + | DefVar $LicenseRequired$ | ||
| + | DefVar $LicensePool$ | ||
| + | DefVar $RebootFlag$ | ||
| + | DefVar $WinstRegKey$ | ||
| + | |||
| + | Set $LogDir$ = " | ||
| + | |||
| + | Set $WinstRegKey$ = " | ||
| + | Set $RebootFlag$ = GetRegistryStringValue(" | ||
| + | |||
| + | ; ---------------------------------------------------------------- | ||
| + | ; - Please edit the following values  | ||
| + | ; ---------------------------------------------------------------- | ||
| + | Set $ProductId$  | ||
| + | Set $InstallDir$  | ||
| + | Set $LicenseRequired$ = " | ||
| + | Set $LicensePool$  | ||
| + | ; ---------------------------------------------------------------- | ||
| + | |||
| + | comment " | ||
| + | ShowBitmap " | ||
| + | |||
| + | Message " | ||
| + | if not ($RebootFlag$ = " | ||
| + | |||
| + | 	comment " | ||
| + | 	Set $RebootFlag$ = " | ||
| + | Registry_SaveRebootFlag /32Bit | ||
| + | |||
| + | 	if FileExists(" | ||
| + | 		comment "Start uninstall sub section" | ||
| + | 		Sub " | ||
| + | endif | ||
| + | |||
| + | 	if $LicenseRequired$ = " | ||
| + | 		comment " | ||
| + | Sub_free_license | ||
| + | endif | ||
| + | else | ||
| + | 	comment " | ||
| + | 	Set $RebootFlag$ = " | ||
| + | Registry_SaveRebootFlag /32Bit | ||
| + | endif | ||
| + | |||
| + | |||
| + | [Registry_SaveRebootFlag] | ||
| + | openKey [$WinstRegKey$] | ||
| + | set " | ||
| + | |||
| + | |||
| + | [Sub_free_license] | ||
| + | comment " | ||
| + | |||
| + | comment " | ||
| + | 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("", | ||
| + | ; | ||
| + | ; 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("", | ||
| + | </ | ||
| + | |||
| + | ==== Delsub32.ins ==== | ||
| + | <code winst> | ||
| + | ; Author Soren Birk | ||
| + | |||
| + | Set $MsiId$ = ' | ||
| + | |||
| + | Message " | ||
| + | |||
| + | if not (GetRegistryStringValue32(" | ||
| + | 	comment "MSI id " + $MsiId$ + " found in registry, starting msiexec to uninstall" | ||
| + | Winbatch_uninstall_msi | ||
| + | ; sub_check_exitcode | ||
| + | |||
| + | 	comment " | ||
| + | Files_uninstall | ||
| + | |||
| + | 	Message " | ||
| + | 	ExitWindows / | ||
| + | endif | ||
| + | |||
| + | |||
| + | [Winbatch_uninstall_msi] | ||
| + | msiexec /x $MsiId$ /qb! REBOOT=ReallySuppress | ||
| + | |||
| + | |||
| + | [Files_uninstall] | ||
| + | del -sf " | ||
| + | |||
| + | |||
| + | [Sub_check_exitcode] | ||
| + | comment "Test for installation success via exit code" | ||
| + | set $ExitCode$ = getLastExitCode | ||
| + | ; informations to exit codes see | ||
| + | ; http:// | ||
| + | ; http:// | ||
| + | if ($ExitCode$ = " | ||
| + | comment "Looks good: setup program gives exitcode zero" | ||
| + | else | ||
| + | comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ | ||
| + | 	if ($ExitCode$ = " | ||
| + | 		comment " | ||
| + | 		comment " | ||
| + | else | ||
| + | 		if ($ExitCode$ = " | ||
| + | comment "looks good: setup program gives exitcode 1641" | ||
| + | 			comment " | ||
| + | else | ||
| + | 			if ($ExitCode$ = " | ||
| + | comment "looks good: setup program gives exitcode 3010" | ||
| + | 				comment " | ||
| + | else | ||
| + | 				logError " | ||
| + | isFatalError | ||
| + | endif | ||
| + | endif | ||
| + | endif | ||
| + | endif | ||
| + | </ | ||