Bug bei FileExists auf leere Variable gibt wahr zurück

Antworten
thomas.besser
Beiträge: 470
Registriert: 09 Sep 2009, 09:40

Bug bei FileExists auf leere Variable gibt wahr zurück

Beitrag 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
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

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

Beitrag 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] 
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

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

Beitrag von n.wenselowski »

Hallo,

dazu bitte mal diese News lesen und damit probieren.


Gruß

Niko

Code: Alles auswählen

import OPSI
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

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

Beitrag 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


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


thomas.besser
Beiträge: 470
Registriert: 09 Sep 2009, 09:40

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

Beitrag 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
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

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

Beitrag 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
Antworten