Delen via


DSC-resources

Van toepassing op Windows PowerShell 4.0 en hoger.

Overzicht

Desired State Configuration resources (DSC) bieden de bouwstenen voor een DSC-configuratie. Een resource geeft eigenschappen weer die kunnen worden geconfigureerd (schema) en bevat de PowerShell-scriptfuncties die door LCM (Local Configuration Manager) worden aangeroepen om dit zo te maken.

Een resource kan iets zo algemeen als een bestand of zo specifiek als een IIS-serverinstelling modelleren. Groepen van dergelijke resources worden gecombineerd in een DSC-module, die alle vereiste bestanden in een structuur ordent die draagbaar is en metagegevens bevat om te bepalen hoe de resources moeten worden gebruikt.

Elke resource heeft een *schema dat de syntaxis bepaalt die nodig is om de resource in een configuratie te gebruiken. Het schema van een resource kan op de volgende manieren worden gedefinieerd:

  • Schema.Mofbestand: de meeste resources definiëren hun schema in een schema.mof bestand met behulp van managed object format.
  • <Resource Name>.schema.psm1 bestand: samengestelde resources definiëren hun schema in een <ResourceName>.schema.psm1 bestand met behulp van een parameterblok.
  • <Resource Name>.psm1 bestand: DSC-resources op basis van klassen definiëren hun schema in de klassedefinitie. Syntaxisitems worden aangeduid als klasse-eigenschappen. Zie about_Classes voor meer informatie.

Als u de syntaxis voor een DSC-resource wilt ophalen, gebruikt u de cmdlet Get-DSCResource met de parameter Syntaxis . Dit gebruik is vergelijkbaar met het gebruik van Get-Command met de parameter Syntaxis om de syntaxis van de cmdlet op te halen. De uitvoer die u ziet, toont de sjabloon die wordt gebruikt voor een resourceblok voor de resource die u opgeeft.

Get-DscResource -Syntax Service

De uitvoer die u ziet, moet vergelijkbaar zijn met de onderstaande uitvoer, hoewel de syntaxis van deze resource in de toekomst kan veranderen. Net als de syntaxis van de cmdlet zijn de sleutels tussen vierkante haken optioneel. De typen geven aan welk type gegevens elke sleutel verwacht.

Notitie

De sleutel Ensure is optioneel omdat deze standaard is ingesteld op 'Presenteren'.

Service [String] #ResourceName
{
    Name = [string]
    [BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
    [Credential = [PSCredential]]
    [Dependencies = [string[]]]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DisplayName = [string]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [string]]
    [PsDscRunAsCredential = [PSCredential]]
    [StartupType = [string]{ Automatic | Disabled | Manual }]
    [State = [string]{ Running | Stopped }]
}

Notitie

In PowerShell-versies lager dan 7.0 vindt Get-DscResource u geen DSC-resources op basis van klassen.

In een configuratie kan een serviceresourceblok er als volgt uitzien om ervoor te zorgen dat de Spooler-service wordt uitgevoerd.

Notitie

Voordat u een resource in een configuratie gebruikt, moet u deze importeren met Behulp van Import-DSCResource.

Configuration TestConfig
{
    # It is best practice to always directly import resources, even if the
    # resource is a built-in resource.
    Import-DSCResource -Name Service
    Node localhost
    {
        # The name of this resource block, can be anything you choose, as l
        # ong as it is of type [String] as indicated by the schema.
        Service "Spooler - Running"
        {
            Name = "Spooler"
            State = "Running"
        }
    }
}

Configuraties kunnen meerdere exemplaren van hetzelfde resourcetype bevatten. Elk exemplaar moet een unieke naam hebben. In het volgende voorbeeld wordt een tweede serviceresourceblok toegevoegd om de DHCP-service te configureren.

Configuration TestConfig
{
    # It is best practice to always directly import resources, even if the
    # resource is a built-in resource.
    Import-DSCResource -Name Service
    Node localhost
    {
        # The name of this resource block, can be anything you choose, as
        # long as it is of type [String] as indicated by the schema.
        Service "Spooler - Running"
        {
            Name = "Spooler"
            State = "Running"
        }

        # To configure a second service resource block, add another Service
        # resource block and use a unique name.
        Service "DHCP - Running"
        {
            Name = "DHCP"
            State = "Running"
        }
    }
}

Notitie

Vanaf PowerShell 5.0 is IntelliSense toegevoegd voor DSC. Met deze nieuwe functie kunt u TAB en Ctr-spatie+ gebruiken om sleutelnamen automatisch in te vullen.

Resource IntelliSense met behulp van tabvoltooiing

Typen resources

Windows wordt geleverd met ingebouwde resources en Linux heeft besturingssysteemspecifieke resources. Er zijn resources voor afhankelijkheden tussen knooppunten, pakketbeheerresources en resources die eigendom zijn van de community en worden onderhouden. U kunt de bovenstaande stappen gebruiken om de syntaxis van deze resources te bepalen en hoe ze moeten worden gebruikt. De pagina's die voor deze resources worden gebruikt, zijn gearchiveerd onder Verwijzing.

Ingebouwde Windows-resources

Resources voor afhankelijkheid tussen knooppunten

Pakketbeheerresources

Linux-resources