Mit einer Antwortdatei (Answer File) im XML-Format lässt sich die Windows-Installation automatisieren. Das ist für Benutzer interessant, die Windows häufiger neu installieren, etwa für Testzwecke, oder regelmäßig mehrere Windows-Rechner einrichten müssen, beispielsweise für Schulungen. Nebenbei ermöglicht die Antwortdatei auch eine Konfiguration, die der standardmäßige Setup-Assistent nicht bietet. Man kann zum Beispiel bei Windows 10 und 11 gleich ein lokales Konto erstellen und damit den Zwang zum Microsoft-Konto umgehen.
Das Standard-Tool für die Erzeugung von Antwortdateien ist der Windows System Image Manager (SIM). Er lässt sich über das Windows ADK installieren („Bereitstellungstools“). Etwas einfacher und komfortabler ist der online verfügbare Windows Answer File Generator.
In diesem Artikel geht es nur um einen Abschnitt in der Antwortdatei, der für die automatische Erstellung eines lokalen Kontos verantwortlich ist. Vielleicht habe ich es überlesen oder vielleicht ist dieser Abschnitt tatsächlich nicht ausreichend dokumentiert.
Wenn man den Abschnitt mit dem Windows System Image Manager bearbeitet, fällt auf, dass bei „Plain Text“ die Vorgabe „false“ lautet, was sich auch nicht ändern lässt. Vergibt man kein Passwort, steht hinterher
<Password>
<Value>UABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
in der XML-Datei. Vergibt man das Passwort „Geheim“, wird daraus
<Password>
<Value>RwBlAGgAZQBpAG0AUABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
Das Passwort erscheint also nicht im Klartext in der Antwortdatei, was aus Sicherheitsgründen sinnvoll ist. Sieht man sich das Format des versteckten Passwort-Strings an, kommt man schnell darauf, dass es sich um einen einfachen Base64-String handelt. Doch warum wird ein Wert eingetragen, auch wenn man kein Passwort vergibt?
Mit einem Powershell-Script kann man den Passwort-String enkodieren und kodieren:
$EncodedText = "UABhAHMAcwB3AG8AcgBkAA=="
$DecodedText = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
$DecodedText
$Text ="Password"
$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Text)
$EncodedText = [Convert]::ToBase64String($Bytes)
$EncodedText
Die Ausgabe im Terminal lautet „Password“ und „UABhAHMAcwB3AG8AcgBkAA==“. Bei einem leeren Passwort trägt der Windows System Image Manage also den enkodierten String für „Password“ ein. Dekodiert man für mein Beispiel „RwBlAGgAZQBpAG0AUABhAHMAcwB3AG8AcgBkAA==“ ergibt sich „GeheimPassword“. An den eingegebenen String wird also immer „Password“ angehängt. Wird nur „Password“ verwendet, handelt es sich um ein leeres Passwort. Das ist auf jeden Fall etwas merkwürdig, aber im Microsoft-Universum vielleicht sinnvoll. Ein besondere Sicherheit bieten die Verschleierung nicht, aber immerhin lässt sich das Passwort nicht ohne weiteres im Klartext entziffern.
Interessante Beobachtung nebenbei: Wenn „Password“ nicht im enkodierten String enthalten ist, kann Windows die Antwortdatei nicht verarbeiten und bricht mit einem Fehler im Abschnitt „oobeSystem“ ab.
Für mein Tool ESD File Converter benötigte ich die Base64-Kodierung in Delphi. Das funktioniert mit folgender Funktion:
uses [...] IdCoderMIME,IdGlobal;
function CreateBase64Password(PlainTextPassword: String): String;
var
Encoder: TIdEncoderMIME;
begin
Encoder := TIdEncoderMIME.Create(nil);
Result := Encoder.Encode(PlainTextPassword+'Password', IndyTextEncoding_UTF16LE);
Encoder.Free;
end;
//Aufruf mit Encoded:=CreateBase64Password('Mein Passwort');
Im ESD File Converter lässt sich auf der Registerkarte „Win11-Bypass-ISO“ aus dem ISO des Windows-Original-Installationsmediums ein neues ISO mit einer Antwortdatei erstellen. Wählen Sie die Option „Antwortdatei (autom. Installation)“ und klicken Sie auf „Antwortdatei anpassen“. Danach tragen Sie Benutzername, Passwort (optional), Rechnername und Arbeitsgruppe ein. Das Tool verwendet als Vorlage „unattend_x64_template.xml“, wenn ein Passwort vergeben ist. Andernfalls „unattend_x64_template_logonpasswordchg.xml“ für ein leeres Passwort. Der Benutzer wird nach einem Windows-Neustart aufgefordert, ein Passwort zu vergeben.
In den XML-Dateien sind außerdem die Registry-Einträge für die Windows-11-Installation ohne Prüfung der Hardware enthalten. Das ermöglicht die Installation auf älteren, offiziell nicht unterstützten PCs.
Bitte beachten Sie: Die Antwortdatei installiert ohne weitere Anpassungen ein deutschsprachiges Windows 10 oder 11.
Schreibe einen Kommentar