ich habe ein Skript, in dessen Verlauf bei fehlerfreier Teilinstallation ein Reboot durchgeführt wird. Diesen Reboot möchte ich gerne verhindern, wenn der erste Teil der Installation fehlschlägt. Hierzu setze ich mit "MarkErrorNumber" den Marker auf "0" und führe den ersten Teil der Installation durch. Kommt es hierbei zu einem Fehler, so wird der Marker wie gewünscht erhöht und in der Auswertungsbedingung in den "true"-Zweig gewechselt. Der Code hierzu lautet wie folgt:
Code: Alles auswählen
if errorsOccuredSinceMark > 0
LogError "Fehler bei der Installation aufgetreten. Evtl. beim Erstellen der Verzeichnisse."
comment "error occured"
Set $Flag$ = "0"
Registry_SaveRebootFlag
isFatalError
else
; kein Fehler aufgetreten, gibt folgendes aus:
comment "no error occured"
; Reboot initialisieren
Set $Flag$ = "1"
Registry_SaveRebootFlag
ExitWindows /ImmediateReboot
endif
Im Log steht dazu Folgendes:
Meine Fragen sind:If
errorsOccuredSinceMark > 0 <<< result true
Then
Error: Fehler bei der Installation aufgetreten. Evtl. beim Erstellen der Verzeichnisse.
comment: error occured
Set $Flag$ = "0"
The value of the variable "$Flag$" is now: "0"
Execution of Registry_SaveRebootFlag
Registry started with redirection (32 Bit)
Key is: HKLM\SOFTWARE\opsi.org\winst
Key0 is: HKLM
Registry key [HKLM\SOFTWARE\opsi.org\winst] opened
Variable "RebootFlag" had value "0"
Info: "RebootFlag" keeping it's value "0"
Key closed
Error level set to fatal
Process aborted
___________________
script finished
2 errors
0 warnings
installed product: XYZ-alt Version: 2.0-7
Delete "c:\opsi.org\tmp\_winstbat_*"
Search "c:\opsi.org\tmp\"
Temp bat files deleted, next: free script
End of CreateAndProcessScript
After CreateAndProcessScript
End ProcessNonZeroScript
First ProcessNonZeroScript finished
We do not look for a update script, because the setup script is failed
In opsi4data.UpdateSwitches, Actionstr: setup
...
Registry started with redirection (32 Bit)
Registry key [HKLM\SOFTWARE\opsi.org\winst] opened
Variable "RebootRequested" had value "0"
Info: "RebootRequested" changed to "4"
Variable "LastLogFilename" is keeping its value "c:\tmp\instlog.txt"
Variable "ContinueLogFile" had value "0"
Info: "ContinueLogFile" changed to "1"
Variable "NumberOfErrors" had value "0"
Info: "NumberOfErrors" changed to "2"
Key flushed
Key closed
-------- submitted part of log file ends here, see the rest of log file on client ----------
1.) Warum wird "RebootRequested" auf "4" gesetzt?
2.) Wo erfolgt diese Einstellung? (Setze ich im Skript im Fehlerfall manuell auf "0", so wird dieser Wert später wieder überschrieben.)
3.) Nach dem (unerwünschten) Reboot werden die Werte für "ContinueLogFile", "NumberOfErrors" etc. nicht wieder auf ihre Ursprungswerte ("0") zurückgesetzt.
4.) Wie kann ich den Reboot im Fehlerfall verhindern und erreichen, dass die o. g. Werte wieder auf Standard zurückgesetzt werden?
Solltet Ihr weitere Infos benötigen, so lasst es mich bitte wissen.
Vielen Dank im Voraus für Eure Hilfe und im Voraus ein entspanntes Wochenende.
Viele Grüße
Nils