Zum Inhalt springen

Windows 10: Setup mit Autounattend.xml

Symbolbild Tastatur

Mit der Autounattend.xml können Windows-Setups „einfach“ automatisiert werden. Der Windows System Image Manager aus dem Windows Assessment and Deployment Kit (ADK) hilft bei der Erstellung einer Autounattend.xml.

Windows Assessment and Deployment Kit (ADK)

Das frei erhältliche Windows ADK von Microsoft enthält Tools die eine angepasste und automatisierte Windows-Installation ermöglichen. Vor allem der Windows System Image Manager und Kommandozeilentools wie Dism und Ocdimg sind essentiell.

Windows Installationsmedium

Zur Anpassung bzw. Automatisierung wird der Inhalt einer Windows-Installations-DVD bzw. ISO-Datei auf die Festplatte kopiert (z.B.: C:\Win10-Setup). Falls keine DVD oder ISO zur Verfügung steht, kann die Windows 10 1709 ISO kostenlos bei Microsoft heruntergeladen werden.

Windows System Image Manager

Nachdem Start muss die install.wim in C:\Win10-Setup\sources ausgewählt und entweder eine neue Autounattend.xml erstellt oder eine bestehende geöffnet werden. Danach können im „Windows-Image“-Bereich die einzelnen „Components“, also Einstellungsmöglichkeiten, in die Antwortdatei hinzugefügt und im Eigenschaftsbereich (rechts) konfiguriert werden. Fehlerhafte Einstellungen werden im Bereich „Meldungen“ angezeigt.

Autounattend.xml im Windows System Image Manager

Weitere Infos: Microsoft.com – Windows System Image Manager User Interface

Audit- oder OOBE-Mode?

Audit Mode

Bei einem Audit-Mode-Setup wird ein sogenanntes Referenz-System installiert und angepasst (z.B. Programme installiert). Danach wird das System mit sysprep /generalize generalisiert und ein Image erstellt. Dieses Image wird dann auf andere Computer wiederhergestellt.

Vorteil: Ein fertig installiertes und konfiguriertes System kann schnell bereitgestellt werden.
Nachteil: Installierte Programme/Treiber, gesetzte Einstellungen sind im Image verankert und müssen dort gepflegt werden.

Out of Box Experience (OOBE) Mode

Mit einem Out of Box Experience (OOBE) Setup wird bereits ein auslieferungsfähiges System installiert. Die restlichen Anpassungen (z.B.: Programme installieren) werden nach dem Windows Setup durchgeführt.

Vorteil: Programme etc. sind vom Windows Setup entkoppelt und können separat gepflegt werden (keine umfangreiche Imagepflege).
Nachteil: Programme etc. müssen nach dem Setup via Silent-Setups, Scripts und/oder Gruppenrichtlinien angewendet werden (evtl. zeitintensiv).

Weitere Infos: Microsoft.com – Understanding Servicing Strategies

Vorarbeiten: Domain-Beitritt

Da das Domainbeitritt-Passwort unverschlüsselt in der Autounattend.xml steht, sollte ein eigens dafür erstelltes, minimal berechtigtes Benutzerkonto verwendet werden.

  • Active Directory-Benutzer und -Computer starten
  • Gruppe ohne weitere Berechtigungen erstellen (z.B. Gruppenname: Nix)
  • Benutzerkonto erstellen (z.B. Benutzername: domjoin)
  • Benutzer der Gruppe hinzufügen und als Hauptgruppe hinterlegen
  • Benutzer aus der Domain-Benutzer-Gruppe entfernen
  • Eigenschaftsfenster der Domain öffnen → Sicherheit
  • erstelltes Benutzerkonto hinzufügen → Erweitert
  • Berechtigung setzen: „Computer“-Objekte erstellen

Autounattend.xml OOBE-Beispiele für BIOS/UEFI (schnell)

ACHTUNG: Bestehende Partitionen werden gelöscht und neu erstellt!

Die folgenden Autounattend-Beispiel-Downloads enthalten schnell einsatzbereite, gezippte Autounattend.xml-Dateien für BIOS- bzw. UEFI-Systeme.

Diese enthalten die folgenden Einstellungen:

  • Spracheinstellungen: Deutsch (Österreich)
  • Festplatten/Partitions-Konfiguration:
    • DiskID 0 wird verwendet und gelöscht (!)
    • Systempartitionen werden angelegt
    • Windows-Partition wird mit maximal möglicher Partitionsgröße erstellt
  • Windows 10 Pro wird installiert
    • Windows-Key muss noch in „Key einfügen“ gesetzt werden!
  • Windows-Benutzer (mit lokalen Administrator-Rechten) namens „admin“ und Passwort „admin“ wird erstellt
    (das echte Administrator-Konto erhält kein Passwort und ist deaktiviert)

Da theoretisch nur mit dem Windows Editor (Notepad) der entsprechende Windows-Key einfügt werden muss, sind diese Dateien fast sofort einsatzbereit! Das Passwort des Admin-Benutzers sollte aber im Anschluss sofort geändert werden!

Autounattend BIOS (5834 Downloads )
Autounattend UEFI (9884 Downloads )

SCHNELLSTART-TIPP: Mit dem Media Creation Tool einen bootfähigen Windows-Setup-USB-Stick erzeugen (min. USB 3.0 empfohlen!). Danach einfach die passende Autounattend auf den USB-Stick kopieren und auf Autounattend.xml umbenennen!

Autounattend.xml OOBE-Beispiel (ausführlicher)

Leider gestaltet sich der Einstieg trotz Windows System Image Manager etwas schwieriger und ist ohne weitere Doku nicht selbsterklärend. Das folgende Beispiel soll daher beim Erststart helfen und sollte zur weiteren Bearbeitung im Windows System Image Manager geöffnet werden. ACHTUNG: im Beispiel werden bestehende Partitionen gelöscht und neu erstellt!

In jedem Fall zu prüfen/anzupassen sind:

  • Windows-Version: Windows 10 Pro
  • Organization ändern (aktuell: Mustermann GmbH)
  • Domainbeitritt: Credentials setzen
  • MachineObjectOU anpassen
  • Manufacturer ändern (aktuell: Mustermann GmbH)
  • SupportPhone ändern (aktuell: +43 (0) 000 / 00000)
  • Lokaler Administrator: Passwort setzen
  • Automatische Windows-Anmeldung als Administrator
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<servicing></servicing>
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" 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">
<SetupUILanguage>
<UILanguage>DE-AT</UILanguage>
</SetupUILanguage>
<InputLocale>0c07:00000407</InputLocale>
<UILanguage>de-DE</UILanguage>
<UILanguageFallback>de-DE</UILanguageFallback>
<UserLocale>de-AT</UserLocale>
<SystemLocale>de-DE</SystemLocale>
</component>
<component name="Microsoft-Windows-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">
<DiskConfiguration>
<Disk wcm:action="add">
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Extend>true</Extend>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Size>500</Size>
<Type>Primary</Type>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>System reserviert</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
<TypeID>0x27</TypeID>
</ModifyPartition>
<ModifyPartition wcm:action="add">
<Order>2</Order>
<Active>true</Active>
<Format>NTFS</Format>
<Label>System</Label>
<Letter>C</Letter>
<PartitionID>2</PartitionID>
</ModifyPartition>
</ModifyPartitions>
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
</Disk>
</DiskConfiguration>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<WillShowUI>OnError</WillShowUI>
<InstallFrom>
<MetaData wcm:action="add">
<Key>/image/name</Key>
<Value>Windows 10 Pro</Value>
</MetaData>
</InstallFrom>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
<Organization>Mustermann GmbH</Organization>
<ProductKey>
<Key></Key>
<WillShowUI>OnError</WillShowUI>
</ProductKey>
</UserData>
</component>
</settings>
<settings pass="specialize">
<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">
<OEMInformation>
<Manufacturer>Mustermann GmbH</Manufacturer>
<SupportURL></SupportURL>
<SupportPhone>+43 (0) 000 / 00000</SupportPhone>
<HelpCustomized>false</HelpCustomized>
</OEMInformation>
<ComputerName></ComputerName>
<RegisteredOrganization>Mustermann GmbH</RegisteredOrganization>
</component>
<component name="Microsoft-Windows-UnattendedJoin" 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">
<Identification>
<Credentials>
<Domain>domainname.local</Domain>
<Password>passwort</Password>
<Username>domainjoin</Username>
</Credentials>
<JoinDomain>Domainname</JoinDomain>
<MachineObjectOU>OU=Clients,DC=domainname,DC=local</MachineObjectOU>
</Identification>
</component>
</settings>
<settings pass="oobeSystem">
<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>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value></Value>
<PlainText>false</PlainText>
</Password>
<DisplayName>Administrator</DisplayName>
<Name>administrator</Name>
<Group>Administrators</Group>
</LocalAccount>
</LocalAccounts>
<AdministratorPassword>
<Value></Value>
<PlainText>false</PlainText>
</AdministratorPassword>
</UserAccounts>
<AutoLogon>
<Password>
<Value></Value>
<PlainText>false</PlainText>
</Password>
<Domain></Domain>
<Enabled>true</Enabled>
<Username>administrator</Username>
</AutoLogon>
</component>
<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>OOBE</Mode>
</Reseal>
</component>
<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>0c07:00000407</InputLocale>
<SystemLocale>de-DE</SystemLocale>
<UILanguage>de-DE</UILanguage>
<UILanguageFallback>de-DE</UILanguageFallback>
<UserLocale>de-AT</UserLocale>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:c:/win10-setup/sources/install.wim#Windows 10 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>Code-Sprache: HTML, XML (xml)

Weitere Infos: Microsoft.com – Unattended Windows Setup Reference

Computernamen korrigieren

Wenn kein Computername in der Autounattend.xml angegeben wird, generiert das Setup den Namen automatisch. Der Administrator sollte den Namen nach Abschluss des Setups entsprechend ändern.

Andere Möglichkeiten, die den Umfang dieses Beitrags leider sprengen würden:

Windows Updates mit Dism integrieren

Um eine schnelle Windows-Bereitstellung zu ermöglichen, sollten die aktuell notwendigen/verfügbaren Updates gleich in die Installationsressource integriert werden. Dazu gehört auf jeden Fall das letzte kumulative Windows 10 Update, dass im Microsoft Update Katalog bezogen werden kann (suche nach: Windows 10 1709 cumulative).

Dism /Mount-Wim /WimFile:C:\Win10-Setup\sources\install.wim /Name:"Windows 10 Pro" /MountDir:C:\Win10-Mount
Dism /Add-Package /PackagePath:C:\Win10-Updates\Windows10-KBxxxxxxx-x64.msu /Image:C:\Win10-Mount /LogPath:AddPackage.log
Dism /Unmount-Wim /MountDir:C:\Win10-Mount /CommitCode-Sprache: JavaScript (javascript)

Weitere Infos: Microsoft.com – Mount and Modify a Windows Image using Dism, Microsoft.com – Add updates to customized Windows images

Treiber mit Dism integrieren

Die Treiber können in einem Verzeichnis gesammelt und gemeinsam integriert werden („/Recurse“):

Dism /Mount-Wim /WimFile:C:\Win10-Setup\sources\install.wim /Name:"Windows 10 Pro" /MountDir:C:\Win10-Mount
Dism /Image:C:\Win10-Mount /Add-Driver /Driver:C:\Treiber /Recurse
Dism /Unmount-Wim /MountDir:C:\Win10-Mount /CommitCode-Sprache: JavaScript (javascript)

Weitere Infos: Microsoft.com – Add and Remove Drivers to an Offline Windows Image

Install.wim bereinigen

Die Dateigröße der Install.wim wächst leider schnell an. Besonders wenn ein Kumulatives Windows Update integriert wird. Die Image-Datei sollte daher im Anschluss bereinigt und neu geschrieben werden. Wenn die neue Install.wim funktioniert, kann die alte Datei gelöscht werden.

Dism /Mount-Wim /WimFile:C:\Win10-Setup\sources\install.wim /Name:"Windows 10 Pro" /MountDir:C:\Win10-Mount
Dism /Image:C:\Win10-Mount /Cleanup-Image /StartComponentCleanup /ResetBase
Dism /Unmount-Wim /MountDir:C:\Win10-Mount /Commit
Dism /Compress:max /Export-Image /SourceImageFile:C:\Win10-Setup\sources\install.wim /Name:"Windows 10 Pro" /DestinationImageFile:C:\Win10-Setup\sources\install_CLEAN.wimCode-Sprache: JavaScript (javascript)

Weitere Infos: Microsoft.com – Reduce the Size of the Component Store…, Microsoft.com – DISM Image Management Command-Line Options

Windows-Installation mit Setupcomplete.cmd fortsetzen/abschließen

Nach einer automatisierten Windows-Installation sollen ggf. noch weitere automatische Anpassungen/Installationen im gestarteten Windows durchgeführt werden. Das Script muss als %WINDIR%\Setup\Scripts\SetupComplete.cmd in der install.wim gespeichert werden. Da nicht bei jeder kleinen Änderung eine Anpassung dieser Datei im Image notwendig sein sollte, empfiehlt sich die Auslagerung ins Netzwerk. Die integrierte SetupComplete.cmd enthält z.B. nur Befehle zum Verbinden eines Netzlaufwerks (z.B. net use S: \\server\freigabe$) oder einer Freigabe und holt das tatsächliche Script sowie dazugehörige Programme, Setupdateien von dort ab. Im Anschluss wird der Computer neu gestartet (z.B. shutdown -r -f -t 0) und der Benutzer führt seine erste Anmeldung durch.

Dism /Mount-Wim /WimFile:C:\Win10-Setup\sources\install.wim /Name:"Windows 10 Pro" /MountDir:C:\Win10-MountCode-Sprache: JavaScript (javascript)

C:\Win10-Mount\Windows\Setup\Scripts\SetupComplete.cmd erstellen

Dism /Unmount-Wim /MountDir:C:\Win10-Mount /Commit

Weitere Infos: Microsoft.com – Add a Custom Script to Windows Setup

Windows Autounattend DVD-ISO erzeugen

Die Autounattend.xml muss in diesem Beispiel in C:\Win10-Setup gespeichert werden!
Im Anschluss wird mit Oscdimg schnell und einfach eine bootfähige und installierbare Windows-Setup-ISO-Datei erstellt.

OscdimglAIO_OS -m -u2bC:\Win10-Setup\boot\etfsboot.com C:\Win10-Setup C:\Win10.isoCode-Sprache: CSS (css)

Weitere Infos: Microsoft.com – Oscdimg

Windows Autounattend DVD-ISO testen

Wenn alles funktioniert, sollte nur mehr ein Boot von der DVD notwendig sein. Die sonst notwendigen, manuellen Setupeingaben sollten durch die Autounattend.xml abgedeckt sein. Idealerweise testet man die neu erstellte Windows-Setup-DVD in einer virtuellen Umgebung (z.B. Hyper-V oder Virtualbox).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

4 × 1 =