DSC-Konfigurationen
Gilt für: PowerShell 7, Azure-Computerkonfiguration
DSC-Konfigurationen sind PowerShell-Skripts, die eine spezielle Art von Befehl definieren. Verwenden Sie zum Definieren einer Konfiguration das PowerShell-Schlüsselwort configuration
.
Configuration MyDscConfiguration {
Environment FirstEnvironmentVariable {
Ensure = 'Present'
Name = 'Foo'
Value = 'Example'
}
Environment SecondEnvironmentVariable {
Ensure = 'Present'
Name = 'Bar'
Value = 'Another'
}
}
MyDscConfiguration
Speichern Sie das Skript als .ps1
Datei.
Konfigurationssyntax
Ein DSC-Konfigurationsskript besteht aus den folgenden Teilen:
- Der
Configuration
-Block. Dies ist der äußerste Skriptblock. Sie definieren es mit dem schlüsselwortConfiguration
und geben einen Namen an. In diesem Fall ist der Name der DSC-KonfigurationMyDscConfiguration
. - Mindestens ein DSC-Ressourcenblock. Hier definiert die DSC-Konfiguration die Einstellungen für die Komponente, die sie konfiguriert. In diesem Fall gibt es zwei DSC-Ressourcenblöcke. Beide verwenden die
Environment
DSC-Ressource.
Kompilieren der Konfiguration
Bevor Sie eine DSC-Konfiguration verwenden können, müssen Sie sie in ein MOF-Dokument kompilieren. Dazu rufen Sie die DSC-Konfiguration wie eine PowerShell-Funktion auf. Die letzte Zeile des Beispiels, die nur den Namen der DSC-Konfiguration enthält, führt die DSC-Konfiguration aus.
Anmerkung
Um eine DSC-Konfiguration aufzurufen, muss sie im aktuellen Bereich (wie bei jeder anderen PowerShell-Funktion) geladen werden. Sie können dies entweder durch "Dot-Sourcing" des Skripts oder durch Ausführen des Skripts mit F5- oder durch Klicken auf die Schaltfläche Ausführen von Skripts in VS Code vornehmen. Um das Skript zu dotieren, führen Sie den Befehl . .\myConfig.ps1
aus, wobei myConfig.ps1
der Name der Skriptdatei ist, die Ihre DSC-Konfiguration enthält.
Wenn Sie die DSC-Konfiguration aufrufen, wird folgendes aufgerufen:
- Erstellt einen Ordner im aktuellen Verzeichnis mit demselben Namen wie die DSC-Konfiguration.
- Erstellt eine Datei namens
localhost.mof
im neuen Verzeichnis.
Anmerkung
Die MOF-Datei enthält alle Konfigurationsinformationen für das System. Aus diesem Gründen ist es wichtig, es sicher zu halten.
Verwenden neuer DSC-Ressourcen in Ihrer DSC-Konfiguration
Wenn Sie die vorherigen Beispiele ausgeführt haben, haben Sie möglicherweise bemerkt, dass Sie gewarnt wurden, dass Sie eine Ressource verwendet haben, ohne sie explizit zu importieren.
Mit dem Cmdlet Get-DscResource können Sie ermitteln, welche Ressourcen auf dem System installiert sind und zur Verwendung verfügbar sind. Auch wenn ihre Module in $env:PSModulePath
platziert wurden und von Get-DscResource
erkannt werden, müssen sie immer noch in Ihrer DSC-Konfiguration geladen werden.
Import-DscResource
ist ein dynamisches Schlüsselwort, das nur innerhalb eines Configuration
Blocks erkannt werden kann. Es ist kein Cmdlet.
Import-DscResource
unterstützt zwei Parameter:
-
ModuleName- wird empfohlen,
Import-DscResource
zu verwenden. Er akzeptiert den Namen des Moduls, das die zu importierenden Ressourcen enthält (sowie ein Zeichenfolgenarray von Modulnamen). -
Name ist der Name der zu importierenden Ressource. Dies ist nicht der Anzeigename, der als Name Eigenschaft des Rückgabeobjekts
Get-DscResource
zurückgegeben wird, aber der Klassenname, der beim Definieren des Ressourcenschemas verwendet wird (die ResourceType- eigenschaft des objekts, das vonGet-DscResource
zurückgegeben wird).
Weitere Informationen zur Verwendung von Import-DSCResource
finden Sie unter Using Import-DSCResource
Wichtig
Es gibt eine Einschränkung in der Computerkonfiguration, die verhindert, dass eine DSC-Ressource powerShell-Cmdlets verwendet, die nicht in PowerShell selbst oder in einem Modul im PowerShell-Katalog enthalten sind. DSC-Ressourcen, die Cmdlets aus einem oder mehreren Windows-Modulen verwenden, funktionieren nicht in der Computerkonfiguration.