about_DesiredStateConfiguration
KURZE BESCHREIBUNG
Bietet eine kurze Einführung in das Feature powerShell Desired State Configuration (DSC).
LANGE BESCHREIBUNG
DSC ist eine Verwaltungsplattform in PowerShell, die das Bereitstellen und Verwalten von Konfigurationsdaten für Softwaredienste sowie die Verwaltung der Umgebung ermöglicht, in der diese Dienste ausgeführt werden.
DSC stellt eine Reihe von PowerShell-Spracherweiterungen, neuen Cmdlets und Ressourcen bereit, mit denen Sie deklarativ angeben können, wie der Zustand Ihrer Softwareumgebung konfiguriert werden soll. DSC bietet außerdem eine Möglichkeit zum Warten und Verwalten vorhandener Konfigurationen.
DSC wird in PowerShell 4.0 eingeführt.
Ausführliche Informationen zu DSC finden Sie unter Übersicht über PowerShell Desired State Configuration in der TechNet-Bibliothek.
ENTWICKELN VON DSC-RESSOURCEN MIT KLASSEN
Ab PowerShell 5.0 können Sie DSC-Ressourcen mithilfe von Klassen entwickeln. Weitere Informationen finden Sie unter about_Classes und Schreiben einer benutzerdefinierten DSC-Ressource mit PowerShell-Klassen in Microsoft TechNet.
VERWENDEN VON DSC
Wenn Sie DSC zum Konfigurieren Ihrer Umgebung verwenden möchten, definieren Sie zunächst einen PowerShell-Skriptblock mithilfe des Konfigurations-Schlüsselwort (keyword), gefolgt von einem Bezeichner, dem wiederum das Paar geschweifter Klammern folgt, die den Block trennen. Innerhalb des Konfigurationsblocks können Sie Knotenblöcke definieren, die den gewünschten Konfigurationszustand für jeden Knoten (Computer) in der Umgebung angeben. Ein Knotenblock beginnt mit dem Knoten-Schlüsselwort (keyword), gefolgt vom Namen des Zielcomputers, bei dem es sich um eine Variable handeln kann. Nach dem Computernamen folgen die geschweiften Klammern, die den Knotenblock trennen. Innerhalb des Knotenblocks können Sie Ressourcenblöcke definieren, um bestimmte Ressourcen zu konfigurieren. Ein Ressourcenblock beginnt mit dem Typnamen der Ressource, gefolgt von dem Bezeichner, den Sie für diesen Block angeben möchten, gefolgt von den geschweiften Klammern, die den Block trennen, 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
DependsOn = "[WindowsFeature]IIS" # Use for dependencies
}
}
}
Um eine Konfiguration zu erstellen, rufen Sie den Konfigurationsblock auf die gleiche Weise auf, wie Sie eine PowerShell-Funktion aufrufen würden, und übergeben Sie alle erwarteten Parameter, die Sie möglicherweise definiert haben (zwei im obigen Beispiel). In diesem Fall beispielsweise:
MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
"\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\temp"
# OutputPath is optional
Dadurch wird eine MOF-Datei pro Knoten am angegebenen Pfad generiert. Diese MOF-Dateien geben die gewünschte Konfiguration für jeden Knoten an. Verwenden Sie als Nächstes das folgende Cmdlet, um die MOF-Konfigurationsdateien zu analysieren, jedem Knoten die entsprechende Konfiguration zu senden und diese Konfigurationen zu erlassen. Beachten Sie, dass Sie keine separate MOF-Datei für klassenbasierte DSC-Ressourcen erstellen müssen.
Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\temp"
VERWENDEN VON DSC ZUM BEIBEHALTEN DES KONFIGURATIONSZUSTANDS
Mit DSC ist die Konfiguration idempotent. Dies bedeutet, dass der resultierende Konfigurationszustand immer gleich ist, wenn Sie DSC verwenden, um dieselbe Konfiguration mehrmals zu erzwischen. Wenn Sie daher vermuten, dass Knoten in Ihrer Umgebung möglicherweise vom gewünschten Konfigurationsstatus abweichen, können Sie die gleiche DSC-Konfiguration erneut anwenden, um sie wieder in den gewünschten Zustand zu versetzen. Sie müssen das Konfigurationsskript nicht ändern, um nur die Ressourcen zu adressieren, deren Zustand vom gewünschten Zustand abweicht.
Das folgende Beispiel zeigt, wie Sie überprüfen können, ob der tatsächliche Konfigurationsstatus auf einem bestimmten Knoten von der letzten DSC-Konfiguration auf dem Knoten abweicht. In diesem Beispiel wird die Konfiguration des lokalen Computers überprüft.
$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session
INTEGRIERTE DSC-RESSOURCEN
Sie können die folgenden integrierten Ressourcen in Ihren Konfigurationsskripts verwenden:
Name | Eigenschaften |
---|---|
Datei | {DestinationPath, Attributes, Checksum, Content...} |
Archivieren | {Ziel, Pfad, Prüfsumme, Anmeldeinformationen...} |
Environment | {Name, DependsOn, Ensure, Path...} |
Gruppieren | {GroupName, Credential, DependsOn, Description...} |
Log | {Message, DependsOn, PsDscRunAsCredential} |
Paket | {Name, Pfad, ProductId, Argumente...} |
Registrierung | {Key, ValueName, DependsOn, Ensure...} |
Skript | {GetScript, SetScript, TestScript, Credential...} |
Dienst | {Name, BuiltInAccount, Credential, Dependencies...} |
Benutzer | {UserName, DependsOn, Description, Disabled...} |
WaitForAll | {NodeName, ResourceName, DependsOn, psDscRunAsC...} |
WaitForAny | {NodeName, ResourceName, DependsOn, psDscRunAsC...} |
WaitForSome | {NodeCount, NodeName, ResourceName, DependsOn...} |
WindowsFeature | {Name, Anmeldeinformationen, DependsOn, Sicherstellen...} |
WindowsOptionalFeature | {Name, DependsOn, Ensure, LogLevel...} |
WindowsProcess | {Arguments, Path, Credential, DependsOn...} |
Führen Sie das Cmdlet Get-DscResource aus, um eine Liste der verfügbaren DSC-Ressourcen auf Ihrem System zu erhalten.
Das Beispiel in diesem Thema veranschaulicht die Verwendung der Ressourcen File und WindowsFeature. Um alle Eigenschaften anzuzeigen, die Sie mit einer Ressource verwenden können, fügen Sie den Cursor in das Ressourcen-Schlüsselwort (keyword) (z. B. Datei) in Ihrem Konfigurationsskript in PowerShell ISE ein, halten Sie STRG gedrückt, und drücken Sie dann die LEERTASTE.
WEITERE RESSOURCEN FINDEN
Sie können viele andere verfügbare DSC-Ressourcen herunterladen, installieren und mehr darüber erfahren, die von der PowerShell- und DSC-Benutzercommunity und von Microsoft erstellt wurden. Besuchen Sie die PowerShell-Katalog, um die verfügbaren DSC-Ressourcen zu durchsuchen und zu erfahren.
SIEHE AUCH
Übersicht über PowerShell-Desired State Configuration
Integrierte PowerShell-Desired State Configuration-Ressourcen
Erstellen von benutzerdefinierten PowerShell-Desired State Configuration-Ressourcen