Aufgaben einfach automatisieren

PowerShell 4.0 im Überblick

Desired State Configuration (DSC): Hilfe für die Serververwaltung/-konfiguration

Neben einer ganzen Reihe kleiner Verbesserungen und Neuerungen sind es die Möglichkeiten der Desired State Configuration (DSC), die bei diesem Release besondere Aufmerksamkeit verdienen. Mit dem neuen Managementsystem DSC können Systemverwalter und Administratoren deklarative Scripts erstellen, in denen beschrieben wird, wie zum Beispiel ein Windows- oder auch ein Web-Server konfiguriert sein soll.

Dabei ist in diesem Zusammenhang der Begriff "Script" nicht wirklich zutreffend: Der Systemverwalter erstellt mithilfe des neuen Schlüsselworts "Configuration" eine Art Funktion, die eine gewisse Ähnlichkeit mit den bekannten .ini-Dateien unter Windows hat. In ihr stehen Blöcke (als "Nodes" bezeichnet) zur Verfügung, mit denen dann unter anderem lokale Nutzer und Nutzergruppen, Verzeichnisse, Registry-Schlüssel, Dateien und gerade bei Serversystemen auch Rollen und Features aktiviert beziehungsweise deaktiviert werden können. Eine solche Deklaration wird wie eine PowerShell-Funktion erstellt. Im Listing 1 ist eine stark vereinfachte Version einer solchen Konfiguration zu sehen. Diese können Systemverwalter dann aufrufen und damit das sogenannte "Configuration Instance Document" als MOF-Datei (Management Object File) erstellen. Das geschieht in unserem Beispiel mit dem folgenden Aufruf:

MeineTestConfig -ComputerName $env:COMPUTERNAME -OutputPath "d:\Scripts\Konfiguration"

den wir schon mit in diese Script-Datei hineingeschrieben haben: Der "Configuration"-Block wird dabei wie eine PowerShell-Funktion abgearbeitet. Mithilfe des neuen Cmdlets "StartDscConfiguration" werden dann diese Einstellungen auf das entsprechende System angewendet:

StartDscConfiguration -Path "d:\Scripts\Konfiguration"

Das geschieht mit dem Pfad, in dem Sie zuvor die MOF-Datei abgelegt haben. Auch die Zuweisung dieser Einstellungen an ein anderes System ist möglich:

StartDscConfiguration -Computername "Server2" -Path "d:\Scripts\Konfiguration"

Der Aufruf dieses Cmdlets gibt ein PowerShell Job-Objekt zurück, was gerade bei länger währenden Konfigurationsaufgaben sehr nützlich sein kann. Soll die Konfiguration interaktiv ablaufen, so kann dazu der Parameter "-wait" verwendet werden:

StartDscConfiguration -verbose -wait -Path "d:\Scripts\Konfiguration"

Die Möglichkeiten, mithilfe der Desired State Configuration Serversysteme auf den vorgesehenen Stand zu bringen und auch zu halten, sind sehr vielfältig und können hier nur angerissen werden. Laden Sie auch jedem Fall bei der Installation des WMF die "Desired State Configuration Quick Reference", die als PDF- und als PowerPoint-Datei zur Verfügung steht, mit herunter. Diese nützlichen Informationen können Sie auch einzeln herunterladen, wenn Sie bereits mit Windows 8.1 oder Windows Server 2012 R2 arbeiten.

Hier wird ein sehr vereinfachtes Beispiel gezeigt, das den grundsätzlichen Aufbau der "Configuration" demonstriert, mit deren Hilfe dann die entsprechende MOF-Datei erstellt wird:

Configuration MeineTestConfig

{

#Optionale Parameter

param ($ComputerName)

#Es können einer oder mehrere Node-Blöcke folgen

Node $ComputerName

{

# Es folgen die verschiedenen Ressource-Blöcke

# Mit Hilfe von WindowsFeature kann untersucht und sichergestellt werden,

# dass beispielsweise bestimmte Rollen wie hier der IIS installiert sind

WindowsFeature IIS

{

Ensure = "Present" # Steht hier "Absent" so wird die Rolle deinstalliert

Name = "Web-Server"

}

Registry RegistryBeispiel

{

Ensure = "Present" # Auch hier kann "Absent" verwendet werden

Key = "HKEY_LOCAL_MACHINE\SOFTWARE\BeispielKey"

ValueName= "TestWert"

ValueData= "TestDatum"

}

}

}

MeineTestConfig -ComputerName $env:COMPUTERNAME -OutputPath "d:\Scripts\Konfiguration"

# Der Parameter -OutputPath ist optional. Der Aufruf erstellt dort eine MOF-Datei (Management

# Object File), die als "Configuration Instance Document" bezeichnet wird.