Page 1 of 1

Deinstallation wird ausgeführt trotz abfrage

Posted: 30. Jun 2020, 15:29
by ARemus
Hallo zusammen,

evtl. kann mir jemand das folgende Phänomen erklären.
Ich habe im folgenden Paket für das Update von unserm VPN Client die folgende Abfrage ein.

Code: Select all

[Product]
#Set:Product, DONTDELETE
#Set:Installation, DONTDELETE
#Set:Uninstallation, DELETE
#Reg:OnUninstallProduct, DELETE
#Reg:Product
#Ini:Product
#Security:Product


[Set:Product]
DelTree "C:\ProgramData\$Matrix42Scripts$\WatchGuard\WatchGuard\Mobile VPN SSL" 
If DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%VM_UninstallKey%,UnInstallString") == "1" | DoesRegKeyExist ("HKLM,SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\%VM_UninstallKey%,UnInstallString") == "1" Then "Set:Repair" EndIf


[Set:Installation]
;Prüfen ob Client im InternenNetz
callhidden cmd.exe /c ipconfig >"%Temp%"\ip.txt
If DoesTextInFileExist("192.168.179.2", "%Temp%\ip.txt") == "1" | DoesTextInFileExist("192.168.174.254", "%Temp%\ip.txt") == "1"|  Then "SSLVPNINHOUSE" ELSE "MOBILEOFFICE" EndIf

Trotzdem hatten wir das Problem, das er einen Deinstallation des alten clients ausgeführt hatte.

Wir haben dann einen Test mit einem anderen Firmennetz gemacht. Dort hat er auch den alten Client entfernt, aber dann geschrieben der Client ist nicht im Office. Also hat else ausgeführt.

Kann wer uns einen Tipp geben, was er vorher macht?

Set:Repair ist leer und wir nicht genutzt.

Re: Deinstallation wird ausgeführt trotz abfrage

Posted: 17. Aug 2020, 16:46
by Steinbit
Ich denke, dasd deine IF-Schleife in der CMD nicht richtig ist.

Die einzelne Pipe ohne Klammer sorgt dafür dass der nachfolgende Befehl ausgeführt wird.
When piping commands, the expression is evaluated from left to right, so

IF SomeCondition Command1 | Command2is equivalent to:

(IF SomeCondition Command1 ) | Command2
The pipe is always created and Command2 is always run, regardless whether SomeCondition is TRUE or FALSE
https://ss64.com/nt/if.html