Compartir a través de


Recursos de DSC

Se aplica a Windows PowerShell 4.0 y versiones posteriores.

Información general

Los recursos de configuración de estado deseado (DSC) proporcionan los bloques de creación para una configuración de DSC. Un recurso expone propiedades que se pueden configurar (esquema) y contiene las funciones de script de PowerShell a las que llama el Administrador de configuración local (LCM) para "hacerlo así".

Un recurso puede modelar algo tan genérico como un archivo o tan específico como una configuración de servidor IIS. Los grupos de recursos similares se combinan en un módulo DSC, que organiza todos los archivos necesarios en una estructura portátil e incluye metadatos para identificar cómo se van a usar los recursos.

Cada recurso tiene un esquema *que determina la sintaxis necesaria para usar el recurso en una configuración. El esquema de un recurso se puede definir de las siguientes maneras:

  • Schema.Mof file: la mayoría de los recursos definen su esquema en un schema.mof archivo, utilizando el formato de objeto administrado.
  • <Resource Name>.schema.psm1 file: los recursos compuestos definen su esquema en un <ResourceName>.schema.psm1 archivo mediante un bloque de parámetros.
  • <Resource Name>.psm1 file: los recursos de DSC basados en clases definen su esquema en la definición de clase. Los elementos de sintaxis se indican como propiedades de clase. Para obtener más información, consulte about_Classes.

Para recuperar la sintaxis de un recurso de DSC, use el cmdlet Get-DSCResource con el parámetro Syntax . Este uso es similar al uso de Get-Command con el parámetro Syntax para obtener la sintaxis del cmdlet. El resultado que ve mostrará la plantilla utilizada para un bloque de recursos para el recurso que especifique.

Get-DscResource -Syntax Service

La salida que ve debe ser similar a la salida siguiente, aunque la sintaxis de este recurso podría cambiar en el futuro. Al igual que la sintaxis del cmdlet, las claves que se ven entre corchetes son opcionales. Los tipos especifican el tipo de datos que espera cada clave.

Nota:

La tecla Ensure es opcional porque el valor predeterminado es "Presente".

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:

En las versiones de PowerShell inferiores a la 7.0, Get-DscResource no encuentra los recursos de DSC basados en clases.

Dentro de una configuración, un bloque de recursos de servicio puede tener este aspecto para garantizar que el servicio de cola de impresión se esté ejecutando.

Nota:

Antes de usar un recurso en una configuración, debe importarlo mediante 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"
        }
    }
}

Las configuraciones pueden contener varias instancias del mismo tipo de recurso. Cada instancia debe tener un nombre único. En el ejemplo siguiente, se agrega un segundo bloque de recursos de servicio para configurar el servicio "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"
        }
    }
}

Nota:

A partir de PowerShell 5.0, se agregó IntelliSense para DSC. Esta nueva función le permite usar TAB y Ctr+Space para completar automáticamente los nombres de las claves.

Resource IntelliSense mediante la finalización de tabulaciones

Tipos de recursos

Windows viene con recursos integrados y Linux tiene recursos específicos del sistema operativo. Hay recursos para dependencias entre nodos, recursos de administración de paquetes, así como recursos de propiedad y mantenimiento de la comunidad. Puede usar los pasos anteriores para determinar la sintaxis de estos recursos y cómo usarlos. Las páginas que sirven a estos recursos se han archivado en Referencia.

Recursos integrados de Windows

Recursos de dependencia entre nodos

Recursos de administración de paquetes

Recursos de Linux

Los recursos de DSC para Linux están en desuso. Para obtener más información, consulte Recursos de DSC para Linux.