Seite 1 von 1

Bug bei FileExists auf leere Variable gibt wahr zurück

Verfasst: 19 Aug 2015, 14:21
von thomas.besser
habe hier ein Paket von März 2015, das damals mit Sicherheit getestet wurde und funktionierte. Hat sich evtl. ein Bug mit opsi-winst 4.11.5.9 eingeschlichen?

Zumindest gibt heute die Prüfung mit FileExists auf eine leere Variable wahr zurück. Das sollte doch eher anders herum sein!? Hier ein Beispielskript

Code: Alles auswählen

[Actions]
requiredWinstVersion >= "4.11.4.6"
ScriptErrorMessages=off

DefVar $LogDir$
DefVar $ProductId$
DefVar $UninstallProgram$

Set $LogDir$ = "%opsiLogDir%"
Set $ProductId$       = "test"

if FileExists($UninstallProgram$)
	comment "UninstallProgram ist leer und trotzdem ist FileExists wahr!?"
endif

außerdem: FileExists verändert ExitCode, aber nur ihm Fehlerfall

Verfasst: 20 Aug 2015, 15:06
von holgerv
Bei uns ist aufgefallen, dass eine FileExist-Abfrage außerdem den durch GetLastExitCode abfragbaren Wert verändert, aber nur dann, wenn die gesuchte Datei nicht vorhanden ist. (Dann wird GetLastExitCode zu "1", aber im anderen Fall wird GetLastExitCode nicht zu "0", sondern bleibt unverändert.)

Code: Alles auswählen

[Actions]
setLogLevel = 5

if FileExists("C:\tmp")
   comment "Es gibt C:\tmp"
else
   comment "Es gibt kein C:\tmp"
endif
comment "==> " + getLastExitcode

if FileExists("C:\temp")
   comment "Es gibt C:\temp"
else
   comment "Es gibt kein C:\temp"
endif
comment "==> " + getLastExitcode

if FileExists("C:\tmp")
   comment "Es gibt C:\tmp"
else
   comment "Es gibt kein C:\tmp"
endif
comment "==> " + getLastExitcode
Ergebnis:

Code: Alles auswählen

1] [Aug 20 15:01:30:417] --
[1] [Aug 20 15:01:30:421] --
[1] [Aug 20 15:01:30:423] c:\opsi.org\log\opsi-script-part-Eb63Pe69.log
[1] [Aug 20 15:01:30:426] opsi-script 4.11.5.10 started at 20.08.2015 14:54:25
[1] [Aug 20 15:01:30:433] 
[1] [Aug 20 15:01:30:433] ============ Version 4.11.5.10 script "C:\Users\[...]\Desktop\test.ins"
[1] [Aug 20 15:01:30:434]              used script encoding: cp1252
[1] [Aug 20 15:01:30:434]              used system encoding: cp1252
[1] [Aug 20 15:01:30:436]              start: 2015-08-20  15:01:30 
[1] [Aug 20 15:01:30:437]              on client named    "[...]"
[1] [Aug 20 15:01:30:439]              loggedin user    "[...]"
[1] [Aug 20 15:01:30:440]              opsi-script running as    "[...]"
[4] [Aug 20 15:01:30:441]              opsi-script not running with admin privileges
[1] [Aug 20 15:01:30:444]              opsi-script running in standard script mode
[1] [Aug 20 15:01:30:446] executing: "C:\Program Files (x86)\opsi.org\opsi-client-agent\opsi-winst\winst32.exe"
[1] [Aug 20 15:01:30:447] system infos:
[1] [Aug 20 15:01:30:450] [...]  -  PC hardware address
[1] [Aug 20 15:01:30:451] [...]  -  IP name 
[1] [Aug 20 15:01:30:452] [...]  -  IP address
[1] [Aug 20 15:01:30:454] DEU  -  System default locale 
[1] [Aug 20 15:01:30:457] MS Windows 6.1 64 Bit
[1] [Aug 20 15:01:30:458] 
[6] [Aug 20 15:01:30:461] Registry key [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion]  opened
[6] [Aug 20 15:01:30:463] Key closed
[6] [Aug 20 15:01:30:524] LogLevel was 6
[5] [Aug 20 15:01:30:526]     Starting query if file exist ...
[5] [Aug 20 15:01:30:527]   FileExists("C:\tmp")   <<< result true
[5] [Aug 20 15:01:30:529]   comment: Es gibt C:\tmp
[5] [Aug 20 15:01:30:531] comment: ==> 0
[5] [Aug 20 15:01:30:534]     Starting query if file exist ...
[5] [Aug 20 15:01:30:639]     "C:\temp": 
[5] [Aug 20 15:01:30:643]   FileExists("C:\temp")   <<< result false
[5] [Aug 20 15:01:30:646]   comment: Es gibt kein C:\temp
[5] [Aug 20 15:01:30:650] comment: ==> 1
[5] [Aug 20 15:01:30:653]     Starting query if file exist ...
[5] [Aug 20 15:01:30:656]   FileExists("C:\tmp")   <<< result true
[5] [Aug 20 15:01:30:659]   comment: Es gibt C:\tmp
[5] [Aug 20 15:01:30:662] comment: ==> 1
[1] [Aug 20 15:01:30:671] ___________________
[1] [Aug 20 15:01:30:674] script finished
[1] [Aug 20 15:01:30:677] 0 errors
[1] [Aug 20 15:01:30:680] 0 warnings
[1] [Aug 20 15:01:30:683] 
[1] [Aug 20 15:01:30:685] 

Re: Bug bei FileExists auf leere Variable gibt wahr zurück

Verfasst: 20 Aug 2015, 16:23
von n.wenselowski
Hallo,

dazu bitte mal diese News lesen und damit probieren.


Gruß

Niko

Re: Bug bei FileExists auf leere Variable gibt wahr zurück

Verfasst: 20 Aug 2015, 21:42
von d.oertel
Hi,

in der 4.11.5.11 war zwar schon der zweite Bug in diesem Therad gefixed aber noch nicht der erste.
Bitte mal den hier Testen und feed back geben:
http://download.uib.de/opsi4.0/experime ... .12-1.opsi

Sorry für die Bugs, aber leider haben so wenige die Testingphase genutzt ...

gruß
d.oertel

Re: Bug bei FileExists auf leere Variable gibt wahr zurück

Verfasst: 21 Aug 2015, 08:11
von thomas.besser
Kein Problem.

Ich kann im Moment leider nicht testen, weil unser OPSI-Test-Server bzw. die Virtualisierungumgebung drunter ein Problem hat. Sobald das wieder tut, kommt Rückmeldung.

Danke und Gruß
Thomas

Re: Bug bei FileExists auf leere Variable gibt wahr zurück

Verfasst: 21 Aug 2015, 09:47
von holgerv
n.wenselowski hat geschrieben:dazu bitte mal diese News lesen und damit probieren.
Das hatte ich übersehen, mit opsi-winst_4.11.5.12-1.opsi tritt der (zweite) Fehler nicht mehr auf.

Danke + schönen Gruß


holgerv