Bugs in postinst.cmd in win10 Produkten

Antworten
hifstore
Beiträge: 16
Registriert: 21 Apr 2016, 10:39

Bugs in postinst.cmd in win10 Produkten

Beitrag von hifstore »

Hallo :) ,

Ich habe zwei Verbesserungsvorschlage für das postinst.cmd, das so wie es ist, meiner Meinung nach nicht korrekt ist.

Erstens:

Was sollte passieren?
Das Logging von postinst.cmd sollte die korrekten Zeiten angeben
Was ist passiert?
Im Logfile stehen falsche Zeiten, da das FOR-Loop nicht korrekt ausgewertet wird. Richtig wäre hier mit "SETLOCAL enabledelayedexpansion" vor dem Loop und mit [!date! !time!] innerhalb des Loops zu arbeiten.
Mit welchen Schritten kann das Problem nachgestellt werden?
Einfach ein Win10 produkt aufsetzen und danach das postinst.log anschauen
Bei welche Versionen der beteiligten Komponenten tritt das Problem auf?
win10-x64 und win10-x64-captured 4.2.0.3-6

Zweitens:

Was sollte passieren?
Alle postinst-Skripte sollten der Reihe nach abgearbeitet werden und nicht parallel, damit sichergestellt ist, dass alle Skripte bis ans Ende ausgeführt werden.
Was ist passiert?
Powershell-Skripte werden mit "START powershell.exe ..." aufgerufen. "START" warten nicht ab, so dass das nächste Skipt gleich aufgerufen wird. Das könnte man mit "START /WAIT poweshell.exe ..." fixen.
Mit welchen Schritten kann das Problem nachgestellt werden?
Einfach ein Win10 produkt mit einigen poweshell postinst-Skripte aufsetzen und danach das postinst.log anschauen
Bei welche Versionen der beteiligten Komponenten tritt das Problem auf?
win10-x64 und win10-x64-captured 4.2.0.3-6

Freundliche Grüsse
Fabrizio
Benutzeravatar
SisterOfMercy
Beiträge: 1522
Registriert: 22 Jun 2012, 19:18

Re: Bugs in postinst.cmd in win10 Produkten

Beitrag von SisterOfMercy »

hifstore hat geschrieben: 30 Mär 2023, 09:40 Was sollte passieren?
Das Logging von postinst.cmd sollte die korrekten Zeiten angeben
Was ist passiert?
Im Logfile stehen falsche Zeiten, da das FOR-Loop nicht korrekt ausgewertet wird. Richtig wäre hier mit "SETLOCAL enabledelayedexpansion" vor dem Loop und mit [!date! !time!] innerhalb des Loops zu arbeiten.
Mit welchen Schritten kann das Problem nachgestellt werden?
Einfach ein Win10 produkt aufsetzen und danach das postinst.log anschauen
Bei welche Versionen der beteiligten Komponenten tritt das Problem auf?
win10-x64 und win10-x64-captured 4.2.0.3-6
I think changing this over within a .cmd file would not be a good idea. One would have to make sure there are no exclamation marks in the normal %-variables.
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
hifstore
Beiträge: 16
Registriert: 21 Apr 2016, 10:39

Re: Bugs in postinst.cmd in win10 Produkten

Beitrag von hifstore »

Hallo,

Ich habe die vorgeschlagenen Änderungen übrigens ausprobiert: damit es funktioniert alles wie es soll. Die Log-Einträge habe jetzt alle die richtige Zeit-Stempel und alle Skripte werden schön sync abgearbeitet.

Wenn ich jetzt aber ein Update für ein Win10-Produkt aber mache, dann sind die Äderungen im postinst.cmd weg, oder? Gibt es eine Möglichkeit das zu verhindern (ausser dass uib die Änderunge in das Win-10 Produkt übernimmt)?

Grüsse
Fabrizio

Hier der geänderte Abschnitt von postinst.cmd:

Code: Alles auswählen

rem --- Execute scripts
echo [%date% %time%] Executing postinst scripts: >>%log_file%
rem --- Execute scripts 1
rem --- Enable delayed variable expansion to get correct times in the Log
SETLOCAL EnableDelayedExpansion
for /F %%f in (%tmp_dir%\postinst.scripts) do (
	echo [!date! !time!] Executing %tmp_dir%\postinst.d\%%f >>%log_file%
	if /I "%%~xf"==".cmd" call "%tmp_dir%\postinst.d\%%f" >>%log_file% 2>&1
	if /I "%%~xf"==".ps1" start /wait  powershell.exe -NonInteractive -WindowStyle hidden -file %tmp_dir%\postinst.d\%%f
)
Jan.Schmidt
Beiträge: 439
Registriert: 08 Jul 2017, 12:02

Re: Bugs in postinst.cmd in win10 Produkten

Beitrag von Jan.Schmidt »

Ich nutze die Netboot Pakete genauso wie die anderen Opsi Pakete - also anders, als UIB es mal vorgesehen hat.

Hintergrund:
"Früher" hat man XP; Win 7 usw. einmal heruntergeladen und max. mal ein ServicePack integriert, heute macht es Sinn jeses Jahr mindestens 2* das komplette iso neu runterzuladen, weil da viele updates inetgriert sind, die das build von Win10 hochheben und deutlich kleiner sind, als wenn man das seler mit dism (integrate bla bla macht.
Macht man das nicht, hat der Rechner mehr Zeit für updates verbraten, als das neuaufsetzen überhaupt dauert,

Ich ziehe die netboot via wget
tausche die (bei uns eh statisch gesetzten) Variablen Inhalte (sprache; key, Plattengrößen usw ) aus, baue daraus ein neues eugenes Win10 Version == win10build# und entpacke das iso dann in die beiden Ordner / boot & installfiles packe das neu und stelle es in den opsi rein.

Du kannst "natüürlich" auch einfach nur dein cmd in den Pfad depot win10wasauchimmer reinkopieren und da die rechte mit opsi-set-rights /var/lib/opsi... setzen.
Benutzeravatar
n.doerrer
uib-Team
Beiträge: 267
Registriert: 23 Okt 2020, 16:11

Re: Bugs in postinst.cmd in win10 Produkten

Beitrag von n.doerrer »

Hallo hifstore,

vielen Dank für die Vorschläge! Wir haben tests durchgeführt und die Änderungen an der postinst.cmd so in die nächste Version der windows netboot-Pakete einfließen lassen.
Die Änderung ist in win*_4.2.0.5-2, seit jetzt in experimental.
Antworten