Seite 1 von 2

setup.ini .msi finden und installieren.

Verfasst: 25 Mai 2018, 12:16
von polarennnn
Hallo zusammen,

ich habe die Aufgabe bekommen unsere Setup.ini's zu optimieren. Es ergibt sich folgendes Problem. Es gibt etliche Produkte und dazu auch etliche setup Dateien. In den aktuellen setup.inis wird die setup datei mit namen angegeben und ausgeführt. Ändert sich allerdings der Name der setup Datei muss diese per hand editiert werden.

Code: Alles auswählen

Set $Inst_Prg64$ = "produktsetup_1.msi"

zu z.B

Code: Alles auswählen

Set $Inst_Prg64$ = "produktsetup_1_1231212312_bla.msi"


Meine Frage ist nun:
Ist es möglich in der setup.ini zu sagen: such nach einer .msi Datei, wenn vorhanden, installieren?

Befinden sich mehrere .msi Dateien in einem Order, möchte ich das Setup abbrechen.

Ich bedanke mich schon einmal im voraus für Infos.

Re: setup.ini .msi finden und installieren.

Verfasst: 25 Mai 2018, 15:07
von bernd670
Hallo,

du könntest dir eine StringList (z.B. $msiList$) definieren und mit

Code: Alles auswählen

Set $msiList$ = ShellCall('if exist "<pfad>\*.msi" dir /b /tc "<pfad>\*.msi"')
die Liste mit den MSI-Dateien befüllen, wobei <pfad> den Pfad angibt in dem die MSI-Dateien liegen. Mit count($msiList$) kannst du prüfen wieviele MSI-Dateien in der Liste enthalten sind.

Gruß
Bernd

Re: setup.ini .msi finden und installieren.

Verfasst: 28 Jun 2018, 15:09
von polarennnn
Hallo,

entschuldige bitte die sehr späte Antwort. Ich werde es ausprobieren. :)

Grüße

Re: setup.ini .msi finden und installieren.

Verfasst: 28 Jun 2018, 17:14
von SisterOfMercy
Why not rename your msi files?

Example, 7zip:
7z-x64.msi
7z-x86.msi
instead of:
7z1805.msi
7z1805-x64.msi

New version? overwrite the files with the new version, you don't have to change the script now.

Re: setup.ini .msi finden und installieren.

Verfasst: 19 Jul 2018, 12:26
von polarennnn
bernd670 hat geschrieben:Hallo,

du könntest dir eine StringList (z.B. $msiList$) definieren und mit

Code: Alles auswählen

Set $msiList$ = ShellCall('if exist "<pfad>\*.msi" dir /b /tc "<pfad>\*.msi"')
die Liste mit den MSI-Dateien befüllen, wobei <pfad> den Pfad angibt in dem die MSI-Dateien liegen. Mit count($msiList$) kannst du prüfen wieviele MSI-Dateien in der Liste enthalten sind.

Gruß
Bernd



Muss man, den Dateinamen der .MSI angeben?

Code: Alles auswählen

Set $Inst_Prg64$ = "*.msi")
[DosBatch_install_64]
@echo off
attrib -r "$LogDir$"
$Uninst_Prg$ /i %ScriptPath%\$Inst_Prg64$ $Inst_Cmd$


Immer den Error, dass keine Datei gefunden werden kann.

Re: setup.ini .msi finden und installieren.

Verfasst: 19 Jul 2018, 12:29
von polarennnn
SisterOfMercy hat geschrieben:Why not rename your msi files?

Example, 7zip:
7z-x64.msi
7z-x86.msi
instead of:
7z1805.msi
7z1805-x64.msi

New version? overwrite the files with the new version, you don't have to change the script now.


Yes thank you, but it doesnt work like that. Because of the mass of programms. I want the script to install any .msi file in the scriptpatch folder.
My current problem is, that it cant find the installation with this:

Code: Alles auswählen

Set $Inst_Prg64$ = "*.msi")

Re: setup.ini .msi finden und installieren.

Verfasst: 20 Jul 2018, 07:34
von GEI
polarennnn hat geschrieben:In den aktuellen setup.inis wird die setup datei mit namen angegeben und ausgeführt. Ändert sich allerdings der Name der setup Datei muss diese per hand editiert werden.


so machen wir das hier:

Code: Alles auswählen

Set $ProductVersion$    = takeString(1, splitString("%installingProdVersion%","-"))
Set $SetupVersion$      = takestring(0, splitString("%installingProdVersion%","-"))
...
Set $SetupFile$         = "TeamViewer_" + $SetupVersion$ + "_Setup_de.exe"

Damit braucht man beim aktualisieren des Paketes die Versionsnummer nur noch in der OPSI/control zu ändern...
Gegebenenfalls muss man noch mit String-Operationen noch an den konkreten Dateinamen anpassen, wie zum Beispiel:

Code: Alles auswählen

; ----- OPSI/control ----
[Product]
type: localboot
id: adobeconnect-desktopapp
name: AdobeConnect StandAlone
description: Adobe Connect application
advice:
version: 11.9.982.478
...
; ------ CLIENT_DATA/setup.opsiscript ------
...
; Filename:  Connect982_478.msi
Set $SetupFile$         = "Connect" + takeString(2, splitString($SetupVersion$,".")) + "_" + takeString(3, splitString($SetupVersion$,".")) + ".msi"

Re: setup.ini .msi finden und installieren.

Verfasst: 20 Jul 2018, 09:52
von polarennnn
GEI hat geschrieben:
polarennnn hat geschrieben:In den aktuellen setup.inis wird die setup datei mit namen angegeben und ausgeführt. Ändert sich allerdings der Name der setup Datei muss diese per hand editiert werden.


so machen wir das hier:

Code: Alles auswählen

Set $ProductVersion$    = takeString(1, splitString("%installingProdVersion%","-"))
Set $SetupVersion$      = takestring(0, splitString("%installingProdVersion%","-"))
...
Set $SetupFile$         = "TeamViewer_" + $SetupVersion$ + "_Setup_de.exe"

Damit braucht man beim aktualisieren des Paketes die Versionsnummer nur noch in der OPSI/control zu ändern...
Gegebenenfalls muss man noch mit String-Operationen noch an den konkreten Dateinamen anpassen, wie zum Beispiel:

Code: Alles auswählen

; ----- OPSI/control ----
[Product]
type: localboot
id: adobeconnect-desktopapp
name: AdobeConnect StandAlone
description: Adobe Connect application
advice:
version: 11.9.982.478
...
; ------ CLIENT_DATA/setup.opsiscript ------
...
; Filename:  Connect982_478.msi
Set $SetupFile$         = "Connect" + takeString(2, splitString($SetupVersion$,".")) + "_" + takeString(3, splitString($SetupVersion$,".")) + ".msi"



Hallo, danke für die Antwort. Ich habe es ähnlich gelöst.

Code: Alles auswählen

Set $msiList$ = ShellCall('if exist "%ScriptPath%\*.msi" dir /b /tc "%ScriptPath%\*.msi"')
Set $Inst_Prg64$ = takestring(0, $msiList$)
 

So nimmt er die erste MSI datei die erfindet und installiert sie, wenn er mehrere findet breche ich die Installation mit einem Error ab.

Re: setup.ini .msi finden und installieren.

Verfasst: 09 Aug 2018, 23:30
von SisterOfMercy
polarennnn hat geschrieben:Yes thank you, but it doesnt work like that. Because of the mass of programms. I want the script to install any .msi file in the scriptpatch folder.
My current problem is, that it cant find the installation with this:

Code: Alles auswählen

Set $Inst_Prg64$ = "*.msi")


Just rename them setup.msi?

Installing all/any msi files in the scriptpath folder seems like something you never would want or need.

Re: setup.ini .msi finden und installieren.

Verfasst: 10 Aug 2018, 06:01
von GEI
Just rename them setup.msi?
Installing all/any msi files in the scriptpath folder seems like something you never would want or need.


bei uns werden die Hersteller-Websites (ca.230 Produkte) via Cron gecrawlt und neue Versionen der SetupXYZ.exe automatisch in die CLIENT_DATA/ gedownloadet.
(siehe auch https://opsi.wzb.eu/wiki/index.php/Update-Notify/Public)