Risorse DSCDSC Resources

Si applica a Windows PowerShell 4.0 e versioni successive.Applies to Windows PowerShell 4.0 and up.

PanoramicaOverview

Le risorse DSC (Desired State Configuration) forniscono i blocchi predefiniti per una configurazione DSC.Desired State Configuration (DSC) Resources provide the building blocks for a DSC configuration. Una risorsa espone le proprietà che possono essere configurate (schema) e contiene le funzioni di script di PowerShell chiamate da Gestione configurazione locale per assicurare il risultato desiderato.A resource exposes properties that can be configured (schema) and contains the PowerShell script functions that the Local Configuration Manager (LCM) calls to "make it so".

Una risorsa può modellare un elemento generico come un file o uno specifico come un'impostazione del server IIS.A resource can model something as generic as a file or as specific as an IIS server setting. I gruppi di tali risorse sono combinati in un modulo DSC, che organizza tutti i file necessari in una struttura portatile che include i metadati che permettono di identificare il modo in cui si intende usare le risorse.Groups of like resources are combined in to a DSC Module, which organizes all the required files in to a structure that is portable and includes metadata to identify how the resources are intended to be used.

Ogni risorsa dispone di uno *schema che determina la sintassi necessaria per usare la risorsa in una configurazione.Each resource has a *schema that determines the syntax needed to use the resource in a Configuration. Lo schema di una risorsa può essere definito nei modi seguenti:A resource's schema can be defined in the following ways:

  • File Schema.Mof: la maggior parte delle risorse definisce lo schema in un file schema.mof con Managed Object Format.Schema.Mof file: Most resources define their schema in a schema.mof file, using Managed Object Format.
  • File <Resource Name>.schema.psm1: le risorse composite definiscono lo schema in un file <ResourceName>.schema.psm1 con un blocco di parametri.<Resource Name>.schema.psm1 file: Composite Resources define their schema in a <ResourceName>.schema.psm1 file using a Parameter Block.
  • File <Resource Name>.psm1: le risorse DSC basate su classe definiscono lo schema nella definizione della classe.<Resource Name>.psm1 file: Class based DSC resources define their schema in the class definition. Gli elementi della sintassi sono contrassegnati come proprietà della classe.Syntax items are denoted as Class properties. Per altre informazioni, vedere about_Classes.For more information, see about_Classes.

Per recuperare la sintassi per una risorsa DSC, usare il cmdlet Get-DSCResource con il parametro Syntax.To retrieve the syntax for a DSC resource, use the Get-DSCResource cmdlet with the Syntax parameter. Questo utilizzo è simile all'uso di Get-Command con il parametro Syntax per ottenere la sintassi del cmdlet.This usage is similar to using Get-Command with the Syntax parameter to get cmdlet syntax. L'output visualizzato indicherà il modello usato per un blocco di risorse per la risorsa specificata.The output you see will show the template used for a resource block for the resource you specify.

Get-DscResource -Syntax Service

L'output visualizzato dovrebbe essere simile all'output seguente, anche se la sintassi di questa risorsa potrebbe cambiare in futuro.The output you see should be similar to the output below, though this resource's syntax could change in the future. Come nella sintassi dei cmdlet, le chiavi racchiuse tra parentesi quadre sono facoltative.Like cmdlet syntax, the keys seen in square brackets, are optional. I tipi specificano il tipo di dati previsto da ogni chiave.The types specify the type of data each key expects.

Nota

La chiave Ensure è facoltativa perché l'impostazione predefinita è "Present".The Ensure key is optional because it defaults to "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 }]
}

Nota

Nelle versioni di PowerShell precedenti alla 7.0, Get-DscResource non trova risorse DSC basate su classi.In PowerShell versions below 7.0, Get-DscResource does not find Class based DSC resources.

All'interno di una configurazione, un blocco di risorse Service potrebbe avere questo aspetto per assicurare ( Ensure ) che il servizio spooler sia in esecuzione.Inside a Configuration, a Service resource block might look like this to Ensure that the Spooler service is running.

Nota

Prima di usare una risorsa in una configurazione, è necessario importarla tramite Import-DSCResource.Before using a resource in a Configuration, you must import it using 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.Configurations can contain multiple instances of the same resource type. Ogni istanza deve essere denominata in modo univoco.Each instance must be uniquely named. Nell'esempio seguente viene aggiunto un secondo blocco di risorse Service per configurare il servizio "DHCP".In the following example, a second Service resource block is added to configure the "DHCP" service.

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

Nota

A partire da PowerShell 5.0 è stato aggiunto IntelliSense per DSC.Beginning in PowerShell 5.0, IntelliSense was added for DSC. Questa nuova funzionalità consente di usare TAB e CTRL+BARRA SPAZIATRICE per il completamento automatico dei nomi delle chiavi.This new feature allows you to use TAB and Ctr+Space to auto-complete key names.

IntelliSense con completamento tramite TAB

Tipi di risorseTypes of resources

Windows include risorse predefinite e Linux ha risorse specifiche del sistema operativo.Windows comes with built in resources and Linux has OS specific resources. Sono disponibili risorse per le dipendenze tra nodi, risorse di gestione dei pacchetti, nonché risorse gestite e di proprietà della community.There are resources for cross-node dependencies, package management resources, as well ascommunity owned and maintained resources. È possibile usare i passaggi precedenti per determinare la sintassi di queste risorse e come usarle.You can use the above steps to determine the syntax of these resources and how to use them. Le pagine relative a queste risorse sono archiviate in Riferimento.The pages that serve these resources have been archived under Reference.

Risorse predefinite di WindowsWindows built-in resources

Risorse per le dipendenze tra nodiCross-Node dependency resources

Risorse di gestione pacchettiPackage Management resources

Risorse di LinuxLinux resources