Tested with opsi 4.2
Windows 10 x64 Ent SAC 19.09, 20H2 & 21H2
Download zyGrib from here: https://www.zygrib.org/
type: localboot
id: zyGrib
description: GRIB File Viewer - Weather data visualization
Beschreibung: GRIB File Viewer -Grafische Darstellung von Wetterdaten
Hinweis: zyGrib liegt nicht als klassischer Installer vor. Es handelt sich um ein gepacktes Programm welches an die gewünschte Stelle, sprich das Installationsverzeichnis, entpackt wird. Ich habe zum entpacken das Programm 7-Zip verwendet, welches entsprechend Vorraussetzung ist damit dieses Script funktioniert. Anschließend wird einfach ein Link im Startmenü zur ausführbaren Datei erstellt über welchen das Programm gestartet anschließend werden kann. Zum Ausführen des Programms zyGrib benötigt die entsprechende Benutzergruppe “ändern” Recht. Daher sollte an dieser Stelle im Script “setup.opsiscript”:
[DosInAnIcon_rights] icacls "$InstallDir$" /T /grant Benutzer:(OI)(CI)(M)
der Benutzer an die gewünschte Benutzergruppe, welche das Programm ausführen können soll, angepaßt werden.
Notice: zyGrib is not available as a classic installer. It is a packed program which only needs to be unpacked to the desired location, in this case the installation directory. I used the 7-Zip program to unpack, which is a prerequisite for this script to work. A link is then simply created in the start menu to the executable file, which starts the program. To run the zyGrib program, the corresponding user group needs “change” rights. Therefore, at this point in the script “setup.opsiscript”:
[DosInAnIcon_rights] icacls "$InstallDir$" /T /grant Benutzer:(OI)(CI)(M)
the Benutzer needs to be adapted to the desired user group that should be able to run the program.
tree: |-- setup.opsiscript |-- uninstall.opsiscript |-- zyGrib_win_withmaps2-8.0.1.zip |-- zyGrib_32.png
; 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/credits/ [Initial] setLogLevel=6 ; Log Errors in Logfile but don't abort: ExitOnError=false ; Show syntax errors in the script: ScriptErrorMessages=on ; Dont trace step by step through the script: TraceMode=off ; let started programs run in front of the winst window StayOnTop=false [Actions] requiredWinstVersion >= "4.11.3.11" ; ---------------------------------------------------------------- ; - define Variables - ; ---------------------------------------------------------------- DefVar $ProductId$ DefVar $Version$ DefVar $LogDir$ DefVar $MinimumSpace$ DefVar $INST_architecture$ DefVar $INST_SystemType$ DefVar $INST_MsVersion$ DefVar $7zPrg$ DefVar $7zCall$ DefVar $OSVersion$ DefVar $InstallDir$ DefVar $Product_Pic$ DefVar $ExitCode$ DefVar $TestResult$ DefVar $zyGribZip$ DefVar $LinkFolder_Prog$ DefVar $Link_Prog_Name$ DefVar $Link_WorkingDir$ DefVar $Link_TargetProg$ ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Setting fixed Variables - ; ---------------------------------------------------------------- Set $INST_SystemType$ = GetSystemType Set $INST_MsVersion$ = GetMsVersionInfo Set $OSVersion$ = "7.0" ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Please edit the following values - ; ---------------------------------------------------------------- Set $ProductId$ = "zyGrib" Set $Version$ = "8.0.1" Set $MinimumSpace$ = "500 MB" ; the path were we find the product after the installation Set $InstallDir$ = "c:\zyGrib" Set $zyGribZip$ = "%ScriptPath%\zyGrib_win_withmaps2-8.0.1.zip" Set $7zPrg$ = "%ProgramFilesSysnativeDir%\7-Zip\7z.exe" Set $7zCall$ = "x -y "+$zyGribZip$+" -o"+$InstallDir$ Set $Product_Pic$ = "zyGrib_32.png" ; for Start Menue entry Set $LinkFolder_Prog$ = "zyGrib-Win" Set $Link_Prog_Name$ = "zyGrib" Set $Link_WorkingDir$ = $InstallDir$+"\zyGrib_win" Set $Link_TargetProg$ = $Link_WorkingDir$+"\zyGrib.exe" ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Check System Requierements - ; ---------------------------------------------------------------- if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$)) LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$ isFatalError "Drive Space" ; Stop process and set installation status to failed endif if CompareDotSeparatedNumbers($INST_MsVersion$,"<",$OSVersion$) LogError "Wrong OS Version. At least Windows 7 is required for installation!" isFatalError "OS Version" ; Stop process and set installation status to failed endif if not(FileExists($7zPrg$)) LogError "7-Zip not found in default Installation destination " + $7zPrg$ + ". Check 7-Zip installation." isFatalError "7-Zip missing" endif ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Installation - ; ---------------------------------------------------------------- comment "Show product picture" ShowBitmap "%ScriptPath%\" + $Product_Pic$ $ProductId$ if ($INST_SystemType$ = "x86 System") Message "Installing " + $ProductId$ + $Version$ + " on 32 Bit OS." WinBatch_Install Set $ExitCode$ = getLastExitCode if ($ExitCode$ = "0") comment "Unpack of Zip File successful." else if ($ExitCode$ = "7") LogError "7-Zip Command Line Error. Exit Code" + $ExitCode$ + " returned." isFatalError "7-Zip CLI Error" else LogError "Unpack of Zip File erroneous. Exitcode " + $ExitCode$ + " returned." isFatalError "Unpack erroneous" endif endif DosInAnIcon_rights LinkFolder_install endif if ($INST_SystemType$ = "64 Bit System") Message "Installing " + $ProductId$ + $Version$ + " on 64 Bit OS." WinBatch_Install Set $ExitCode$ = getLastExitCode if ($ExitCode$ = "0") comment "Unpack of Zip File successful." else if ($ExitCode$ = "7") LogError "7-Zip Command Line Error. Exit Code" + $ExitCode$ + " returned." isFatalError "7-Zip CLI Error" else LogError "Unpack of Zip File erroneous. Exitcode " + $ExitCode$ + " returned." isFatalError "Unpack erroneous" endif endif DosInAnIcon_rights LinkFolder_install endif ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Sub's - ; ---------------------------------------------------------------- [WinBatch_Install] "$7zPrg$" $7zCall$ [DosInAnIcon_rights] icacls "$InstallDir$" /T /grant Benutzer:(OI)(CI)(M) [LinkFolder_install] set_basefolder common_programs ; Link for User Information set_subfolder $LinkFolder_Prog$ set_link name: $Link_Prog_Name$ target: $Link_TargetProg$ parameters: working_dir: $Link_WorkingDir$ icon_file: icon_index: end_link
[Initial] setLogLevel=6 ; Log Errors in Logfile but don't abort: ExitOnError=false ; Show syntax errors in the script: ScriptErrorMessages=on ; Dont trace step by step through the script: TraceMode=off ; let started programs run in front of the winst window StayOnTop=false [Actions] requiredWinstVersion >= "4.11.3.11" ; ---------------------------------------------------------------- ; - define Variables - ; ---------------------------------------------------------------- DefVar $ProductId$ DefVar $Version$ DefVar $LogDir$ DefVar $MinimumSpace$ DefVar $INST_architecture$ DefVar $INST_SystemType$ DefVar $INST_MsVersion$ DefVar $OSVersion$ DefVar $InstallDir$ DefVar $Product_Pic$ DefVar $LinkFolder_Prog$ ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Setting fixed Variables - ; ---------------------------------------------------------------- Set $INST_SystemType$ = GetSystemType Set $INST_MsVersion$ = GetMsVersionInfo Set $OSVersion$ = "7.0" ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Please edit the following values - ; ---------------------------------------------------------------- Set $ProductId$ = "zyGrib" Set $Version$ = "8.0.1" Set $MinimumSpace$ = "500 MB" ; the path were we find the product after the installation Set $InstallDir$ = '"c:\zyGrib"' Set $Product_Pic$ = "zyGrib.png" ; for Start Menue entry Set $LinkFolder_Prog$ = "zyGrib-Win" ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Check System Requierements - ; ---------------------------------------------------------------- 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 endif if CompareDotSeparatedNumbers($INST_MsVersion$,"<",$OSVersion$) LogError "Wrong OS Version. At least Windows 7 is required for deinstallation!" isFatalError ; Stop process and set installation status to failed endif ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Installation - ; ---------------------------------------------------------------- comment "Show product picture" ShowBitmap "%ScriptPath%\" + $Product_Pic$ $ProductId$ if ($INST_SystemType$ = "x86 System") Message "Deinstalling " + $ProductId$ + $Version$ + " on 32 Bit OS." Files_delete LinkFolder_remove endif if ($INST_SystemType$ = "64 Bit System") Message "Deinstalling " + $ProductId$ + $Version$ + " on 64 Bit OS." Files_delete LinkFolder_remove endif ; ---------------------------------------------------------------- ; ---------------------------------------------------------------- ; - Sub's - ; ---------------------------------------------------------------- [Files_delete] del -sf $InstallDir$ [LinkFolder_remove] set_basefolder common_startmenu delete_subfolder $LinkFolder_Prog$
[Package] version: 1 depends: [Product] type: localboot id: zyGrib name: zyGrib mit Kartendaten description: zyGrib - Programm zum anzeigen von Wetterdaten - Win 32 & 64 Bit advice: 7-Zip muss vor Installation installiert sein version: 8.0.1 priority: 0 licenseRequired: False productClasses: setupScript: setup.opsiscript uninstallScript: uninstall.opsiscript updateScript: alwaysScript: onceScript: customScript: userLoginScript: [ProductDependency] action: setup requiredProduct: 7-Zip requiredStatus: installed requirementType: before [Changelog] zyGrib (1.0-1) stable; urgency=low Project created with opsi Package Builder 8.4.4