Rollen und Features von Windows Server klonen mit PowerShell

    Konfiguration von Windows Server klonenBenötigt man für bestimmte Auf­gaben mehrere gleich einge­richtete Windows Server, dann kann man das Hinzu­fügen von Rollen und Features automa­tisieren. Dazu liest man die Konfi­guration einer Muster­installation aus und über­trägt sie mit PowerShell auf weitere Maschinen.

    Typische Rollen von Windows Server wie File- und Web-Server oder als Remote Desktop Session Host benötigt man häufig in mehreren Instanzen. Zusätzliche Rechner kommen oft erst nachträglich hinzu, so dass man die Konfiguration einer der bereits vorhandenen Maschine übernehmen will.

    Eingeschränkte Exportfunktion von Server Manager

    Das GUI-Tool für das Hinzufügen von Rollen und Features ist der Server Manager. Er ist in der Lage, diese Aufgabe auf mehreren Maschinen gleich­zeitig zu erledigen. Wenn man also schon von Anfang an weiß, dass man mehrere identisch konfigurierte Server benötigt, dann kann man bestimmte Rollen und Features gleich auf allen Zielmaschinen einrichten.

    Darüber hinaus kann er nach Auswahl der gewünschten Features im Wizard die dafür notwendige Installation in Form von PowerShell-Code exportieren (siehe dazu: Konfi­guration von Rollen unter Windows Server 2012 expor­tieren). Dieser lässt sich dann auch auf andere Rechner anwenden.

    Nach Durchlauf des Wizards zum Hinzufügen von Rollen und Features kann man die Einstellungen exportieren.

    Hat man bei der Einrichtung der vorhandenen Server aber auf den Export der PowerShell-Anweisungen vergessen, dann bietet der Server Manager später keine Möglichkeit mehr, die Konfiguration zu exportieren, um sie auf einem anderen Rechner zu übernehmen.

    Konfiguration auslesen und speichern

    In dieser Situation hilft der Einsatz von PowerShell. Sie kann von einer Workstation aus die Konfiguration eines Muster-Servers auslesen und dort in einer XML-Datei speichern:

    Get-WindowsFeature -ComputerName WS2012R2-VM1 |
    ? installed | Export-Clixml ws-config.xml

    Dieses Beispiel übernimmt sämtliche installierte Rollen und Features von WS2012R2-VM1 in die Datei ws-config.xml. Möchte man nicht alle davon auf den neuen Server übertragen, dann kann man sie nach verschiedenen Kriterien filtern.

    Rollen und Feature installieren

    Die gegenteilige Operation, nämlich das Hinzufügen von Rollen und Features, erfolgt über Install-WindowsFeature. Bevor man dieses Cmdlet aufruft, sollte der frisch installierte Ziel-Server der Domäne beitreten, um Probleme mit WinRM zu vermeiden.

    Der Befehl akzeptiert einen Parameter namens ConfigurationFilePath. Er eignet sich aber nicht, um die weiter oben erzeugte XML-Datei zu verarbeiten, sondern beschränkt sich auf jene, die man aus dem Wizard des Server Manager exportiert.

    Aus diesem Grund greift man zu Import-Clixml, um die Konfiguration an Install-WindowsFeature über eine Pipe durch­zureichen:

    Import-Clixml .\ws-config.xml |
    Install-WindowsFeature -ComputerName WS2012R2-VM3 -WhatIf

    Dieses Beispiel verwendet den Schalter WhatIf, um den Vorgang erst zu simulieren. Darauf sollte man nicht verzichten, weil man so Hinweise auf mögliche Probleme erhält. Dazu gehören etwa Warnungen, wonach die Installations­dateien auf dem Ziel-Server nicht verfügbar sind.

    Installation von Rollen und Features auf dem Remote-Server mit Install-WindowsFeature.

    In diesem Fall kann man dem Cmdlet den Pfad zu den Installations­dateien (etwa auf einer gemounteten ISO oder im Verzeichnis C:\Windows des Quell-Servers) über den Parameter Source mitteilen (zu den möglichen Quellen siehe diese TechNet-Seite):

    Import-Clixml .\ws-config.xml |
    Install-WindowsFeature -ComputerName WS2012R2-VM3 -Source L:\sources\sxs -Restart

    Dieser Aufruf verwendet zusätzlich den Schalter Restart, um den Server nach erfolgter Installation neu zu booten. Bei Bedarf könnte man dem Parameter ComputerName auch die Namen mehrerer Server übergeben, wobei diese durch Kommata voneinander getrennt sein sollten.

    Konflikt zwischen GUI-Installation und Server Core

    Allzu oft lässt sich das Problem der fehlenden Installations­dateien auf diese Weise nicht beseitigen. Das gilt besonders dann, wenn man die Konfiguration einer vollen Server-Installation inklusive GUI auf Server Core übertragen will. Mangels grafischer Oberfläche lassen sich dort viele Features nicht installieren.

    Das Übertragen der Konfiguration von einer Voll- auf eine Core-Installation führt zu irreführenden Fehlermeldungen.

    Diese Fehlermeldung ist in einem solchen Fall daher irreführend:

    Install-WindowsFeature : Fehler bei der Anforderung zum Hinzufügen oder Entfernen von Features auf dem angegebenen Server.
    Fehler beim Installieren mindestens einer Rolle, eines Rollendiensts oder eines Features.
    Die Quelldateien konnten nicht heruntergeladen werden.

    Um diese Komplikationen zu verhindern, sollte man den neuen Server mit den gleichen Optionen installieren (GUI bzw. Core) wie jenen, von dem man die Konfiguration übernehmen möchte.

    Keine Kommentare