Seite 1 von 1

isFatalError von winst ignoriert!

Verfasst: 02 Jun 2017, 08:14
von jensito
Ich habe ein Installationspaket gebaut, das bei einigen angebundenen Clients über eine sehr langsame Leitung laufen muss.
Häufig läuft das Kopieren der Installationsdateien auf einen Netzwerkfehler :

Code: Alles auswählen

Source p:\adobereaderdc\files\data1.cab
(24248)   [3] [Jun 01 00:05:49:152] [adobereaderdc]         Error: copy of p:\adobereaderdc\files\data1.cab to C:\temp\adobereaderdc\data1.cab not possible.  Errorcode 59 ("Unerwarteter Netzwerkfehler.<")
 
Das ist an sich schon ziemlich bescheiden. Vielleicht gibt es einen besseren Befehl dafür als diesen?

Code: Alles auswählen

copy -su "%scriptpath%\files\*" "$TEMP$\adobereaderdc\"
Wenn ich jedenfalls von Hand das Kopieren anstoße, dauert es zwar ewig, aber es funktioniert.

Damit aber der alte Adobereader nicht deinstalliert wird, wenn der neue nicht installiert werden kann, ist eine Prüfung eingebaut, ob die größte Installationsdatei vorhanden ist.

Code: Alles auswählen

	
if not(FileExists($CabFile$))
	LogError "Fehler beim Kopieren der Installationsdateien. Abbruch..."
	isFatalError
endif
Diese Prüfung meldet mir

Code: Alles auswählen

(483)     [6] [Jun 02 07:41:52:197] [adobereaderdc]   If
(484)     [9] [Jun 02 07:41:52:197] [adobereaderdc]     EvaluateBoolean: Parsing: not(FileExists($CabFile$)) 
(485)     [9] [Jun 02 07:41:52:197] [adobereaderdc]     EvaluateBoolean: Parsing: FileExists($CabFile$)) 
(486)     [5] [Jun 02 07:41:52:197] [adobereaderdc]       Starting query if file exist ...
(487)     [9] [Jun 02 07:41:52:199] [adobereaderdc]     Executing "C:\Windows\\cmd64.exe" /C "dir C:\temp\adobereaderdc\data1.cab"
(488)     [9] [Jun 02 07:41:52:318] [adobereaderdc]     ExitCode 1
(489)     [9] [Jun 02 07:41:52:318] [adobereaderdc]     output:
(490)     [9] [Jun 02 07:41:52:318] [adobereaderdc]     --------------
(491)     [9] [Jun 02 07:41:52:318] [adobereaderdc]      Volume in Laufwerk C: hat keine Bezeichnung.
(492)     [9] [Jun 02 07:41:52:318] [adobereaderdc]      Volumeseriennummer: C48F-ED74
(493)     [9] [Jun 02 07:41:52:318] [adobereaderdc]     
(494)     [9] [Jun 02 07:41:52:318] [adobereaderdc]      Verzeichnis von C:\temp\adobereaderdc
(495)     [9] [Jun 02 07:41:52:318] [adobereaderdc]     
(496)     [9] [Jun 02 07:41:52:318] [adobereaderdc]     Datei nicht gefunden
(497)     [9] [Jun 02 07:41:52:318] [adobereaderdc]     
(498)     [5] [Jun 02 07:41:52:318] [adobereaderdc]       "C:\temp\adobereaderdc\data1.cab": 
(499)     [5] [Jun 02 07:41:52:318] [adobereaderdc]     FileExists($CabFile$)   <<< result false
(500)     [5] [Jun 02 07:41:52:318] [adobereaderdc]     not(FileExists($CabFile$))   <<< result true
(501)     [6] [Jun 02 07:41:52:318] [adobereaderdc]   Then
(502)     [6] [Jun 02 07:41:52:319] [adobereaderdc]   EndIf
und das Skript läuft weiter! Dann kommt am Schluß die in vielen Paketen vorhandene Prüfung ob $NewExe$ existiert. Diese meldet genau wie die andere Sektion "not exist -> true" und das Skript läuft weiter bis zum Ende!

Code: Alles auswählen

(503)     [6] [Jun 02 07:41:52:321] [adobereaderdc]   If
(504)     [9] [Jun 02 07:41:52:321] [adobereaderdc]     EvaluateBoolean: Parsing: not(FileExists($NewExe$)) 
(505)     [9] [Jun 02 07:41:52:321] [adobereaderdc]     EvaluateBoolean: Parsing: FileExists($NewExe$)) 
(506)     [5] [Jun 02 07:41:52:321] [adobereaderdc]       Starting query if file exist ...
(507)     [9] [Jun 02 07:41:52:322] [adobereaderdc]     Executing "C:\Windows\\cmd64.exe" /C "dir C:\Program Files (x86)\Adobe\Acrobat Reader 2015\Reader\AcroRd32.exe"
(508)     [9] [Jun 02 07:41:52:429] [adobereaderdc]     ExitCode 1
(509)     [9] [Jun 02 07:41:52:429] [adobereaderdc]     output:
(510)     [9] [Jun 02 07:41:52:429] [adobereaderdc]     --------------
(511)     [9] [Jun 02 07:41:52:429] [adobereaderdc]     Das System kann den angegebenen Pfad nicht finden.
(512)     [9] [Jun 02 07:41:52:429] [adobereaderdc]     
(513)     [5] [Jun 02 07:41:52:429] [adobereaderdc]       "C:\Program Files (x86)\Adobe\Acrobat Reader 2015\Reader\AcroRd32.exe": 
(514)     [5] [Jun 02 07:41:52:429] [adobereaderdc]     FileExists($NewExe$)   <<< result false
(515)     [5] [Jun 02 07:41:52:429] [adobereaderdc]     not(FileExists($NewExe$))   <<< result true
(516)     [6] [Jun 02 07:41:52:429] [adobereaderdc]   Then
(517)     [6] [Jun 02 07:41:52:436] [adobereaderdc]   EndIf
(518)     [6] [Jun 02 07:41:52:442] [adobereaderdc] EndIf
(519)     [5] [Jun 02 07:41:52:442] [adobereaderdc] Process stopped
(520)     [1] [Jun 02 07:41:52:442] [adobereaderdc] ___________________
(521)     [1] [Jun 02 07:41:52:442] [adobereaderdc] script finished
(522)     [1] [Jun 02 07:41:52:442] [adobereaderdc] 2 errors
(523)     [1] [Jun 02 07:41:52:442] [adobereaderdc] 0 warnings
(524)     [1] [Jun 02 07:41:52:442] [adobereaderdc] 
(525)     [1] [Jun 02 07:41:52:442] [adobereaderdc] installed product: adobereaderdc Version: 15.006.30306-2
(526)     [1] [Jun 02 07:41:52:442] [adobereaderdc]
 
und das Produkt steht auf "success"!

Hier noch meine Initial Parameters. Ich hatte ja erst ExitOnError im Verdacht, aber der ist auf true gesetzt...

Code: Alles auswählen

[Initial]
setLogLevel=6
ExitOnError=true
ScriptErrorMessages=off
TraceMode=off
StayOnTop=false
Ich verstehe einfach nicht, warum das so ist. Bisher waren die isFatalErrors absolut zuverlässig!

Hat jemand eine Idee?

Re: isFatalError von winst ignoriert!

Verfasst: 02 Jun 2017, 13:43
von GEI
jensito hat geschrieben:

Code: Alles auswählen

	
if not(FileExists($CabFile$))
	LogError "Fehler beim Kopieren der Installationsdateien. Abbruch..."
	isFatalError
endif
Hat jemand eine Idee?
Ich mach es ähnlich ...
In vielen Setupfile-Namen ist die aktuelle Versionsnummer enthalten. Um bei jeder Aktualisierung neben dem notwendigen OPSI/control nicht auch noch in der CLIENT_DATA/setup.opsiscript anpassen zu müssen, bau ich mir den konkreten SetupFile-Namen zusammen:

Code: Alles auswählen

Set $SetupVersion$      = strPart("%installingProdVersion%", "1", calculate(strPos("%installingProdVersion%","-") + "-" + "1" ))
Set $SetupFile$         = "krita-" + $SetupVersion$ + "-x64-setup.exe"
; ----------------------------------------------------------------
ChangeDirectory "%SCRIPTPATH%"
if not(FileExists($Setupfile$))
        LogError "Setupfile NOT exists (" + $Setupfile$ +")"
        isFatalError "No Setupfile!"
else
        comment "Setupfile OK (exists)"
endif
der Construct "if not(FileExists($Setupfile$))" funktioniert hier gut, daran sollte es nicht liegen.

Re: isFatalError von winst ignoriert!

Verfasst: 14 Jun 2017, 15:30
von n.wenselowski
Hi,

wenn es komplett ignoriert wird, könnte es ein Bug sein.

Könntest du uns ein minimales Beispiel geben, welches den Fehler produziert, damit wir das nachstellen können?


Gruß

Niko