Seite 1 von 1

Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 06.03.2023, 16:42
von g-force
Letzte Aktualisierung: 2023-03-06 um 20:50 Uhr

Ich habe in mehreren Threads darauf hingewiesen, daß die Offline-Integration von Updates in ein Windows-ISO nicht immer gelingt. Es wird immer irgendwas fehlen oder sich irgendwie verhaken, Updates für Defender & Konsorten lassen sich sowieso nicht integrieren. Einzige Abhilfe ist die Online-Integration bzw. -Installation, also eine echte Installation von Windows und Besuch von "Windows Update". Nur dort bekomme ich wirklich alle Updates angeboten und installiert.
Wir werden alle Schritte in einer "virtuellen Maschine" (VM) ausführen, da wir so erstens keinen zweiten PC oder ein Dual-Boot benötigen, zweitens bietet uns die VM eine annähernd hardware-neutrale Umgebung für die Installation von Windows.


Die VM:

Großer Vorteil einer VM ist, daß ich das Hostsystem nicht dauernd neustarten muß. Die Installation und auch die vielen Neustarts laufen dort ziemlich schnell ab, was die Installation der Updates sehr beschleunigt. Ich arbeite meistens mit "Hyper-V" von Windows (ist in jedem aktuellen Windows vorhanden, muß aber erst aktiviert werden).
HyperV-aktivieren.JPG
Es sollten folgende Einstellungen gesetzt werden (andere Einstellungen führen zu Fehlern):

- Typ: Generation 2 (erst ab Windows 10 fehlerfrei möglich)
- RAM: 2048 bis 4192 mb, dynamischen RAM aktivieren
- Integrationsdienste: Alle aktiviert
- Prüfpunkte: deaktiviert

TIPP: Wer sich viel Arbeit ersparen möchte, schaut in diesen Thread: viewtopic.php?t=29978
Mit den im Archiv vorhandenen Scripts wird die VM automatisch erstellt und eingerichtet. Benötigte Tools (NTlite, GimageX, DISM++) sind darin bereits vorhanden und vorkonfiguriert (alle Tools sind portable).

Installation und Sysprep:

Wir wählen in der VM als Installationsmedium das gewünschte ISO und starten die VM. Wir bestätigen EULA und weiteres, wählen die gewünschte Windows-Edition und installieren in den freien Festplattenplatz. Auch hier TIPP: Das Script "Install_to_HyperV" aus dem Archiv macht das alles automatisch.

Die Installation sollte komplett durchlaufen, wir erstellen keinen Benutzer, sondern drücken im OOBE (Benutzererstellung) die Tasten STRG-Shift-F3 und gelangen nach einem Neustart auf den Desktop. Wenn wir bis hier gekommen sind, ist die erste große Hürde geschafft! Wir befinden uns im "Audit-Modus" (zu erkennen am Fenster "Systemvorbereitungs-Tool") und können WU (Windows-Update) besuchen. Nach erfolgter Installation der Updates und Neustart besuchen wir nun mehrmals WU, bis wir den ersehnten Hinweis bekommen, daß Windows auf dem aktuellen Stand ist und "keine Updates verfügbar" sind.

Hinweis: Ich kann an dieser Stelle auch weitere Software installieren und "Edge" aktualisieren. Da wir allerdings im Audit-Modus sind, werden Einstellungen von Windows und Software nicht in das ISO übernommen (genauer: nur in den eingebauten Administrator).

Wir führen eine komplette Datenträgerbereiningung (Ausführen: cleanmgr /verylowdisk) durch. Da wir nach jedem Neustart immer wieder im "Audit-Modus" landen (was richtig ist), werden wir nun das System generalisieren und herunterfahren: Im Fenster "Systemvorbereitungs-Tool" wählen wir "OOBE", "Verallgemeinern" und "Herunterfahren". SysPrep wird ausgeführt, das System fährt herunter.
Weitere Info zu "SysPrep findest Du hier: viewtopic.php?p=392685#p392685


Capture:

Wenn wir den obigen TIPP genutzt haben, finden wir den virtuellen Datenträger "Audit.VHDX" im Ordner VM. Diese VHDX enthält unser aktualisiertes Windows, das wir nun in eine "install.wim" umwandeln möchten, um später wieder davon installieren zu können. Seit Windows 8 können wir diesen virtuellen Datenträger mit Rechtsklick "Bereitstellen" - die VHDX wird als virtuelles Laufwerk im Explorer sichtbar.

Ich führe an dieser Stelle bereits eine weitere Bereinigung mit "DISM++" durch. Das virtuelle Laufwerk erscheint in DISM++ und kann über "Festplattenbereinigung gescannt und augeräumt werden. Dies entfernt einige Daten, die NTlite scheinbar übersieht, außerdem werden viele Daten komprimiert. Kann man machen, muß aber nicht - Ersparnis liegt später bei ca. 2 GB im installierten Windows.

Den Inhalt dieses Laufwerks werden wir nun "einfangen (Capture) - ich mache das immernoch mit "GimageX" (siehe TIPP).
GimageX: "Source" ist das virtuelle Laufwerk, "Destination" ist der Speicherort des Captures. Das Capture muß zwingend "install.wim" heißen, da es sonst später nicht installiert werden kann. Die Felder "Name" und "Discription" können angepasst werden, muß man aber nicht. Siehe auch hier: https://www.autoitconsulting.com/site/software/gimagex/

Hinweis: Das Capture wird durch den "Windows Defender" extrem verlangsamt. Am besten vorübergehend den Echtzeitschutz deaktivieren.
GimageX_1.JPG
GimageX_2.JPG
Die "install.wim" befindet sich in einer entpackten ISO im Ordner "sources". Es macht also Sinn, unsere ursprünglich verwendete Windows.iso mit z.B. 7zip zu entpacken und die vorhandene "install.wim" dort zu ersetzen. Hinweis: Sollte sich in "sources" eine "install.esd" befinden, so kann diese gelöscht werden, es ist nur die "install.wim" erforderlich.

Erstellung der tagesaktuellen ISO:

Die Erstellung der ISO führt uns wieder in diesen Thread zurück: viewtopic.php?t=29978
Alle weiteren Schritte führen wir mit "NTlite" durch (Bearbeitung, Bereinigung, Anpassung, etc), abschließend erstellen wir mit NTlite unsere aktuelle "Ntlite.iso". Ich empfehle aber, erstmal eine neue "Windows.iso" ohne irgendwelche Bearbeitung zu erstellen - diese dient uns später als Basis für weitere Bearbeitung mit Ntlite.

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 06.03.2023, 16:56
von Holgi
wieder ein schönes neues Projekt (na ja nicht ganz; du hast ja schön öfter darauf hingewiesen).
Freue mich schon, es mal auszuprobieren. Bislang traute ich mich noch nicht.
Wäre natürlich toll, wenn man so viel wie möglich automatisieren kann (irgendwie meine Spezialität!).
Beispielsweise kam mir beim ersten Durchlesen sofort in den Sinn:
ging der Boot in den Audit Modus nicht auch automatisch gesteuert über eine autounattend.xml ?
Vlt. kannst du die benötigten Dateien wieder in eine übersichtliche "Workbench" packen, so wie bei dem Projekt NTLite?
Jetzt schon mal vielen Dank!

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 06.03.2023, 17:06
von g-force
Der Thread ist eigentlich nur eine Zusammenfassung aus Beiträgen, die in mehreren meiner Anleitungen auftauchen (aber dort irgendwie untergehen). Wer auf TIPP achtet, wird schnell erkennen, daß das alles in engem Zusammenhang mit NTLITE steht. So empfehle ich im NTLITE-Thread an entsprechender Stelle genau diesen Thread als "Zwischenschritt": viewtopic.php?p=405357#p405357
Mit den Kenntnissen aus den beiden Threads ist es eigentlich ein Kinderspiel, sich mit NTlite eine "tagesaktuelle Windows.iso" zu erstellen, die als Basis für die weitere Bearbeitung dient.

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 06.03.2023, 17:37
von g-force
Holgi hat geschrieben: 06.03.2023, 16:56 ging der Boot in den Audit Modus nicht auch automatisch gesteuert über eine autounattend.xml ?
Im Anhang das passende NTlite-Preset.

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 08.03.2023, 19:35
von Holgi
heute war SysPrep Tag.
Ich haben den ganzen Tag mal damit herungespielt und die Anleitung von @g-force abgeackert.
Man kann auch ohne die Tastenkombination in den Audit Modus booten, indem man in der autounattend.xml den Eintrag

Code: Alles auswählen

    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <Reseal>
                <Mode>Audit</Mode>
            </Reseal>
        </component>
    </settings>
vornimmt.
Bei den Einstellungen für Dism++ zur Bereinigung habe ich mich gefragt, was dann da alles angekreutzt werden kann. Alles außer WinSXS habe ich für mich entschieden. Korrekt?
Wenn Sysprep.exe mal nicht über das GUI Frontend wollte, dann ging es dennoch mit

Code: Alles auswählen

%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe
bzw.

Code: Alles auswählen

%windir%\system32\sysprep\sysprep.exe /audit /reboot
Das Capturing mit "GimageX" dauerte auf meinem betagten Rechner gut eine Stunde.
Deshalb habe ich auch mal eine andere Methode probiert:
Die VHDX gemountet und dann in Powershell:

Code: Alles auswählen

New-WindowsImage -CapturePath D:\ -Name "Windows 10 Pro" -ImagePath C:\NTLite\ISO\install.wim -Verify
dauerte aber genauso lange; also keine Vorteile.
Es ginge wohl auch nach diesem Prinzip:

Code: Alles auswählen

dism /Mount-Image /ImageFile:C:\Backup.vhdx /Index:1 /MountDir:C:\Mount
dism /Capture-Image /ImageFile:C:\Backup.wim /CaptureDir:C:\Mount /Name:Backup
Dism /Unmount-Image /MountDir:C:\Mount /Discard
habe es aber nicht ausprobiert.

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 08.03.2023, 19:51
von g-force
Schön, daß Du dich da endlich mal rangetraut hast! :respekt:

- Im nächsten NTLITE-Archiv liegt ein AUDIT-Preset mit drin, um die "autounattend.xml" automatisch in die ISO zu schreiben.

- In "DISM++-Festplattenbereinigung" ALLE Haken setzen, auch WinSXS (Haken sind automatisch richtig gesetzt). Tipp zum langsamen Capture: Defender abschalten! (Ich habe das in der Anleitung ergänzt)

- In meinem "GimageX" liegt eine "wimscript.ini" bei, die beim Capture viele Ordner bereinigt (das machen die DISM-Befehle nicht).

- Bei Sysprep bitte genau die Parameter beachten (bei Holgi fehlt "generalize"): https://learn.microsoft.com/en-us/previ ... 3(v=ws.10)

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 10.03.2023, 12:30
von g-force
Ich habe Probleme mit den Updates (Speziell .NET 4.8) bei Verwendung der originalen Windows.iso von MS (Media Creation Tool). Einige Updates (KB5022498 und KB5022502) lassen sich weder integrieren noch später installieren.
Bei einer ISO von Adguard (UUP) treten diese Fehler nicht auf.

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 11.03.2023, 15:57
von Holgi
cleanmgr /verylowdisk sollte doch eigentlich auch das Update Verzeichnis aufräumen.
Jetzt stelle ich fest, dass alle Dateien nach Beendigung Cleanmgr noch da sind.
Wo liegt der Fehler?

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 11.03.2023, 19:44
von DK2000
@g-force:

Das Update für das .NET Framework 4.8.1 für Windows 10 ist bereits integriert? Bei mir ist da in der laufenden Installation der Fall. Hir wurde über das Windows Update KB5022729 (= KB5022498) installiert. KB5022502 wurde nicht installiert. Ohne .NET Framework 4.8.1 kam da ein anderes Update. Aber so ganz durchgestiegen, bin ich da auch nicht wirklich. Habe einfach das Update auf 4.8.1 mit dazugehörigem LP installiert und die Updates über WU. Wird nur KB5022498 installiert.

Gerade och einmal nachgeschaut:

Windows 10 22H2 ohne .NET Framwork 4.8.1 = KB5022502
Windows 10 22H2 mit .NET Framwork 4.8.1 = KB5022498

Das Windows Update fasst beide Updates als KB5022729 zusammen, wird aber nur das entsprechende Update verwendet, welches zum installierten .NET Framework 4.8 Version passt (v4.8 oder v4.8.1).

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 12.03.2023, 01:05
von Jim
hi,
Holgi hat geschrieben: 11.03.2023, 15:57 cleanmgr /verylowdisk sollte doch eigentlich auch das Update Verzeichnis aufräumen.
Jetzt stelle ich fest, dass alle Dateien nach Beendigung Cleanmgr noch da sind.
Wo liegt der Fehler?
cleanmgr.exe /verylowdisk
muss man als Admin ausführen

wenn man nun
cleanmgr.exe /lowdisk
verwendet bekommt man einen Dialog wo ein Button "Systemdaten bereinigen" vorhanden ist welcher ein Admin Icon hat
Cleanmgr_LowDisk.jpg

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 12.03.2023, 20:06
von g-force
Holgi hat geschrieben: 11.03.2023, 15:57 cleanmgr /verylowdisk sollte doch eigentlich auch das Update Verzeichnis aufräumen.
Jetzt stelle ich fest, dass alle Dateien nach Beendigung Cleanmgr noch da sind.
Du meinst Dateien in "Windows\Software Distribution"?

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 12.03.2023, 20:21
von Holgi
ja, "Windows\Software Distribution" genauer gesagt: "Windows\Software Distribution\Download"
Frage im Anschluss:
die empfiehlst ja den DISM++ auf die VHDX anzusetzen; warum nicht DISM++ im Audit Modus?
Und dann gibt es noch diesen Compact Befehl:
compact /c /s /a /f /q /i c:*.* /exe:lzx
Was hälst du davon?

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 12.03.2023, 21:09
von g-force
Der Cleanmgr scheint nie so richtig alles zu löschen. Da finde ich DISM++ wesentlich effektiver. Wenn ich DISM++ auf die VHDX anwende, kann ich sicher sein, daß keine Dateien blockiert sind (ist ja wie eine Offline-Bearbeitung. Der Compact-Befehl ist bei DISM++ schon mit drin und wird bei Offline-Bearbeitung auch fehlerfrei ausgeführt.
Ein weitere Bereinigung des Images findet durch GimageX statt. Schau Dir mal die "wimscript.ini" an, dort sind die Dateien und Ordner aufgelistet, die nicht mit gesichert werden (u.a. "Software Distrubition"").

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 23.03.2024, 13:06
von joergzain
"Alle weiteren Schritte führen wir mit "NTlite" durch (Bearbeitung, Bereinigung, Anpassung, etc), abschließend erstellen wir mit NTlite unsere aktuelle "Ntlite.iso"."

Also ich kann die neue install.wim leider nicht mehr mit NTlite bearbeiten, da das Programm sagt "Unbekannte Architektur". Gibt es da Abhilfe?

Re: Erstellung einer tagesaktuellen Windows-ISO

Verfasst: 23.03.2024, 17:56
von g-force
Dazu müsstest Du genau beschreiben, wie Du vorgegangen bist. Bitte jetzt nicht schreiben "nach Anleitung" - irgendwo ist da was schiefgelaufen.