Server-Administration mit PowerShell 4.0 und Desired State Configuration

Desired State Configuration und MOF-Dateien der PowerShell 4.0 bieten neue Administrations-Möglichkeiten. Mit diesen Tipps gelingt der Einstieg.

Mit Windows 8.1 und Windows Server 2012 R2 hat Microsoft auch die neue PowerShell-Version 4.0 veröffentlicht. Neben Installationen mit grafischer PowerShell-Benutzeroberfläche unterstützen auch Core-Server in Windows Server 2012 R2 die Cmdlets der PowerShell.  Sie können die PowerShell auch über das Kontextmenü des Startmenüs in Windows 8.1 und Windows Server 2012 R2 starten, müssen dazu aber entsprechende Einstellungen in den Eigenschaften der Taskleiste auf der Registerkarte Navigation in Windows 8.1 und Windows Server 2012 R2 vornehmen.

Eine wesentliche Neuerung der PowerShell 4.0 ist die Desired State Configuration (DSC). Mit dieser neuen Funktion können Sie die Konfiguration von bestimmten Systemdiensten in Konfigurationsdateien speichern und auf Computer verteilen. Auch System-Einstellungen wie die Aktivierung von DNS oder DHCP lassen sich in der Datei hinterlegen. Wenn die Steuerdatei erstellt wurde, lässt sie sich mit dem Cmdlet Start-DscConfiguration ausführen.

Sie haben in der PowerShell 4.0 die Möglichkeit, die Hilfe auf einem Rechner mit Internetverbindung zu speichern und auf einem anderen Rechner ohne Internetverbindung einzulesen. Dazu verwenden sie das neue Cmdlet save-help. Für die beiden Cmdlets Register-ScheduledJob und Set-ScheduledJob gibt es außerdem die neue Option RunNow. Entwickler müssen jetzt also keinen Anfangs- und Endzeit mehr zwingend vorgeben. 

Die Ausführung von Skripten lässt sich in der PowerShell einstellen.

In der PowerShell 4.0 ist die Ausführungsrichtlinie für Skripte jetzt standardmäßig auf RemoteSigned gesetzt. Die Ausführungsrichtlinie bestimmt, ob Skripte ausgeführt werden dürfen und ob diese digital signiert sein müssen. PowerShell 3.0 blockiert standardmäßig alle Skripte, während PowerShell in Version 4.0 die Ausführung aller Skripte erlaubt. Die Ausführungsrichtlinie kann aber mit dem Cmdlet Set-ExecutionPolicy geändert und mit Get-ExecutionPolicy angezeigt werden.

Mit PowerShell Desired State Configuration sichere Systemkonfigurationen verteilen

Einer der größten Vorteile bei der Verwendung von Desired State Configuration zusammen mit Windows Server 2012 R2 und Windows 8.1 ist die Möglichkeit, eine einheitliche Sicherheitsvorlage mit bestimmten Einstellungen vorzugeben und auf die Computer im Netzwerk zu verteilen. Außerdem haben Sie die Möglichkeit, Abweichungen von Ihren Richtlinien auf den Servern zu testen  und weitere Richtlinien anzuwenden.

In der Vorlagendatei zur Absicherung des Betriebssystems können Sie zum Beispiel hinterlegen, dass bei der Ausführung der Richtlinie auf einem Computer bestimmte Dateien kopiert, Dienste gestartet oder installiert und Programme ausgeführt werden. Unsichere und nicht notwendige Dienste lassen sich beenden. Auch Registry-Einstellungen können Sie über diesen Weg anpassen, genauso wie Gruppen und lokale Benutzerkonten. Natürlich können Sie auch Skripte ausführen lassen, die ebenfalls bestimmte System-Einstellungen setzen oder anpassen. Erkennt PowerShell DSC Änderungen am System, die von der Vorlage abweichen, lässt sich die Vorlage erneut anwenden.

Der erste Schritt bei der Verwendung von DSC besteht darin, eine sichere Konfigurationsvorlage zu erstellen. Auf Basis dieser Konfigurationsdatei generieren Sie danach eine MOF-Datei (Management Object File) mit den gewünschten Sicherheitseinstellungen. Die Datei wenden Sie dann über die PowerShell auf den Ziel-Computern an.  Konfigurationsdateien können Sie entweder direkt über die PowerShell oder mit Skript-Editoren erstellen.

In der letzten Phase führen die jeweiligen Computer die Vorgaben in den MOF-Dateien aus und sichern sich entsprechend ab. Bei der Erstellung von MOF-Dateien können Sie entweder Vorlagen von Microsoft verwenden oder eigene Vorlagen erstellen, auf deren Basis Sie wiederum die MOF-Vorlagen erstellen.

Ein Skript für DSC beginnt immer mit dem Schlüsselwort Configuration und einem von Ihnen definierten Namen. Diesen Namen benötigen Sie später bei der Erstellung der MOF-Datei und deren Anwendung. Es bietet sich daher an, hier einen einfachen und klar zugewiesenen Namen zu verwenden. Die Befehle für die Absicherung sind zwischen zwei geschweiften Klammern eingeschlossen:

Configuration MeineWebsite

{

}

Bei der Anzahl an Befehlen sind Sie nicht an Vorgaben gebunden. Sie können entweder mehrere kleine oder eine große Skriptdatei erstellen.  Ein Beispiel für eine Verwendung von DSC ist die Überprüfung, ob Dateien des Webservers im Verzeichnis inetpub gespeichert sind und ob auf dem Server der Internet Information Server installiert ist. Außerdem können Sie bestimmte Daten von einem Quell- auf die Zielserver kopieren und so sicherstellen, dass auf allen Webservern die von Ihnen abgesicherten Dateien vorhanden sind. Eine Beispieldatei könnte folgendermaßen aussehen:

Configuration MeineWebsite

{

  Node („s1.contoso.int“, „s2.contoso.int“)

  {

 #IIS-Installation sicherstellen  

WindowsFeature IIS

    {

      Ensure = “Present”

      Name = “Web-Server”

    }

 

 #Existenz Webdateien sicherstellen

File Beispieldatei

    {

   Ensure = “Present”

  Type = "Directory“

  Recurse= $true

  SourcePath = “\\dc01\Daten“

 Destinationpath = „C:\inetpub\wwwroot“

      }

  }

}

Im ersten Schritt erstellen Sie eine Konfigurationsdatei mit verschiedenen Konfigurationsblöcken.

Neben den hier erwähnten Möglichkeiten finden Sie in der TechNet-Library weitere Provider und damit mögliche Einstellungen für die Skript-Datei. Sie können die Skript-Datei natürlich mit beliebig weiteren Befehlen erweitern lassen. Haben Sie in der Konfigurationsdatei die von Ihnen gewünschten Einstellungen vorgegeben, speichern Sie die Datei als *.ps1-Datei ab. Der nächste Schritt besteht im Erstellen einer MOF-Datei.

Erstellen einer MOF-Datei

Haben Sie die Konfigurationsdatei erstellt, besteht der nächste Schritt darin, die Einstellungen aus der Konfigurationsdatei in eine MOF-Datei zu überführen. Dazu verwenden Sie folgenden Befehl:

<Name der Konfiguration> -MachineName <Name des Servers auf den die Datei angewendet werden soll>: MeineWebsite –MachineName “s2.contoso.int”

Für jeden Zielserver, den Sie über Node in der Konfigurationsdatei festlegen, erstellt dieser Befehl eine MOF-Datei. In dieser MOF-Datei sind dann die Sicherheitseinstellungen aus Ihrer Konfigurationsdatei hinterlegt. Wenn Sie neue Einstellungen hinterlegen wollen, dann bearbeiten Sie einfach die Konfigurationsdatei, erstellen wieder eine neue MOF-Datei (bzw. beim Einsatz von Serverfarmen auch mehrere Dateien), und wenden diese erneut auf die entsprechenden Server an. Der nächste Schritt besteht darin, dass Sie die Sicherheitskonfigurationen, die Sie festgelegt haben, auf den Zielservern ausführen lassen:

Start-DscConfiguration -Wait -Verbose -Path .\MeineWebsite

Um sicherzustellen, dass die Sicherheitskonfiguration Ihres Servers noch den Vorgaben aus der MOF-Datei entspricht, können Sie mit dem Cmdlt Test-DscConfiguration überprüfen, ob es Unterschiede zwischen der vorgegebenen und der aktuellen Konfiguration gibt. Erhalten Sie als Rückmeldung das Ergebnis True, dann stimmt das Ergebnis mit der Konfiguration der MOF-Datei überein, das Ergebnis False würde eine Abweichung anzeigen. In diesem Fall sollten Sie die MOF-Datei erneut ausführen, um sicherzustellen, dass die von Ihnen gewünschte Konfiguration aktiv ist.

Folgen Sie SearchDataCenter.de auch auf Facebook, Twitter und Google+!

Erfahren Sie mehr über Serverbetriebssysteme

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close