Hallo OPSI Gemeinde, ich stehe etwas auf dem Schlauch und verstehe das Verhalten meines Skripts nicht so recht.
Ich will ein paar Registry Einträge machen und dann Neustarten damit diese auch voll und ganz wirken und nach dem Neustart soll eine Deinstallation stattfinden. Eigentlich nichts kompliziertes und solche Dinge habe ich auch vorher schon gemacht nur mein OPSI Skript läuft immer wieder in einen Loop.
PC startet --> Registry Sektion wird ausgeführt --> Neustart --> Registry Sektion wird ausgeführt --> Neustart --> Registry Sektion wird ausgeführt Neustart --> ....
Wieso fängt das Skript immer wieder von vorne an statt mit meiner Deinstallation zu beginnen? Ein tausch der Reboot Befehle (ExitWindows /Reboot oder ExitWindows /RebootWanted) brauchte auch kein anderes Ergebnis. Weiß jemand Rat oder sehe ich den Wald vor lauter Bäumen nicht?
;Mein Skript:
killtask "programm.exe"
Registry_Patch /64bit
ExitWindows /ImmediateReboot
sleepSeconds 10
ExecWith_autoit "%SCRIPTPATH%\Data\AutoIt3_x64.exe" WINST /letThemGo
Winbatch_uninstall /Sysnative
Files_copy
unerklärlicher loop
Re: unerklärlicher loop
Ein Skript fängt immer wieder am Anfang an, wenn Opsi startet.
Möchtest du also an einer bestimmten Stelle nach einem Neustart weiter machen, muss Opsi sich also merken, an welcher Stelle es fortsetzen muss.
Üblicherweise macht man das über einen Wert in der Registry, der nach dem Neustart ausgewertet wird.
Zum Beispiel:
Möchtest du also an einer bestimmten Stelle nach einem Neustart weiter machen, muss Opsi sich also merken, an welcher Stelle es fortsetzen muss.
Üblicherweise macht man das über einen Wert in der Registry, der nach dem Neustart ausgewertet wird.
Zum Beispiel:
Code: Alles auswählen
Set $WinstRegKey$ = "HKLM\SOFTWARE\opsi.org\winst"
Set $Reboot_Flag_Key$ = "RebootFlag_Programm"
Set $Reboot_Flag$ = GetRegistryStringValue32("["+$WinstRegKey$+"] " + $Reboot_Flag_Key$)
; Wenn das Reboot Flag nicht 1 ist, wurde noch nicht rebootet
if not ($Reboot_Flag$ = "1")
; Das sind die Anweisungen vor dem Reboot
[...]
; Vorbereiten des Reboots
Set $Reboot_Flag$ = "1"
Registry_SaveRebootFlag
ExitWindows /ImmediateReboot
else
; RebootFlag zurückSetzen
Set $Reboot_Flag$ = "0"
Registry_SaveRebootFlag
[....]
Comment "Reboot wurde erfolgreich durchgeführt"
endif
[Registry_SaveRebootFlag]
openKey [$WinstRegKey$]
Set "$Reboot_Flag_Key$" = "$Reboot_Flag$"
-
- Beiträge: 49
- Registriert: 13 Mär 2018, 11:36
Re: unerklärlicher loop
Vielenb Dank für die Antwort aber
das halte ich für ein Gerücht, dass ein OPSI Skript immer wieder von vorne anfängt.
Dann würde der Neustartbefehl ja gar keine Sinn machen, wenn er immer in einem Dauerneustart-Loop endet.
Das hat mein OPSI noch niegemacht
das halte ich für ein Gerücht, dass ein OPSI Skript immer wieder von vorne anfängt.
Dann würde der Neustartbefehl ja gar keine Sinn machen, wenn er immer in einem Dauerneustart-Loop endet.
Das hat mein OPSI noch niegemacht
Re: unerklärlicher loop
Der ImmediateReboot-Befehl macht nur das: Neustarten. Dabei wird setup auch nicht rausgenommen und daher wird das entsprechende Programm wieder zur Installation ausgewählt.
Wenn dein Opsi nicht gesagt bekommt, wo es das Skript weiter abarbeiten soll, dann fängt es von vorne an, das ist absolut normales Verhalten.
Einzige Ausnahme, die mir jetzt einfällt, sind bestimmte Neustart-Befehle am Ende. Bin ich jetzt zu faul, nachzusehen, welcher das ist, aber der wird im opsi-client-agent Skript verwendet. Wenn der am Ende vom Skript verwendet wird, wird das Paket abgeschlossen und ein Neustart gemacht, da kommt entsprechend kein Loop zustande.
Mich würde mal interessieren, wie die Skripte aussehen, bei denen Opsi angeblich so weiter gemacht hat, wie du das behauptest. Ich kann mir das nämlich überhaupt nicht vorstellen.
Wenn dein Opsi nicht gesagt bekommt, wo es das Skript weiter abarbeiten soll, dann fängt es von vorne an, das ist absolut normales Verhalten.
Einzige Ausnahme, die mir jetzt einfällt, sind bestimmte Neustart-Befehle am Ende. Bin ich jetzt zu faul, nachzusehen, welcher das ist, aber der wird im opsi-client-agent Skript verwendet. Wenn der am Ende vom Skript verwendet wird, wird das Paket abgeschlossen und ein Neustart gemacht, da kommt entsprechend kein Loop zustande.
Mich würde mal interessieren, wie die Skripte aussehen, bei denen Opsi angeblich so weiter gemacht hat, wie du das behauptest. Ich kann mir das nämlich überhaupt nicht vorstellen.
Re: unerklärlicher loop
Hier gibts auch noch eine Info dazu im Handbuch:
https://download.uib.de/opsi4.1/documen ... nds-reboot
https://download.uib.de/opsi4.1/documen ... nds-reboot
-
- Beiträge: 49
- Registriert: 13 Mär 2018, 11:36
Re: unerklärlicher loop
OK vielen Dank
Dann bin ich von falschen Tatsachen ausgegangen.
Man lebt und lernt.
Dann bin ich von falschen Tatsachen ausgegangen.
Man lebt und lernt.