Table of Contents

WinSCP 4.3.5

Script by Der-Matze
Comments and improvements welcome

Tested with opsi 4.0.1
Tested with opsi-winst 4.10.x - 4.11.1.6
Tested with Windows XP Professional and Windows 7 Enterprise x64

Installation / Uninstallation Script for WinSCP

This script uses the check_innosetup-exitcode script: https://forum.opsi.org/wiki/userspace:check_innosetup-exitcode

The installation file can be downloaded from: http://winscp.net/eng/download.php

Install.ins

[Initial]
 
;Standard Text, der während der Installation angezeigt wird / Standardtext shown during installation
Message = Bitte warten, das Produkt wird installiert
;Loglevel einstellen / set loglevel
setLogLevel = 6
;Bei Fehlern abbrechen / Exit on errors
ExitOnError = false
;Syntax Fehler werden in einem separaten Fenster angezeigt / Syntax-errors will be shown in a separate window
ScriptErrorMessages = on
;Single-Step Mode nicht verwenden / Do not use the single-step-mode
TraceMode = off
;Im Batchmode das Winst-Fenster nicht im Vordergrund anzeigen / Don't show the winst-window in foreground during batchmode
StayOnTop = false
 
 
 
[Actions]
;Variable für die Ermittlung des Betriebssystems / What kind of OS do we have?
DefVar $OS$
Set $OS$ = GetOS
;Variable für die Ermittlung der Betriebssystem Unterversion / What kind of subversion?
DefVar $NTVersion$
Set $NTVersion$ = GetNTVersion
;Die Variable zur Auswertung des ExitCodes
DefVar $ExitCode$
;Name des Produkts (max. 12 Zeichen) / Name of product (max 12 characters)
DefVar $ProductName$
Set $ProductName$ = "WinSCP"
;Vollständiger Produktname incl. Versionsnummer / complete productname incl. version
DefVar $ProductNameFull1$
Set $ProductNameFull1$ = "WinSCP 4.3.5"
;Dateiname des Produktbildes mit Erweiterung / Dilename of productpicture incl. extension
DefVar $ProductPicture$
Set $ProductPicture$ = "WinSCP.png"
 
;Anzeigen der Installationsbenachrichtigung incl. des vollen Produktnamens / Show installation-message incl. productname
Message "Installiere "+$ProductNameFull1$
 
;Prüfen der Winst Version / Check the winst-version
requiredWinstVersion >= "4.11"
 
;$ProductPicture$ und $ProductName$ anzeigen / Show $ProductPicture$ and $ProductName$
ShowBitmap /3 "%scriptpath%\" + $ProductPicture$ $ProductName$
 
;Freien Speicherplatz ermitteln / Check free space on disk
if not (HasMinimumSpace ("%SYSTEMDRIVE%", "500 MB"))
        LogError "Nicht genügend Platz auf %SYSTEMDRIVE%"
        isFatalError
endif
 
;OS-Version ermitteln / Get the OS-Version
if ( $NTVersion$ = "Win2K" OR $NTVersion$ = "WinXP" OR $NTVersion$ = "Win NT 5.2" OR $NTVersion$ = "Windows Vista" )
	Winbatch_Install
	sub "%ScriptDrive%\install\check_exitcode\check_innosetup-exitcode.ins"
	Files_Copy
	Linkfolder_Custom
else
	LogError "Kein kompatibles Betriebssystem installiert"
	isFatalError
endif
 
 
[Winbatch_Install]
"%SCRIPTPATH%\winscp435setup.exe" /VERYSILENT /NOCANDY
 
 
[Linkfolder_Custom]
;Startmenü anpassen
Set_basefolder common_programs
delete_subfolder "$ProductName$"
Set_link
        name: $ProductName$
        target: %ProgramFiles32Dir%\WinSCP\WinSCP.exe
	parameters:
	working_dir:
	icon_file:
	icon_index:
end_link
Set_link
	name: "Pageant"
	target: %ProgramFiles32Dir%\WinSCP\PuTTY\pageant.exe
	parameters:
	working_dir:
	icon_file:
	icon_index:
end_link
Set_link
	name: "PuTTYGen"
	target: %ProgramFiles32Dir%\WinSCP\PuTTY\puttygen.exe
	parameters:
	working_dir:
	icon_file:
	icon_index:
end_link
 
 
[Files_Copy]
copy "%SCRIPTPATH%\WinSCP.ini" "%ProgramFiles32Dir%\WinSCP\"

Uninstall.ins

[Initial]
 
;Standard Text, der während der Deinstallation angezeigt wird
Message = Bitte warten, das Produkt wird deinstalliert
;Loglevel einstellen
setLogLevel = 6
;Bei Fehlern abbrechen
ExitOnError = false
;Syntax Fehler werden in einem separaten Fenster angezeigt
ScriptErrorMessages = on
;Single-Step Mode nicht verwenden
TraceMode = off
;Im Batchmode das Winst-Fenster nicht im Vordergrund anzeigen
StayOnTop = false
 
[Actions]
;Name des Produkts (max. 12 Zeichen)
DefVar $ProductName$
Set $ProductName$ = "WinSCP"
;Vollständiger Produktname incl. Versionsnummer
DefVar $ProductNameFull1$
set $ProductNameFull1$ = "WinSCP 4.3.5"
;Dateiname des Produktbildes mit Erweiterung
DefVar $ProductPicture$
Set $ProductPicture$ = "WinSCP.png"
;Die Variable zur Auswertung des ExitCodes
DefVar $ExitCode$
;Anzeigen der Deinstallationsbenachrichtigung incl. des vollen Produktnamens
Message "Deinstalliere "+$ProductNameFull1$
;$ProductPicture$ und $ProductName$ anzeigen
ShowBitmap /3 "%scriptpath%\" + $ProductPicture$ $ProductName$
 
Winbatch_Uninstall
sub "%ScriptDrive%\install\check_exitcode\check_innosetup-exitcode.ins"
Linkfolder_Custom
 
[Winbatch_Uninstall]
"%ProgramFiles32Dir%\WinSCP\unins000.exe" /VERYSILENT /NORESTART
 
[Linkfolder_Custom]
;Startmenü Verknüpfung löschen
Set_basefolder common_programs
Set_subfolder ""
delete_element "$ProductName$"
delete_element "Pageant"
delete_element "PuTTYGen"