Fragen zu Opsiscript

krodon
Beiträge: 36
Registriert: 18 Okt 2017, 15:19

Fragen zu Opsiscript

Beitragvon krodon » 01 Nov 2017, 16:56

Hallo,

wie kann ich mit opsiscript in einem Paket mehrere Programme installieren?
Das nächste Programm soll erst installiert werden wenn der Exit Code 0 ist. Bei mir wird die Installation dann beendet :-)

Wie kann ich es gestalten wenn in diesem Prozess ein Neustart erforderlich ist. Nach dem Neustart soll das Script an dieser Stelle weitergeführt wird.

VG

Krodon

l.gremme
Beiträge: 51
Registriert: 27 Okt 2016, 09:08

Re: Fragen zu Opsiscript

Beitragvon l.gremme » 02 Nov 2017, 07:48

Hallo Krodon,

ich würde an deiner Stelle einzelne Pakete bauen.
Hintergrund: Wenn eine Installation mal fehlschlagen würde, hast du die Möglichkeit, gezielt zu suchen.

Es gibt für die ExitCodes diverse Links (auch im Wiki). Dort müsstest du unter ExitCode 0 nur das nächste Programm starten/einfügen.

Der Befehl für dein Reboot fängt mit ExitWindow an. https://download.uib.de/opsi_stable/doc ... nds-reboot

Wahrscheinlich suchst du den Befehl ExitWindows /ImmediateReboot.

VG Lars

holgerv
Beiträge: 279
Registriert: 20 Aug 2012, 09:35

Re: Fragen zu Opsiscript

Beitragvon holgerv » 02 Nov 2017, 11:49

krodon hat geschrieben:Wie kann ich es gestalten wenn in diesem Prozess ein Neustart erforderlich ist. Nach dem Neustart soll das Script an dieser Stelle weitergeführt wird.


Code: Alles auswählen

[Actions]
DefVar $RebootFlag$
DefVar $WinstRegKey$
DefVar $RebootRegVar$

Set $WinstRegKey$ = "HKLM\SOFTWARE\opsi.org\winst"
Set $RebootFlag$ = GetRegistryStringValue32("["+$WinstRegKey$+"] "+"RebootFlag-%InstallingProdName%")
 
if not ($RebootFlag$ = "1")
    ; hier kommt alles hin, was vor dem Reboot passieren soll
    Set $RebootFlag$ = "1"
    Registry_SaveRebootFlag
    ExitWindows /ImmediateReboot
else
    ; hier kommt alles hin, was nach dem Reboot passieren soll
    Set $RebootFlag$ = "0"
    Registry_SaveRebootFlag
endif
 
[Registry_SaveRebootFlag]
openKey [$WinstRegKey$]
set "RebootFlag-%InstallingProdName%" = "$RebootFlag$"


Viel Erfolg!


Holger

krodon
Beiträge: 36
Registriert: 18 Okt 2017, 15:19

Re: Fragen zu Opsiscript

Beitragvon krodon » 02 Nov 2017, 19:54

Hallo Holger,

ich finde Dein Posting total lustig ;-)
Ich lese erst jetzt, habe aber genau dieses ergoogeld ;-)
die wichtige Zeile war:

Code: Alles auswählen

ExitWindows /ImmediateReboot


Nachdem ich sie in

Code: Alles auswählen

 ExitWindows /Reboot


geändert habe, läuft es perfekt!!

VG

Edi

krodon
Beiträge: 36
Registriert: 18 Okt 2017, 15:19

Re: Fragen zu Opsiscript

Beitragvon krodon » 02 Nov 2017, 20:10

l.gremme hat geschrieben:Hallo Krodon,

ich würde an deiner Stelle einzelne Pakete bauen.
Hintergrund: Wenn eine Installation mal fehlschlagen würde, hast du die Möglichkeit, gezielt zu suchen.


Hallo Lars,

ich bin zwar erst ein Anfänger, erkenne aber bereits jetzt eine zukünftige Engstelle. Ich kann zwar jeder Paket in Abhängigkeit setzen. Dann wird es aber unter Produkte sehr unübersichtlich. Am praktischen Beispiel: Ich möchte ein Paket IE11 erstellen, das auch auf einem frischen W7 Sp1 läuft. Hierzu sind 7 Updates notwendig und ein Reboot. Dies möchte ich gerne in ein Paket packen. Während der Laufzeit den Erfolg nicht zum Abbruch der Installation nutzen, sondern es soll der nächste Befehl ausgeführt werden. Erst beim letzten soll sucess gesetzt werden.

VG

Krodon

l.gremme
Beiträge: 51
Registriert: 27 Okt 2016, 09:08

Re: Fragen zu Opsiscript

Beitragvon l.gremme » 03 Nov 2017, 19:20

Hallo Krodon,

krodon hat geschrieben:ich bin zwar erst ein Anfänger, erkenne aber bereits jetzt eine zukünftige Engstelle. Ich kann zwar jeder Paket in Abhängigkeit setzen. Dann wird es aber unter Produkte sehr unübersichtlich. Am praktischen Beispiel: Ich möchte ein Paket IE11 erstellen, das auch auf einem frischen W7 Sp1 läuft. Hierzu sind 7 Updates notwendig und ein Reboot. Dies möchte ich gerne in ein Paket packen. Während der Laufzeit den Erfolg nicht zum Abbruch der Installation nutzen, sondern es soll der nächste Befehl ausgeführt werden. Erst beim letzten soll sucess gesetzt werden.


Für dieses konkrete Beispiel setze ich z.B. auf WSUSoffline, das Skript muss ich noch etwas überarbeiten, damit alle Sicherheitsrelevaten Updates installiert werden. Ich Funktionalen Updates stehen erstmal etwas weiter im Hintergrund.

Unter Windows 7 habe ich heute ca. 70 Updates im Nachhinein installiert. Dafür würde ich nächstes Mal das WSUS-Paket von unten testen. Der IE wäre mit WSUSoffline ebenfalls abgedeckt.

Ich selber setze gerne für diesen Zweck einen WSUSoffline ein, der viele Updates automatisch installiert. Heute sind es beispielsweise bei Windows 10 2 kleine Updates + das übliche Windows Defender Definition Update (ca. 10 Sekunden insgesamt, manuell) gewesen.

Als WSUS-Paket gibt es z.B. viewtopic.php?f=7&t=9015&p=40159
WSUSoffline von dass IT (teilweise veraltet, aus 2012): http://trac.dass-it.de/pub/wiki/opsi#wsusoffline

Das soll nur eine Anregung sein, wie es Alternativ gemacht werden könnte, da du gerade als Beispiel den IE11 angesprochen hast.

VG Lars

krodon
Beiträge: 36
Registriert: 18 Okt 2017, 15:19

Re: Fragen zu Opsiscript

Beitragvon krodon » 05 Nov 2017, 20:12

Hallo Lars,

danke für den Tipp! WSUSOffline ist ein Rundumschlag um einen frischen Rechner aktuell zu machen. Es macht schon fast WSUS arbeitslos :-)

VG

Krodon