DSC-resurser

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

Översikt

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

En resurs kan modellera något så allmänt som en fil eller så specifik 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 bestämmer vilken syntax som krä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 sitt schema i en schema.mof fil med hjälp av hanterat objektformat.
  • <Resource Name>.schema.psm1 fil: Sammansatta resurser definierar sitt schema i en <ResourceName>.schema.psm1 fil med hjälp av ett parameterblock.
  • <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 syntaxparametern . Den här användningen liknar att använda Get-Command med syntaxparametern för att hämta cmdlet-syntax. Utdata som visas visar mallen som används för ett resursblock för den resurs som du anger.

Get-DscResource -Syntax Service

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 som visas inom hakparenteser valfria. Typerna anger vilken typ av data som varje nyckel förväntar sig.

Anteckning

Nyckeln Se till är valfri eftersom den som standard är "Present".

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

I en konfiguration kan ett tjänstresursblock se ut så här för att kontrollera att Spooler-tjä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 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 TAB och Ctr+Space för att automatiskt slutföra nyckelnamn.

Resurs intelliSense med tabbifyllning

Typer av resurser

Windows levereras med inbyggda resurser och Linux har os-specifika resurser. Det finns resurser för beroenden mellan noder, pakethanteringsresurser samt communityägda och underhållna resurser. 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