Freigeben über


Erste Schritte mit Desired State Configuration (DSC) für Windows

In diesem Artikel wird erläutert, wie Sie mit PowerShell Desired State Configuration (DSC) für Windows beginnen. Allgemeine Informationen zu DSC finden Sie unter Erste Schritte mit Windows PowerShell DSC.

Unterstützte Windows-Betriebssystemversionen

Die folgenden Versionen werden unterstützt:

  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • Windows 11
  • Windows 10

Das eigenständige Produkt Microsoft Hyper-V Server enthält keine Implementierung von Desired State Configuration, sodass Sie es nicht mit PowerShell DSC oder Azure Automation State Configuration verwalten können.

Installieren von DSC

PowerShell Desired State Configuration ist in Windows enthalten und wird über Windows Management Framework aktualisiert. Die aktuelle Version ist Windows Management Framework 5.1.

Hinweis

Sie müssen das Windows Server-Feature "DSC-Service" nicht aktivieren, um einen Computer mit DSC zu verwalten. Dieses Feature wird nur benötigt, wenn Sie eine Windows Pull Server-Instanz erstellen.

Verwenden von DSC für Windows

In den folgenden Abschnitten wird erläutert, wie DSC-Konfigurationen erstellt und auf Windows-Computern ausgeführt werden.

Erstellen eines MOF-Konfigurationsdokuments

Um eine Konfiguration zu erstellen, wird das Windows PowerShell-Schlüsselwort Configuration verwendet. Die folgenden Schritte beschreiben die Erstellung eines Konfigurationsdokuments mithilfe von Windows PowerShell.

Installieren eines Moduls mit DSC-Ressourcen

Windows PowerShell Desired State Configuration umfasst integrierte Module, die DSC-Ressourcen enthalten. Mithilfe der PowerShellGet-Cmdlets ist es außerdem möglich, Module aus externen Quellen wie z. B. dem PowerShell-Katalog zu laden.

Install-Module 'PSDscResources' -Verbose

Definieren Sie eine Konfiguration, und generieren Sie das Konfigurationsdokument:

Configuration EnvironmentVariable_Path
{
    param ()

    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost
    {
        Environment CreatePathEnvironmentVariable
        {
            Name = 'TestPathEnvironmentVariable'
            Value = 'TestValue'
            Ensure = 'Present'
            Path = $true
            Target = @('Process', 'Machine')
        }
    }
}

EnvironmentVariable_Path -OutputPath:"./EnvironmentVariable_Path"

Anwenden der Konfiguration auf den Computer

Hinweis

Damit DSC ausgeführt werden kann, muss Windows für den Empfang von PowerShell-Remotebefehlen konfiguriert werden – selbst dann, wenn Sie eine localhost-Konfiguration ausführen. Um Ihre Umgebung richtig zu konfigurieren, nur Set-WsManQuickConfig -Force in einem PowerShell-Terminal mit erhöhten Rechten.

Sie können Konfigurationsdokumente (MOF-Dateien) mit dem Cmdlet Start-DscConfiguration auf einen Computer anwenden.

Start-DscConfiguration -Path 'C:\EnvironmentVariable_Path' -Wait -Verbose

Abrufen des aktuellen Status der Konfiguration

Mit dem Cmdlet Get-DscConfiguration wird der aktuelle Status des Computers abgerufen, und es werden die aktuellen Werte für die Konfiguration zurückgegeben.

Get-DscConfiguration

Das Cmdlet Get-DscLocalConfigurationManager gibt die aktuelle Metakonfiguration zurück, die auf den Computer angewendet wurde.

Get-DscLocalConfigurationManager

Entfernen der aktuellen Konfiguration von einem Computer

Cmdlet Remove-DscConfigurationDocument:

Remove-DscConfigurationDocument -Stage Current -Verbose

Konfigurieren der Einstellungen im lokalen Konfigurations-Manager

Wenden Sie mit dem Cmdlet Set-DSCLocalConfigurationManager eine MOF-Metakonfigurationsdatei auf den Computer an. Erfordert die Angabe des Pfads zur MOF-Metakonfigurationsdatei.

Set-DSCLocalConfigurationManager -Path 'c:\metaconfig\localhost.meta.mof' -Verbose

Windows PowerShell DSC-Protokolldateien

Protokolle für DSC werden in das Windows-Ereignisprotokoll Microsoft-Windows-Dsc/Operational geschrieben. Sie können andere Protokolle für Debuggingzwecke aktivieren, indem Sie die Schritte unter Where Are DSC Event Logs (Where Are DSC Event Logs) ausführen.