WIN11 SYSPREP 3.14 GUI AUDIT MODE 1

automatisieren mit Unattend.xml

Hier ein paar typische Beispiele, wie du deine Unattend.xml noch weiter nutzen kannst, um den OOBE-Prozess zu automatisieren und dein Windows-Image möglichst umfassend vorzubereiten. Ich habe dir ein paar verschiedene Szenarien zusammengestellt, damit du ein Gefühl dafür bekommst, wie flexibel sich Antwortdateien einsetzen lassen.

1. Automatisches Anlegen lokaler Benutzerkonten

Gerade in Testumgebungen oder bei speziellen Anforderungen möchte man oft, dass bestimmte lokale Accounts direkt angelegt werden. Beispiel:

<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value>DeinVerschlüsseltesPasswort</Value>
<PlainText>false</PlainText> <!-- Ggf. true für Klartext -->
</Password>
<Description>Lokaler Admin für Wartungsarbeiten</Description>
<DisplayName>AdminWartung</DisplayName>
<Group>Administrators</Group>
<Name>AdminWartung</Name>
</LocalAccount>
<LocalAccount wcm:action="add">
<Password>
<Value>EinAnderesVerschlüsseltesPW</Value>
<PlainText>false</PlainText>
</Password>
<Description>Standard-Benutzer</Description>
<DisplayName>TestUser</DisplayName>
<Group>Users</Group>
<Name>TestUser</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
</component>
</settings>
</unattend>

Wichtig: Im produktiven Einsatz solltest du Passwörter niemals unverschlüsselt speichern (also `PlainText` im Bestfall auf „false“). Beachte außerdem, dass du bei der Verschlüsselung eventuell spezielle Tools oder Prozesse benötigst, die beim Deployment eingesetzt werden.

2. Regionale Einstellungen und Tastaturlayout vordefinieren

Wenn du schon weißt, in welcher Region das System laufen soll oder welches Tastaturlayout verwendet wird, kannst du dies in der Unattend.xml festlegen, damit der Benutzer das im OOBE nicht immer durchklicken muss. Beispiel:

<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral">
<InputLocale>0407:00000407</InputLocale> <!-- Deutsch (Deutschland) -->
<SystemLocale>de-DE</SystemLocale>
<UILanguage>de-DE</UILanguage>
<UserLocale>de-DE</UserLocale>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral">
<InputLocale>0407:00000407</InputLocale>
<SystemLocale>de-DE</SystemLocale>
<UILanguage>de-DE</UILanguage>
<UserLocale>de-DE</UserLocale>
</component>
</settings>
</unattend>

Durch diese Einstellungen stellst du sicher, dass dein Image von Anfang an auf Deutsch läuft, das deutsche Tastaturlayout verwendet und Benutzer keine Regionsauswahl mehr treffen müssen.

3. Zeitzone und Datum-/Zeitformat voreinstellen

Genauso wie das Tastaturlayout kannst du auch die Zeitzone vordefinieren. Das verhindert, dass bei jedem neuen System manuell die richtige Zeitzone ausgewählt werden muss:

<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<component name="Microsoft-Windows-TimeZone" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<TimeZone>W. Europe Standard Time</TimeZone>
</component>
</settings>
</unattend>
  • W. Europe Standard Time steht für die mitteleuropäische Zeitzone (MEZ/CET).
  • Eine Liste aller verfügbaren Zeitzonen findest du in der Microsoft-Dokumentation.

4. Automatische Aktivierung via Key-Management (KMS) oder MAK

Wenn du in einem Volumenlizenzumfeld unterwegs bist, kannst du den Key direkt in der Antwortdatei hinterlegen. Oder du stellst sicher, dass der Rechner sich automatisch an den KMS-Server verbindet:

<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<!-- Beispiel für KMS-Client-Setup-Key (fiktiv) -->
<ProductKey>VK7JG-NPHTM-C97JM-9MPGT-3V66T</ProductKey>
<RegisteredOwner>Firma Mustermann</RegisteredOwner>
<RegisteredOrganization>Abteilung IT</RegisteredOrganization>
<!-- Falls nötig, hier KMS-Server konfigurieren -->
</component>
</settings>
</unattend>

Bei einem MAK-Key (Multiple Activation Key) könntest du ebenfalls den echten Schlüssel eintragen, aber Achtung: Damit verteilst du den Key an jedes Image. Bei KMS sollte das kein größeres Problem sein, solange du die Standard-KMS-Keys für Windows 11 nutzt und der KMS-Server im Netzwerk korrekt aufgesetzt ist.

5. Computername automatisch generieren oder festlegen

Im OOBE wird sonst oft nach einem Rechnernamen gefragt, wenn keine Domänenrichtlinien greifen. Möchtest du einen bestimmten Namensstandard oder eine dynamische Generierung, kannst du das in der Antwortdatei definieren:

<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<ComputerName>WIN11-PC-%RANDOM%</ComputerName>
</component>
</settings>
</unattend>
  • %RANDOM% ist kein offizieller Platzhalter bei Microsoft, könnte aber mit passenden Scripten oder Tools ersetzt werden. Alternativ lässt du den Namen leer, sodass Windows einen generischen zufälligen Namen erstellt (z. B. DESKTOP-ABC1234).

6. Domänenbeitritt automatisieren (Vorsicht!)

Theoretisch kannst du in der Unattend.xml auch die automatische Aufnahme in eine Active-Directory-Domäne konfigurieren. Hierbei musst du jedoch sehr vorsichtig sein, da du Benutzername und Passwort eines Domänenkontos speichern würdest. Das birgt Sicherheitsrisiken. Wenn du es dennoch umsetzen willst, sieht das ungefähr so aus:

<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<Identification>
<JoinDomain>deineDomäne.local</JoinDomain>
<MachineObjectOU>OU=Clients,DC=deineDomäne,DC=local</MachineObjectOU>
<MachinePassword>PasswordFürJoinAccount</MachinePassword>
<UnsecureJoin>false</UnsecureJoin>
<DebugJoin>false</DebugJoin>
<Credentials>
<Domain>deineDomäne</Domain>
<Password>PasswordFürJoinAccount</Password>
<Username>DomänenJoinUser</Username>
</Credentials>
</Identification>
</component>
</settings>
</unattend>

Wichtig: Verteile niemals Klartext-Passwörter in einer Antwortdatei, die möglicherweise auf mehreren Rechnern landet. Für höhere Sicherheit muss man hier sehr genau abwägen, ob man diesen Schritt automatisiert oder lieber manuell durchführt.

7. Weitere Einstellungen (Auswahl)

  • EULA-Anzeige deaktivieren: Falls du das immer im Hintergrund durchlaufen lassen willst.
  • Automatische Updates konfigurieren: Kann manch einer über das Unattend-File steuern, wird jedoch häufig auch per Gruppenrichtlinie (GPO) erledigt.
  • Netzwerkkonfiguration (statische IP): Für Umgebungen ohne DHCP oder mit speziellen Anforderungen.
  • OEM-Informationen: Du kannst über die Unattend.xml auch Herstellerangaben, Supportinformationen oder Logos hinterlegen (z. B. in der Systemsteuerung).

Zusammenfassung

Die Beispiele oben zeigen dir nur einen kleinen Ausschnitt der Möglichkeiten. Mit einer Unattend.xml kannst du den kompletten Ersteinrichtungsprozess bis ins Detail automatisieren – von der Zeitzone bis hin zum automatischen Domänenbeitritt. Insbesondere in größeren Umgebungen oder Laborumgebungen, wo es auf standardisierte Installationen ankommt, ist das ein unschätzbares Werkzeug.

Merke:
So praktisch es ist, viele Einstellungen und Konten per Unattend.xml zu setzen, desto genauer musst du darauf achten, keine sensiblen Informationen (z. B. Domänen- oder Administratorkennwörter) ungeschützt zu verteilen. Dort, wo sensible Daten unvermeidlich sind, empfiehlt sich ein gesicherter Prozess (z. B. Verwendung verschlüsselter Medien, spezieller Key-Management-Tools oder ein Deployment-Framework, das Passwörter während des Deployments abfragt und nicht dauerhaft speichert).