Opa Hermie schrieb:
Man kann ja die install.wim in eine .esd umwandeln, das spart erheblich Platz.
Das ist eine gute Idee.
ESD benutzt die LZMS-Kompression (alias: "recovery", /compress recovery).
WIM, CAB benutzen die LZX-Kompression (alias: "maximum", /compress maximum).
ESD (LZMS) ist gegenüber WIM (LZX) nur etwa halb so groß.
Benötigt wird mindestens der Win8-Loader für ESD (der aber im Gegensatz zu Win7 die Key-Eingabe nicht überspringen lässt).
Inzwischen habe ich auch einen Weg gefunden, um das ".net Framework 4.6.1" zu slipstreamen.
Prinzipiell kann man mit dieser Methode absolut alles slipstreamen.
Der Trick dabei:
Man fängt eine Windows-Installation an, aber an der Stelle wo der Benutzername abgefragt wird, drückt man Shift+Strg+F3 und geht damit in den Audit-Modus.
Windows macht automatisch einen Neustart in den Audit-Modus, wo man dann "net Framework" (DirectX-Updates, fehlende SP1-Wrapper etc etc) installieren kann.
Man kann auch eine automatische Updatesuche machen.
Zusätzlich hat man dann natürlich auch noch die Möglichkeit einer Datenträgerbereinigung, wodurch man aktuell über 900 MB spart.
Nach der Datenträgerbereinigung macht man noch einmal einen Neustart, um die Datenträgerbereinigung wirklich abzuschließen.
Ist dann alles fertig, aktiviert man im sysprep-Fenster (Systemvorbereitungsprogramm) die Einstellungen "OOBE", "Verallgemeinern" (entfernt alle systemspezifischen Treiber etc) und "Herunterfahren".
entspricht:
C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown
Diese Installation ist dann praktisch der "mount"-Ordner, den man nach dem dism-"/mount-wim"-Befehl erhält.
Geschickterweise hat man in einer VM installiert und kann dann mit imagex einfach alles in eine wim einpacken.
imagex.exe /capture QUELLE [Beispiel m:] ZIEL [d:\work\install.wim] "BESCHREIBUNG" [mit Anführungszeichen] /flags "HomePremium" /verify /compress maximum
Damit man überhaupt Offline-Zugriff auf die VMware-Installation erhält, installiert man:
VMware vSphere 5.1 Virtual Disk Development Kit 5.1.0-774844
https://my.vmware.com/web/vmware/details?downloadGroup=VSP510-VDDK-510&productId=268
Mount-Befehl:
"C:\Program Files (x86)\VMware\VMware Virtual Disk Development Kit\bin\vmware-mount.exe" m: "d:\VMWare\Windows 7 x64 Home Premium\Windows 7 x64 Home Premium.vmdk" /v:2
m: ist dann das Ziel, wo das gemountete Windows zu sehen ist.
/v:2 mountet die 2.Partition. Das ist Windows. Die erste Partition wäre die 100 MB Partition
Den Parameter /m:w bzw /m:n muss man weglassen, sonst wird der Zugriff verweigert.
Nach dem ersten "imagex.exe /capture" kann man weitere Windows-Installationen hinzufügen mit "imagex.exe /append".
Dabei wird das install.wim pro Windows-Variante etwa 300 MB größer, weil nahezu alle Dateien bereits vorhanden sind und ausgelassen werden.
Ist das install.wim mit allen Windows-Installationen (Home, Pro, Ultimate) bestückt, dann kann man entweder das ISO erzeugen oder man exportiert alles wieder und komprimiert dabei erneut mit "recovery" und erhält ein deutlich kleineres ESD. Allerdings braucht man dafür ordentlich Rechenpower.
m: wieder unmounten:
vmware-mount.exe /d m:
oder
vmware-mount.exe /f m:
Das ist alles recht kompliziert und aufwändig, aber es funktioniert tatsächlich.
Entfernt habe ich
- ohne KB3133977 Bitlocker-Update
- ohne KB3086255 Securom-Patch
- ohne alle nachträglichen IE11-Updates (also nur vanilla-IE11 ist drin)
zusätzlich mit reingenommen wurden (slipstream!):
+ net Framework 4.6.1 + Hotfix-Rollup (KB3154529)
+ DirectX
+ mit KB2990941-v3 (Microsoft NVMe, stornvme.sys)
+ mit KB3087873-v2 (Microsoft NVMe, Update)
Das "Convenience Rollup" (SP2) ist nicht mit drin wegen den Telemetrie-Updates.
Das $OEM$-Script deaktiviert Telemetrie und Win10 Updates.
Nachträgliche Installationen im $OEM$-Script sind nicht mehr nötig, also geht die Installation jetzt auch etwas schneller.
Beschreibung der Vorgehensweise:
http://www.alp.dillingen.de/netacad/materialien/Win7_Sysprep.pdf
http://blog.oliver-arp.de/?p=129
Probleme bereitet noch die Integration von NVMe-Treibern in die Boot.wim.
Edit:
Bei sysprep sollte man bedenken, dass jedes mal der rearm-counter runtergesetzt wird und sobald er bei 0 steht, funktioniert sysprep nicht mehr.
Anzeige des rearm-counters mit: slmgr.vbs /dlv
Windows 7 ohne SP1 hat einen rearm-counter von 3.
Windows 7 mit nachträglich installiertem SP1 hat einen rearm-counter von 4.
Windows 7 mit geslipstreamtem SP1 (von MS-Technet) hat einen rearm-counter von 3.
Mögliche Lösungen:
Eine Datei c:\Windows\skiprearm.xml erzeugen:
Code:
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="generalize">
<component name="Microsoft-Windows-Security-SPP" 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">
<SkipRearm>1</SkipRearm>
</component>
</unattend>
sysprep so aufrufen:
c:\windows\system32\sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:c:\Windows\skiprearm.xml
Der rearm-counter wird dadurch nicht runtergezählt.
Das ist offiziell von Microsoft.
Steht so im MS-Technet.
Falls sysprep immer noch nicht funktioniert, dann zusätzlich folgendes:
In die Registry folgendes eintragen:
Code:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus]
"GeneralizationState"=dword:00000007
"CleanupState"=dword:00000002
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform]
"SkipRearm"=dword:00000001
msdtc -uninstall
eine Minute warten und rebooten.
msdtc -install
eine Minute warten und rebooten.
obige Registry-Einträge wieder machen.
Ordner c:\windows\system32\sysprep\Panther sichern und dann löschen.
Windows media network sharing service abschalten:
net stop wmpnetworksvc
ethernet cable abziehen
sysprep mit skiprearm
Mit dieser Methode kann man beliebig oft sysprep durchführen.
https://social.technet.microsoft.co...g-to-sysprep-the-machine?forum=w7itproinstall
https://social.technet.microsoft.co...or-after-clone-in-vmware?forum=winserversetup
https://support.microsoft.com/en-us/kb/929828
https://technet.microsoft.com/en-us/library/cc722350(WS.10).aspx
http://www.symantec.com/connect/articles/how-sysprep-windows-vista-7-or-8-image-more-three-times
http://www.vmwareandme.com/2013/10/guide-fatal-error-occurred-while-trying_23.html
Aber beachten:
Wenn das Audit-Windows dann fertig eingerichtet ist, sollte man skiprearm aus der registry entfernen und die Datei skiprearm.xml löschen, sonst erhält das mit diesem ISO installierte Windows keine neue GUID und wird im Netzwerk nicht als neuer Computer erkannt.
You must make sure that the <SkipRearm> setting is removed from the final unattended file that is used to deploy computers in a production environment. If <SkipRearm> is not removed from the unattended file that is used to deploy computers in a production environment, the KMS current client count does not increase for new clients that are added to the network.
https://support.microsoft.com/en-us/kb/929828
Also besser einen Backup vom Audit-Windows vor dem sysprep machen und später dieses dann bearbeiten.
Nach dem Audit-Backup skiprearm-key aus Reg löschen und skiprearm.xml löschen, sysprep ohne skiprearm ausführen und das dann zum ISO weiterverarbeiten.
Falls man irgendwann später neue Updates einbauen möchte, dann holt man sich den Audit-Backup zurück, bearbeitet die Kopie davon, führt beliebig viele syspreps (mit skiprearm) durch und macht am Ende wieder ein letztes sysprep ohne skiprearm.
Bei den Zwischenschritten während der Bearbeitung wird der rearm-counter nicht verringert, sondern nur ganz zum Schluss, wenn das ISO hergestellt werden soll.