DSC-resurser

Gäller för Windows PowerShell 4.0 och uppåt.

Översikt

Desired State Configuration (DSC) Resurser utgör byggstenarna för en DSC-konfiguration. En resurs exponerar egenskaper som kan konfigureras (schema) och innehåller De PowerShell-skriptfunktioner som LCM (Local Konfigurationshanteraren) anropar för att "göra det".

En resurs kan modellera något så generiskt som en fil eller så specifikt som en IIS-serverinställning. Grupper av liknande resurser kombineras i 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 vilken syntax som behövs för att använda resursen i en konfiguration. Schemat för en resurs kan definieras på följande sätt:

  • Schema.Mof fil: De flesta resurser definierar sitt schema i en fil med hjälp schema.mof av Managed Object Format.
  • <Resource Name>.schema.psm1 fil: Sammansatta resurser definierar sitt schema i en fil med hjälp <ResourceName>.schema.psm1 av parameterblocket.
  • <Resource Name>.psm1 fil: Klassbaserade DSC-resurser definierar sitt schema i klassdefinitionen. Syntaxobjekt betecknas som klassegenskaper. Mer information finns i about_Classes.

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

Get-DscResource -Syntax Service

De utdata som visas bör likna utdata nedan, även om den här resursens syntax kan ändras i framtiden. Precis som cmdlet-syntax är nycklarna inom hakparenteser valfria. Typerna anger vilken typ av data som varje nyckel förväntar sig.

Anteckning

Se till att nyckeln är valfri eftersom standardvärdet är "Närvarande".

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 inte klassbaserade DSC-resurser.

I en konfiguration kan ett tjänstresursblock se ut så här för att säkerställa att bufferttjänsten körs.

Anteckning

Innan du använder en resurs i en konfiguration måste du importera den med 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"
        }
    }
}

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

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 har IntelliSense lagts till för DSC. Med den här nya funktionen kan du använda TABB- och Ctr-utrymme + för att komplettera nyckelnamn automatiskt.

Resurs IntelliSense med tabslutföring

Typer av resurser

Windows levereras med inbyggda resurser och Linux har OS-specifika resurser. Det finns resurser för beroenden mellan noder,pakethanteringsresurser samt resurser som ägs och underhålls av communityn. Du kan använda stegen ovan för att fastställa syntaxen för dessa resurser och hur du använder dem. De sidor som betjänar dessa resurser har arkiverats under Referens.

Inbyggda resurser i Windows

Beroenderesurser mellan noder

Pakethanteringsresurser

Linux-resurser