DSC-resources

Is van toepassing Windows PowerShell 4.0 en hoger.

Overzicht

Desired State Configuration resources (DSC) bieden de bouwstenen voor een DSC-configuratie. Een resource toont eigenschappen die kunnen worden geconfigureerd (schema) en bevat de PowerShell-scriptfuncties die door local Configuration Manager (LCM) worden aanroept om dit te doen.

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

Elke resource heeft een *schema dat bepaalt welke syntaxis nodig is voor het gebruik van de resource in een configuratie. Het schema van een resource kan op de volgende manieren worden gedefinieerd:

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

Als u de syntaxis voor een DSC-resource wilt ophalen, gebruikt u de cmdlet Get-DSCResource met de parameter Syntax. Dit gebruik is vergelijkbaar met het gebruik van Get-Command met de syntaxisparameter om de syntaxis van de cmdlet op te halen. In de uitvoer die u ziet, ziet u 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 cmdlet-syntaxis zijn de sleutels tussen vierkante haken optioneel. De typen geven het type gegevens op dat door elke sleutel wordt verwacht.

Notitie

De sleutel Controleren is optioneel omdat deze standaard is ingesteld op Aanwezig.

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 u geen op klasse Get-DscResource gebaseerde DSC-resources.

Binnen een configuratie kan een serviceresourceblok er als dit 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 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 + Space gebruiken om sleutelnamen automatisch in te vullen.

Resource IntelliSense met Tab Completion

Typen resources

Windows wordt geleverd met ingebouwde resources en Linux heeft besturingssysteemspecifieke resources. Er zijn resources voor afhankelijkheden tussen knooppunt enpakketbeheerbronnen, evenals 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 u deze kunt gebruiken. De pagina's die deze resources dienen, zijn gearchiveerd onder Verwijzing.

Ingebouwde Windows-resources

Afhankelijkheden tussen knooppuntbronnen

Package Management-resources

Linux-resources