DSC-Konfigurationen
Gilt für: PowerShell 7, das Azure Automanage-Computerkonfigurationsfeature
DSC-Konfigurationen sind PowerShell-Skripts, die eine spezielle Art von Befehl definieren. Verwenden Sie zum Definieren einer Konfiguration die PowerShell-Schlüsselwort (keyword) 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 die äußerste Skriptblock. Sie definieren sie mit demConfiguration
Schlüsselwort (keyword) und geben einen Namen an. In diesem Fall lautetMyDscConfiguration
der Name der DSC-Konfiguration . - 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. Hierzu 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.
Hinweis
Um eine DSC-Konfiguration aufzurufen, muss sie im aktuellen Bereich geladen werden (wie bei jeder anderen PowerShell-Funktion). Sie können dies entweder durch "Punktsourcing" des Skripts oder durch Ausführen des Skripts mit F5 oder durch Klicken auf die Schaltfläche Skript ausführen in VS Code erreichen. 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, erfolgt Folgendes:
- Erstellt einen Ordner im aktuellen Verzeichnis mit demselben Namen wie die DSC-Konfiguration.
- Erstellt eine Datei namens
localhost.mof
im neuen Verzeichnis.
Hinweis
Die MOF-Datei enthält alle Konfigurationsinformationen für das System. Aus diesem Grund ist es wichtig, sie geschützt zu halten.
Verwenden neuer DSC-Ressourcen in Ihrer DSC-Konfiguration
Wenn Sie die vorherigen Beispielen ausgeführt haben, werden Sie vielleicht die Warnung bemerkt haben, dass Sie eine Ressource verwendet haben, ohne sie explizit zu importieren.
Sie können das Cmdlet Get-DscResource verwenden, um zu bestimmen, welche Ressourcen auf dem System installiert 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 eine dynamische Schlüsselwort (keyword), die nur innerhalb eines Configuration
Blocks erkannt werden kann. Es handelt sich nicht um ein Cmdlet. Import-DscResource
unterstützt zwei Parameter:
- ModuleName ist die empfohlene Methode zur Verwendung
Import-DscResource
von . Dieser Parameter akzeptiert den Namen des Moduls mit den Ressourcen, die importiert werden sollen, (sowie einem Zeichenfolgenarray mit Modulnamen). - Name ist der Name der zu importierenden Ressource. Dies ist nicht der Anzeigename, der als Name-Eigenschaft des
Get-DscResource
Rückgabeobjekts zurückgegeben wird, sondern der Klassenname, der beim Definieren des Ressourcenschemas verwendet wird (die ResourceType-Eigenschaft des von zurückgegebenenGet-DscResource
Objekts).
Weitere Informationen zur Verwendung von Import-DSCResource
finden Sie unter Verwenden von „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 auf der PowerShell-Katalog enthalten sind. DSC-Ressourcen, die Cmdlets aus mindestens einem Windows-Modul verwenden, funktionieren nicht in der Computerkonfiguration.