Risorse DSC

Si applica a Windows PowerShell 4.0 e versioni successive.

Informazioni generali

Le risorse DSC (Desired State Configuration) forniscono i blocchi predefiniti per una configurazione DSC. Una risorsa espone le proprietà che possono essere configurate (schema) e contiene le funzioni di script di PowerShell che Gestione configurazione locale (LCM) chiama per "renderlo tale".

Una risorsa può modellare un elemento generico come un file o specifico come un'impostazione del server IIS. Gruppi di risorse simili vengono combinati in un modulo DSC, che organizza tutti i file necessari in una struttura portabile e include metadati per identificare il modo in cui le risorse devono essere utilizzate.

Ogni risorsa ha uno schema che determina la sintassi necessaria per utilizzare la risorsa in una configurazione. Lo schema di una risorsa può essere definito nei modi seguenti:

  • Schema.Mof file: la maggior parte delle risorse definisce il proprio schema in un schema.mof file, utilizzando il formato oggetto gestito.
  • <Resource Name>.schema.psm1 file: le risorse composite definiscono il loro schema in un <ResourceName>.schema.psm1 file utilizzando un blocco di parametri.
  • <Resource Name>.psm1 file: le risorse DSC basate su classi definiscono lo schema nella definizione della classe. Gli elementi della sintassi sono indicati come proprietà della classe. Per altre informazioni, vedere about_Classes.

Per recuperare la sintassi per una risorsa DSC, usare il cmdlet Get-DSCResource con il parametro Syntax . Questo utilizzo è simile all'uso di Get-Command con il parametro Syntax per ottenere la sintassi del cmdlet. L'output visualizzato mostrerà il modello utilizzato per un blocco di risorse per la risorsa specificata.

Get-DscResource -Syntax Service

L'output visualizzato dovrebbe essere simile all'output seguente, anche se la sintassi di questa risorsa potrebbe cambiare in futuro. Analogamente alla sintassi dei cmdlet, i tasti visualizzati tra parentesi quadre sono facoltativi. I tipi specificano il tipo di dati previsto da ogni chiave.

Annotazioni

Il tasto Ensure è facoltativo perché per impostazione predefinita è "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 }]
}

Annotazioni

Nelle versioni di PowerShell precedenti alla 7.0, Get-DscResource non trova risorse DSC basate su classi.

All'interno di una configurazione, un blocco di risorse del servizio potrebbe essere simile al seguente per garantire che il servizio spooler sia in esecuzione.

Annotazioni

Prima di utilizzare una risorsa in una configurazione, è necessario importarla utilizzando 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"
        }
    }
}

Le configurazioni possono contenere più istanze dello stesso tipo di risorsa. Ogni istanza deve avere un nome univoco. Nell'esempio seguente viene aggiunto un secondo blocco di risorse Service per configurare il servizio "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"
        }
    }
}

Annotazioni

A partire da PowerShell 5.0, IntelliSense è stato aggiunto per DSC. Questa nuova funzionalità consente di utilizzare TAB e Ctr+Spazio per completare automaticamente i nomi dei tasti.

IntelliSense delle risorse tramite Completamento tramite tabulazione

Tipi di risorse

Windows viene fornito con risorse integrate e Linux ha risorse specifiche del sistema operativo. Sono disponibili risorse per le dipendenze tra nodi, risorse per la gestione dei pacchetti, nonché risorse di proprietà e gestite dalla comunità. È possibile utilizzare i passaggi precedenti per determinare la sintassi di queste risorse e come utilizzarle. Le pagine che servono queste risorse sono state archiviate sotto Reference.

Risorse integrate di Windows

Risorse di dipendenza tra nodi

Risorse per la gestione dei pacchetti

Risorse Linux

Le risorse DSC per Linux sono deprecate. Per altre informazioni, vedere Risorse DSC per Linux.