isFatalError von winst ignoriert!

Antworten
jensito
Beiträge: 43
Registriert: 11 Okt 2011, 14:54

isFatalError von winst ignoriert!

Beitrag 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?
Benutzeravatar
GEI
Beiträge: 229
Registriert: 12 Feb 2010, 13:00
Wohnort: Braunschweig
Kontaktdaten:

Re: isFatalError von winst ignoriert!

Beitrag 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.
Leibniz-Institut für Bildungsmedien | Georg-Eckert-Institut (GEI)
---
'opsi4instituts' = Communityprojekt für wissenschaftliche Einrichtungen
offenes Repository, Update-Notifier
wiki.o4i.org - www.gei.de/institut/direktion/it-service/opsi4instituts
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: isFatalError von winst ignoriert!

Beitrag 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

Code: Alles auswählen

import OPSI
Antworten