Haikos Blog Blog von Haiko Hertes zu allen Themen rund um Microsoft und Datacenter

17Dez/170

Erstellen einer Windows PE (WinPE) mit dem Windows Assessment and Deployment Kit (ADK)

UPDATE für Windows ADK siehe unten! - Ursprünglicher Artikel vom 18.10.2012

Eine WinPE auf dem USB-Stick oder als CD/DVD ist außerordentlich praktisch. Man kann damit ein defektes Windows reparieren, seine Daten aus einem kaputten Rechner "rausholen", ein System aus einem WIM-Image installieren, Images erzeugen und und und...

Zum Erzeugen einer solchen WinPE benötigt man entweder das Windows AIK (Automated Installation Kit) oder eben das ADK. In einer kurzen Anleitung möchte ich erklären, wie hier nun vorzugehen ist:

1.) Windows ADK herunterladen und installieren

Siehe hier: http://www.microsoft.com/de-de/download/details.aspx?id=30652

Bei der Installation reicht es, die "Windows Preinstallation Environment" auszuwählen, der Rest ist hierzu nicht notwendig.

2.) Es gibt jetzt im Startmenü beim ADK eine "Umgebung für Bereitstellungs- und Imageerstellungstools". Diese muss (evtl. als Administrator) gestartet werden

3.) In der sich nun öffnenden DOS-Box wird nun das Grundgerüst der WinPE erzeugt. Dazu verwendet man den Befehl:

1
copype.cmd [x86 | amd64] C:\WinPE

Der erste Parameter gibt an, ob die Umgebung für 32- oder 64-Bit gebaut wird. Mit einer 32-Bit-Variante ist man natürlich deutlich flexibler. Der zweite Parameter gibt an, wo die WinPE erzeugt werden soll, es habdelt sich hier um einen Pfad, der noch nicht existieren darf!

Nach dem Ausführen des Kommandos (welches einige Dateien kopiert) landet man im als Ziel angegebenen Ordner. Unter "media" befindet sich nun das, was später Bestandteil der WinPE sein wird. Hier kann man weitere Tools hinzufügen, z.B. "imagex.exe" (einfach mit in den media-Ordner kopieren):

1
copy "C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment Tools\x86\DISM\imagex.exe" C:\WinPE\media\

4.) WinPE mit deutschem Tastaturlayout

Das "original" WinPE ist in Englisch mit englischem Tastaturlayout - das kann stören. Mit ein wenig Arbeit lässt sich das deutsche Layout installieren und aktivieren. Dazu muss die boot.wim, welche sich im meda\sources-Pfad befindet mit dism.exe gemountet und verändert werden.

Das deutsche Language-Pack befindet sich in "C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\de-de"

1
2
3
dism /Mount-Wim /MountDir:C:\WinPE\mount /wimfile:C:\WinPE\media\sources\boot.wim /index:1
dism /image:C:\WinPE\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\de-de\lp.cab"
dism /image:C:\WinPE\mount /Set-AllIntl:de-DE

Dieser befehl wollte abgeschlossen werden mit:

1
2
3
4
5
Das Eingabegebietsschema wurde festgelegt auf: de-DE
Das Systemgebietsschema wurde festgelegt auf: de-DE
Das Benutzergebietsschema wurde festgelegt auf: de-DE
Die Benutzeroberflächensprache wurde festgelegt auf: de-DE
Der Vorgang wurde erfolgreich beendet.

Sonst liegt ein Fehler vor...

Nun noch das Image zurückschreiben:

1
dism /Unmount-Wim /MountDir:C:\WinPE\mount /commit

5.) Erzeugen der WinPE

Es gibt 2 Möglichkeiten: Einmal in Form einer ISO-Datei (für CD/DVD) oder direkt auf einen USB-Stick (Vorsicht: Dieser wird dabei formatiert, vorhandene Daten gehen verloren!)

Die beiden Befehle lauten:

1
MakeWinPEMedia /ISO C:\WinPE C:\WinPE\WinPE.iso

-> Für CD-ISO

1
MakeWinPEMedia /UFD C:\WinPE G:

-> Für USB-Stick/-HDD, G: ist der Buchstabe des USB-Datenträgers, hier kein \ verwenden

Das wäre es schon gewesen - die ISO bzw. der USB-Stick lassen sich jetzt booten...

 

Update vom 17.12.2017:

Für Windows ADK 10 ändern sich die Pfade und damit auch die Kommandos. Ich habe diese hier nochmal für 64 Bit (amd64) zusammengestellt. Dabei werden auch ein paar nützliche Pakete (u.a. PowerShell) hinzugefügt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
copype.cmd amd64 C:\WinPe
dism /Mount-Wim /MountDir:C:\WinPE\mount /wimfile:C:\WinPE\media\sources\boot.wim /index:1
dism /image:C:\WinPE\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\de-de\lp.cab"
 
dism /image:C:\WinPE\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFx.cab"
dism /image:C:\WinPE\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\de-de\WinPE-NetFx_de-de.cab"
dism /image:C:\WinPE\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab"
dism /image:C:\WinPE\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\de-de\WinPE-PowerShell_de-de.cab"
dism /image:C:\WinPE\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab"
dism /image:C:\WinPE\mount /Add-Package /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\de-de\WinPE-Scripting_de-de.cab"
 
dism /Unmount-Wim /MountDir:C:\WinPE\mount /commit
 
MakeWinPEMedia /UFD C:\WinPE G:
2Feb/130

Server 2012: Unattend.xml für geklonte Maschinen

Will man einen Server 2012 klonen, ist es nötig, diesen vor dem Klonvorgang mit Hilfe von Sysprep vorzubereiten. Dabei gehen einige Informationen verloren, u.a. die SID, Hostname, IP-Adresse und co. Das ist hier auch gewollt. Allerdings gehen auch andere Informationen verloren, die dann nach dem Ausrollen des Images erneut eingegeben werden müssen, u.a. verschiedene Spracheinstellungen, Produkt-Key, das lokale Administratorpasswort und einiges mehr.

Um nun nicht auf vielen Klonen diese Informationen immer wieder neu eingeben zu müssen, kann man sich mit einer Unattend.xml, einer sogenannten "Antwortdatei", behelfen. In dieser kann man all diese Informationen vorab festlegen und sie werden dann automatisch verarbeitet.

Eine solche Unattend.xml muss entweder bereits vor dem Sysprep oder dann später mittels DISM in den Pfad %WINDIR%\Panther\Unattend gelegt werden.

Möchte man diese Aufgabe mit DISM für bereits existierende Images erledigen, ist der Ablauf in etwa der folgende:

1
2
3
4
dism /Mount-Wim /MountDir:C:\Mount /WimFile:C:\Image.wim /index:1
mkdir C:\Mount\Windows\Panther\Unattend
copy "C:\unattend.xml" C:\Mount\Windows\Panther\Unattend
dism /Unmount-Wim /MountDir:C:\Mount /commit

Damit wird das Image mittels DISM (schreibend) bereitgestellt, die Antwortdatei an den passenden Pfad kopiert und das Image zurückgeschrieben. Die Antwortdatei selber kann man mit Hilfe des "Windows System Image Manager" (SIM) erzeugen, welcher Bestandteil des WAIK und WADK ist. Nötig sind hierbei mindestens folgende Angaben im Teilbereich oobeSe

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<component name="Microsoft-Windows-International-Core" 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">
            <InputLocale>de-de</InputLocale>
            <SystemLocale>de-de</SystemLocale>
            <UILanguage>de-de</UILanguage>
            <UILanguageFallback>en-us</UILanguageFallback>
            <UserLocale>de-de</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" 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">
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <HideLocalAccountScreen>true</HideLocalAccountScreen>
                <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <NetworkLocation>Work</NetworkLocation>
                <ProtectYourPC>3</ProtectYourPC>
                <SkipMachineOOBE>true</SkipMachineOOBE>
                <SkipUserOOBE>true</SkipUserOOBE>
            </OOBE>
            <UserAccounts>
                <AdministratorPassword>
                    <Value>P@$$w0rd!</Value>
                    <PlainText>true</PlainText>
                </AdministratorPassword>
            </UserAccounts>
            <TimeZone>W. Europe Standard Time</TimeZone>
</component>

Damit werden die nötigen Eingaben vollständig automatisiert, der geklonte Server bootet nach dem Ausrollen des Images mehrfach durch, bis er abschliessend am Login steht. Das Administrator-Kennwort ist hier mit "P@$$w0rd!" festgelegt, kann aber geändert werden.

Wenn mann ohnehin eine Antwortdatei nutzt, kann man damit auch gleich noch weitere Einstellungen setzen, z.B.:

- Autologin
- Firewall abschalten
- Automatischen Start des Servermanagers abschalten
- Verstärkte Sicherheit im IE abschalten
- Remotedesktop einschalten
- Kennwort des lokalen Admin läuft nie ab
- uvm.

Die fertige Antwortdatei sieht dann in etwa so aus:

(Beispieldatei kann hier heruntergeladen werden)