Windows Server 2008: Installation ohne Aufsicht

Windows Unattended Setup: Partitionierung und Feintuning

24.09.2008 von Martin Kuppinger
Die Installation des Windows Server 2008 lässt sich leicht automatisieren. Besonders im Core-Modus bietet sich eine unbeaufsichtigte Installation des Windows Server 2008 von Microsoft an. Im zweiten Teil unseres Workshops zeigen wir Ihnen, wie Sie die Partitionen einrichten und die Installation anpassen.

Wie bei allen Windows-Versionen lässt sich auch die Installation des Windows Server 2008 weitgehend automatisieren. Ab Windows Vista und Windows Server 2008 sind diese durch das neue Image-Format WIM und die damit verbundenen flexiblen Anpassungsmöglichkeiten deutlich einfacher geworden.

In unserem zweiteiligen Workshop zeigen wir Ihnen anhand einer Windows-Server-2008-Core-Installation, wie Sie mittels einer Antwortdatei eine unbeaufsichtigte Installation durchführen. Mittels der XML-basierten Antwortdatei erhält das Windows-Setup alle Informationen und führt die Installation im besten Fall ohne Eingriff des Administrators aus. Im ersten Teil zeigten wir Ihnen, wie Sie das Unattendend Setup vorbereiten und Windows einrichten. Teil zwei beschäftigt sich dann mit der Partitionierung sowie zusätzlichen Programmpaketen und Treibern, die Sie direkt in die Installation einspeisen können.

Partitionierung

Die Partitionierung von Festplatten kann auch bei Windows-Setup durchgeführt werden. Dort gibt es den Bereich DiskConfiguration. Bei diesem können Sie mit Insert Disk aus dem Kontextmenü neue Festplatten für die Konfiguration hinzufügen.

Partitionierung: Die Konfiguration von Festplatten lässt sich flexibel über Antwortdateien steuern.

Für diese Festplatten gibt es die Optionen CreatePartitions respektive ModifyPartitions. Über das Kontextmenü können diese konfiguriert werden. Hier kann beispielsweise definiert werden, dass eine neue Partition als primäre Partition mit einer angegebenen Größe erzeugt werden soll. Auf diese Weise lassen sich die Festplatten im System einrichten.

Da man, wie im ersten Teil beschrieben, die Installationspartition festlegen kann, lassen sich mittels WAIK auch spezielleren Anforderungen an die Konfektionierung von Systemen abdecken. Falls die Festplatten allerdings für die spätere Verwendung gleich formatiert werden soll, muss man einen Format-Befehl mit Insert – Synchronous Command aufnehmen.

Eine Einschränkung gibt es allerdings: Spezielle Partitionstypen wie OEM-Partitionen oder versteckte Partitionen lassen sich auf diese Weise nicht erstellen. Dazu muss man mit dem Befehl Diskpart.exe arbeiten, den man potenziell aber mit Insert – Synchronous Command bei Pass 1 windowsPE einfügen kann.

Der Computername

Die nächste unverzichtbare Einstellung ist der Computername. Dieser wird über das Windows-Shell-Setup in der Phase 4 specialize definiert. In dieser Phase erfolgt eine Spezialisierung des Systems, bei der ebensolche Einstellungen gesetzt werden können. Direkt bei den Einstellungen auf der obersten Ebene kann hier unter anderem der Wert ComputerName festgelegt werden.

Unverzichtbar: Der Computername sollte in jedem Fall über die Antwortdatei definiert werden.

Hier finden sich noch weitere Einstellungen wie die Zeitzone oder, bei Display, die Einstellungen für die Bildschirmanzeige. Diese ist zwar von leicht untergeordneter Bedeutung bei Systemen im Core-Modus – um aber eine einigermaßen große Darstellung auch der Eingabeaufforderung zu erhalten, kann eine Anpassung durchaus sinnvoll sein. Diese Festlegungen lassen sich aber auch im letzten Schritt 7 oobeSystem definieren.

Weitere Einstellungen

Interessant sind auch die Festlegungen für die Windows-Terminalservice-RDP-WinStationExtensions. Ein Wert von 0 definiert hier, dass auch Benutzer mit älteren Versionen von Terminaldienste-Clients zugreifen dürfen. Bei den aktuellen Versionen hat sich der Mechanismus für die Authentifizierung verändert.

Benutzernamen: Die Domänenmitgliedschaft kann ebenfalls über Antwortdateien gesteuert werden.

Fast unverzichtbar ist Windows-UnattendedJoin. Darüber können Server automatisch in eine Domäne aufgenommen werden. Falls die Konten noch nicht angelegt sind, kann man die erforderlichen Zugangsdaten für das Anlegen eines Benutzerkontos mit angeben. Damit wird auch dieser Schritt gleich bei der Installation durchgeführt.

Es lassen sich noch wesentlich mehr Parameter in diesen Antwortdateien definieren. So können beispielsweise im ersten Schritt – für den Start der Installationsprozedur – und im vierten Schritt – für den dauerhaften Betrieb – die Festlegungen für TCP/IP getroffen werden, wobei dazu jeweils Schnittstellen (Interfaces) eingefügt und konfiguriert werden. Das ist wichtig, wenn man nicht mit DHCP arbeitet, weil beispielsweise spezielle Serverrollen eingerichtet werden müssen.

Aber auch Funktionen wie das Network Load Balancing (NLB) oder der DNS-Client lassen sich bereits über die Antwortdateien einrichten.

Das Hinzufügen von Packages

Im Bereich Packages finden sich weitere Pakete, die eingerichtet werden können. Viele der Pakete beziehen sich auf spezielle Serverrollen oder Features, deren Einrichtung nachträglich möglich ist. Im Zusammenhang mit einer unbeaufsichtigten Installation sind diese allerdings oft nicht so bedeutsam.

Hilfreich ist, dass man die Pakete gleich mit Add to Answer File aus dem Kontextmenü in die Antwortdateien aufnehmen kann. Sie werden dann gleich auf das System kopiert. Je nach gewählter Action bei den Paketen kann auch eine direkte Konfiguration erfolgen, die allerdings im Zusammenhang mit dem Server-Core-Modus wenig Sinn macht. Daher wird dort in der Regel auch Install gewählt, sodass die Pakete verfügbar, wenn auch noch nicht abschließend konfiguriert sind.

Erweiterbar: Durch das Hinzufügen zusätzlicher Pakete lässt sich der Funktionsumfang des installierten Systems erweitern.

Wichtig ist auch die eingangs schon einmal erwähnte Möglichkeit, zusätzliche Pakete zu importieren. Dabei muss es sich um .cab-Dateien handeln. Andere Installationspakete wie .wmi-Dateien lassen sich nicht einfügen.

Ein Beispiel für eine Antwortdatei

Abschließend findet sich noch ein Beispiel für eine Antwortdatei, in der wesentliche Parameter für die Einrichtung eines Windows Server 2008 im Server-Core-Modus enthalten sind und die als Orientierung für die Erstellung und Überprüfung eigener Antwortdateien dienen kann.

<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:ms="urn:schemas-microsoft-com:asm.v3" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86">
<UserData>
<AcceptEula>true</AcceptEula>
<FullName>Martin Kuppinger</FullName>
<Organization>TecChannel</Organization>
<ProductKey>
<WillShowUI>OnError</WillShowUI>
<Key>*************************</Key>
</ProductKey>
</UserData>
<ImageInstall>
<OSImage>
<WillShowUI>Never</WillShowUI>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>1</PartitionID>
</InstallTo>
<InstallFrom>
<MetaData>
<Key>/IMAGE/install.wmi</Key>
<Value>Windows Longhorn SERVERSTANDARDCORE</Value>
</MetaData>
</InstallFrom>
</OSImage>
</ImageInstall>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86">
<ComputerName>W2008CORE1</ComputerName>
</component>
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86">
<UserAuthentication>0</UserAuthentication>
</component>
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86">
<fDenyTSConnections>false</fDenyTSConnections>
</component>
<component name="Microsoft-Windows-Web-Services-for-Management-Core" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86">
<ConfigureWindowsRemoteManagement>true</ConfigureWindowsRemoteManagement>
</component>
<component name="Microsoft-Windows-UnattendedJoin" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86">
<Identification>
<Credentials>
<Domain>Kuppinger.intra</Domain>
<Username>Administrator</Username>
<Password>********</Password>
</Credentials>
<JoinDomain>Kuppinger.intra</JoinDomain>
</Identification>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86">
<Display>
<HorizontalResolution>1024</HorizontalResolution>
<VerticalResolution>768</VerticalResolution>
<ColorDepth>16</ColorDepth>
</Display>
<UserAccounts>
<DomainAccounts>
<DomainAccountList>
<Domain>Kuppinger.intra</Domain>
<DomainAccount>
<Name>MartinK</Name>
<Group>Administrators</Group>
</DomainAccount>
</DomainAccountList>
</DomainAccounts>
</UserAccounts>
</component>
</settings>
</unattend>

Auf die meisten Einstellungen in dieser Datei wurde in den vorangegangenen Abschnitten eingegangen. Für die Installation von anderen Versionen des Windows Server 2008 kann mit ähnlichen Dateien gearbeitet werden. So lässt sich das Konzept des Windows System Image Manager auch mit Windows Vista nutzen, um das Deployment von Clients zu steuern.

Damit endet unser zweiteiliger Workshop zum Thema Windows Unattended Setup. Den ersten Teil finden Sie hier. (mja)