about_DesiredStateConfiguration

Letzte Aktualisierung: Mai 2014

Betrifft: Windows PowerShell 4.0, Windows PowerShell 5.0

THEMA

about_Desired_State_Configuration

KURZE BESCHREIBUNG

Bietet eine kurze Einführung in die DSC-Funktion (Desired State Configuration) von Windows PowerShell®.

LANGE BESCHREIBUNG

DSC ist eine Managementplattform in Windows PowerShell. Es ermöglicht die Bereitstellung und Verwaltung von Konfigurationsdaten für Software-Services und der Umgebung, in der diese Dienste ausgeführt werden. DSC bietet eine Reihe von Windows PowerShell-Spracherweiterungen, neuen Cmdlets und Ressourcen, mit denen Sie deklarativ angeben, wie den Status Ihrer Software-Umgebung konfiguriert werden soll.

DSC wurde mit Windows PowerShell 4.0 eingeführt.

Detaillierte Informationen über DSC finden Sie in „Windows PowerShell Desired State Configuration“ in der TechNet Library unter https://go.microsoft.com/fwlink/?LinkId=311940.

VERWENDEN VON DSC

Um mithilfe von DSC Ihre Umgebung zu konfigurieren, definieren Sie zunächst einen Windows PowerShell-Skriptblock mit dem Configuration-Schlüsselwort, gefolgt von einer ID, der wiederum das Paar geschweifter Klammern folgt, welche den Block abgrenzen. Innerhalb des Konfigurationsblocks können Sie Knotenblöcke definieren, die den Status der gewünschten Konfiguration für jeden Knoten (Computer) in der Umgebung angeben. Ein Knotenblock beginnt mit dem Node-Schlüsselwort, gefolgt vom Namen des Zielcomputers, der eine Variable sein kann. Nach dem Computernamen folgen die geschweiften Klammern, die den Block abgrenzen. Innerhalb des Knotenblocks können Sie Ressourcenblöcke zum Konfigurieren bestimmter Ressourcen definieren. Ein Ressourcenblock beginnt mit dem Typnamen der Ressource, gefolgt von der ID, die Sie für diesen Block festlegen möchten, gefolgt von den geschweiften Klammern zur Abgrenzung des Blocks, wie im folgenden Beispiel gezeigt.

Configuration MyWebConfig
    {
       # Parameters are optional
       param ($MachineName, $WebsiteFilePath)

       # A Configuration block can have one or more Node blocks
       Node $MachineName
       {
          # Next, specify one or more resource blocks
          # WindowsFeature is one of the resources you can use in a Node block
          # This example ensures the Web Server (IIS) role is installed
          WindowsFeature IIS
          {
             # To ensure that the role is not installed, set Ensure to \"Absent\"
              Ensure = "Present" 
              Name = "Web-Server" # Use the Name property from Get-WindowsFeature  
          }

          # You can use the File resource to create files and folders
          # \"WebDirectory\" is the name you want to use to refer to this instance
          File WebDirectory
          {
             Ensure = "Present"  # You can also set Ensure to "Absent“
             Type = "Directory“ # Default is “File”
             Recurse = $true
             SourcePath = $WebsiteFilePath
             DestinationPath = "C:\inetpub\wwwroot"
            
             # Ensure that the IIS block is successfully run first before
             # configuring this resource
             Requires = "[WindowsFeature]IIS"  # Use Requires for dependencies     
          }
       }
    }

Rufen Sie zum Erstellen einer Konfiguration den Configuration-Block in gleicher Weise auf, wie Sie eine Windows PowerShell-Funktion aufrufen würden, wobei alle erwarteten Parameter, die Sie möglicherweise definiert haben, übergeben werden (im obigen Beispiel zwei). Als Beispiel soll dieser Fall dienen:

    MyWebConfig -MachineName "TestMachine" –WebsiteFilePath "\\filesrv\WebFiles" `
         -OutputPath "C:\Windows\system32\temp" # OutputPath is optional

Dadurch wird eine MOF-Datei pro Knoten am von Ihnen angegebenen Pfad generiert. Diese MOF-Dateien geben Sie die gewünschte Konfiguration für jeden Knoten an. Als Nächstes verwenden Sie das folgende Cmdlet, um die MOF-Konfigurationsdateien zu analysieren, um jedem Knoten die entsprechende Konfiguration zu senden und um diese Konfigurationen zu aktivieren.

    Start-DscConfiguration –Verbose -Wait -Path "C:\Windows\system32\temp"

VERWENDEN VON DSC ZUR BEIBEHALTUNG DES KONFIGURATIONSSTATUS

Mit DSC ist die Konfiguration idempotent. Das bedeutet, dass bei Verwendung von DSC, um die gleiche Konfiguration mehr als einmal zu aktivieren, der sich ergebende Konfigurationsstatus immer identisch ist. Wenn Sie vermuten, dass irgendwelche Knoten in Ihrer Umgebung den gewünschten Konfigurationsstatus verloren haben, können Sie deshalb dieselbe DSC-Konfiguration erneut aktivieren, um die Knoten wieder in den gewünschten Status zu versetzen. Sie müssen nicht das Konfigurationsskript ändern, wenn Sie nur die Ressourcen behandeln wollen, deren Status vom gewünschten Status abweicht.

Das folgende Beispiel zeigt, wie Sie überprüfen können, ob der tatsächliche Konfigurationsstatus auf einem bestimmten Knoten gegenüber der zuletzt aktivierten DSC-Konfiguration abweicht. In diesem Beispiel wird die Konfiguration des lokalen Computers überprüft.

    $session = New-CimSession -ComputerName "localhost"
    Test-DscConfiguration -CimSession $session 

INTEGRIERTE DSC-RESSOURCEN

DSC bietet den folgenden Satz von integrierten Ressourcen, die Sie in einem Konfigurationsskript verwenden können: Registry, Script, Archive, File, WindowsFeature, Package, Environment, Group, User, Log, Service und WindowsProcess. Im obigen Beispiel wird veranschaulicht, wie die File- und WindowsFeature Ressourcen verwendet werden. Um alle Eigenschaften anzuzeigen, die Sie für eine bestimmte Ressource verwenden können, setzen Sie den Cursor auf das Schlüsselwort für die Ressource (z. B. „File“) in Ihrem Konfigurationsskript in der Windows PowerShell ISE, halten Sie STRG gedrückt, und drücken Sie die LEERTASTE.

SIEHE AUCH

„Windows PowerShell Desired State Configuration“

(https://go.microsoft.com/fwlink/?LinkId=311940)