Aufgaben einfach automatisieren

PowerShell 4.0 im Überblick

Frank-Michael Schlede arbeitet seit den achtziger Jahren in der IT und ist seit 1990 als Trainer und Fachjournalist tätig. Nach unterschiedlichen Tätigkeiten als Redakteur und Chefredakteur in verschiedenen Verlagen arbeitet er seit Ende 2009 als freier IT-Journalist für verschiedene Online- und Print-Publikationen. Er lebt und arbeitet in Pfaffenhofen an der Ilm.
Thomas Bär, der seit Ende der neunziger Jahre in der IT tätig ist, bringt weit reichende Erfahrungen bei der Einführung und Umsetzung von IT-Prozessen im Gesundheitswesen mit. Dieses in der Praxis gewonnene Wissen hat er seit Anfang 2000 in zahlreichen Publikationen als Fachjournalist in einer großen Zahl von Artikeln umgesetzt. Er lebt und arbeitet in Günzburg.

Desired State Configuration (DSC): Hilfe für die Server-Verwaltung/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 mit Hilfe des neuen Schlüsselworts "Configuration" eine Art Funktion, die 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 Server-Systemen 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 aufgerufen und damit das sogenannte "Configuration Instance Document" als MOF-Datei (Management Object File) erstellen. Dies 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. Mit Hilfe 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 mit Hilfe der Desired State Configuration Server-Systeme auf dem vorgesehen 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" mit herunter, die als PDF- und als PowerPoint-Datei zur Verfügung steht. Diese nützlichen Informationen können Sie auch einzeln herunterladen, wenn Sie bereits mit Windows 8.1 oder dem 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.

Zur Startseite