DSC-resurser

Gäller för Windows PowerShell 4,0 och uppåt.

Översikt

DSC-resurser (Desired State Configuration) tillhandahåller Bygg stenar för en DSC-konfiguration. En resurs exponerar egenskaper som kan konfigureras (schema) och innehåller PowerShell-skript som de lokala Configuration Manager (LCM) anropar för att göra det.

En resurs kan modellera något som generiskt som en fil eller som en inställning för IIS-servern. Grupper av resurser som är kombinerade i till en DSC-modul som organiserar alla nödvändiga filer i en struktur som är portabel och innehåller metadata för att identifiera hur resurserna är avsedda att användas.

Varje resurs har ett *-schema som avgör den syntax som behövs för att använda resursen i en konfiguration. En resurs schema kan definieras på följande sätt:

  • Schema.Mof fil: de flesta resurser definierar schemat i en schema.mof fil med hjälp av Managed Object Format.
  • <Resource Name>.schema.psm1 fil: sammansatta resurser definierar deras schema i en <ResourceName>.schema.psm1 fil med hjälp av ett parameter block.
  • <Resource Name>.psm1 fil: klassbaserade DSC-resurser definierar deras schema i klass definitionen. Objekt betecknas som klass egenskaper. Mer information finns i about_Classes.

Om du vill hämta syntaxen för en DSC-resurs använder du cmdleten Get-dscresource Keyword Supports med parametern syntax . Den här användningen liknar att använda Get-Command med parametern syntax för att hämta cmdlet-syntaxen. De utdata som visas visar den mall som används för ett resurs block för den resurs som du anger.

Get-DscResource -Syntax Service

De utdata du ser liknar utdata nedan, men den här resursens syntax kan ändras i framtiden. Precis som cmdlet-syntaxen är de nycklar som visas i hakparenteser valfria. Typerna anger vilken typ av data varje nyckel förväntar sig.

Anteckning

Nyckeln säkerställer att nyckeln är valfri eftersom den används som standard.

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 }]
}

Anteckning

I PowerShell-versioner under 7,0 Get-DscResource hittar du inte klassbaserade DSC-resurser.

I en konfiguration kan ett tjänst resurs block se ut så här för att säkerställa att Spooler-tjänsten körs.

Anteckning

Innan du använder en resurs i en konfiguration måste du importera den med hjälp av import-dscresource Keyword Supports.

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"
        }
    }
}

Konfigurationer kan innehålla flera instanser av samma resurs typ. Varje instans måste ha ett unikt namn. I följande exempel läggs ett andra tjänst resurs block till för att konfigurera tjänsten "DHCP".

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"
        }
    }
}

Anteckning

Från och med PowerShell 5,0 lades IntelliSense till för DSC. Med den här nya funktionen kan du använda TABB -och + rymd utrymme för att komplettera nyckel namn automatiskt.

Resurs-IntelliSense med tabb-slutförande

Typer av resurser

Windows levereras med inbyggda resurser och Linux har leverantörsspecifika resurser. Det finns resurser för över-nod-beroenden, paket hanterings resurser samt ägda och bevarade resurser. Du kan använda ovanstående steg för att fastställa syntaxen för dessa resurser och hur du använder dem. De sidor som hanterar dessa resurser har arkiverats under referens.

Inbyggda resurser i Windows

Beroende resurser mellan noder

Paket hanterings resurser

Linux-resurser