Partager via


Ressources DSC

S’applique à Windows PowerShell 4.0 et versions ultérieures.

Aperçu

Les ressources DSC (Desired State Configuration) fournissent les blocs de construction d’une configuration DSC. Une ressource expose des propriétés qui peuvent être configurées (schéma) et contient les fonctions de script PowerShell que le gestionnaire de configuration locale (LCM) appelle pour « faire en sorte qu’il en soit ainsi ».

Une ressource peut modéliser quelque chose d’aussi générique qu’un fichier ou d’aussi spécifique qu’un paramètre de serveur IIS. Des groupes de ressources similaires sont regroupés dans un module DSC, qui organise tous les fichiers requis dans une structure portable et inclut des métadonnées pour identifier la façon dont les ressources sont censées être utilisées.

Chaque ressource dispose d’un schéma *schema qui détermine la syntaxe nécessaire à l’utilisation de la ressource dans une configuration. Le schéma d’une ressource peut être défini de la manière suivante :

  • Schema.Mof file : la plupart des ressources définissent leur schéma dans un fichier, à l’aide du schema.mofformat d’objet géré.
  • <Resource Name>.schema.psm1 file : les ressources composites définissent leur schéma dans un <ResourceName>.schema.psm1 fichier à l’aide d’un bloc de paramètres.
  • <Resource Name>.psm1 file : les ressources DSC basées sur des classes définissent leur schéma dans la définition de classe. Les éléments de syntaxe sont désignés par des propriétés de classe. Pour plus d’informations, consultez about_Classes.

Pour récupérer la syntaxe d’une ressource DSC, utilisez l’applet de commande Get-DSCResource avec le paramètre Syntax . Cette utilisation est similaire à l’utilisation de Get-Command avec le paramètre Syntax pour obtenir la syntaxe de l’applet de commande. La sortie que vous voyez affiche le modèle utilisé pour un bloc de ressource pour la ressource que vous spécifiez.

Get-DscResource -Syntax Service

La sortie que vous voyez doit être similaire à la sortie ci-dessous, bien que la syntaxe de cette ressource puisse changer à l’avenir. Comme pour la syntaxe des applets de commande, les clés entre crochets sont facultatives. Les types spécifient le type de données attendues par chaque clé.

Note

La touche Ensure est facultative car elle est définie par défaut sur « Présent ».

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

Note

Dans les versions de PowerShell inférieures à 7.0, Get-DscResource ne trouve pas les ressources DSC basées sur une classe.

À l’intérieur d’une configuration, un bloc de ressources Service peut ressembler à ceci pour s’assurer que le service Spooler est en cours d’exécution.

Note

Avant d’utiliser une ressource dans une configuration, vous devez l’importer à l’aide de 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"
        }
    }
}

Les configurations peuvent contenir plusieurs instances du même type de ressource. Chaque instance doit être nommée de manière unique. Dans l’exemple suivant, un deuxième bloc de ressources Service est ajouté pour configurer le service « 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"
        }
    }
}

Note

À partir de PowerShell 5.0, IntelliSense a été ajouté pour DSC. Cette nouvelle fonctionnalité vous permet d’utiliser TAB et Ctr+Space pour compléter automatiquement les noms de touche.

Ressource IntelliSense à l’aide de la saisie semi-automatique par tabulation

Types de ressources

Windows est livré avec des ressources intégrées et Linux a des ressources spécifiques au système d’exploitation. Il existe des ressources pour les dépendances entre nœuds, des ressources de gestion de paquets, ainsi que des ressources détenues et gérées par la communauté. Vous pouvez utiliser les étapes ci-dessus pour déterminer la syntaxe de ces ressources et leur utilisation. Les pages qui servent à ces ressources ont été archivées sous Référence.

Ressources intégrées Windows

Ressources de dépendance entre nœuds

Ressources de gestion des paquets

Ressources Linux

Le DSC pour les ressources Linux est obsolète. Pour plus d’informations, consultez DSC pour les ressources Linux.