Partilhar via


about_DesiredStateConfiguration

Breve descrição

Fornece uma breve introdução ao recurso de Configuração de Estado Desejado (DSC) do PowerShell.

Descrição longa

O DSC é uma plataforma de gerenciamento no PowerShell que permite implantar e gerenciar dados de configuração para serviços de software e gerenciar o ambiente no qual esses serviços são executados.

O DSC fornece um conjunto de extensões de linguagem do PowerShell, novos cmdlets e recursos que você pode usar para especificar declarativamente como deseja que o estado do seu ambiente de software seja configurado. Ele também fornece um meio para manter e gerenciar as configurações existentes.

O DSC é introduzido no PowerShell 4.0.

Para obter informações detalhadas sobre DSC, consulte Visão geral da configuração de estado desejado do PowerShell.

Desenvolvendo recursos DSC com classes

A partir do PowerShell 5.0, você pode desenvolver recursos DSC usando classes. Para obter mais informações, consulte about_Classes e Escrevendo um recurso DSC personalizado com classes do PowerShell.

Usando o DSC

Para usar o DSC para configurar seu ambiente, primeiro defina um bloco de script do PowerShell usando a palavra-chave Configuração, seguido por um identificador, que por sua vez é seguido pelo par de chaves que delimitam o bloco. Dentro do bloco de configuração, você pode definir blocos de nó que especificam o estado de configuração desejado para cada nó (computador) no ambiente. Um bloco de nó começa com a palavra-chave Nó, seguida pelo nome do computador de destino, que pode ser uma variável. Depois do nome do computador, vêm as chaves que delimitam o bloco do nó. Dentro do bloco de nó, você pode definir blocos de recursos para configurar recursos específicos. Um bloco de recursos começa com o nome do tipo do recurso, seguido pelo identificador que você deseja especificar para esse bloco, seguido pelas chaves que delimitam o bloco, conforme mostrado no exemplo a seguir.

Configuration MyWebConfig {
    # Parameters are optional
    param ($MachineName, $WebsiteFilePath)
    # A Configuration block can have one or more Node blocks
    Node $MachineName
    {
        # Next, specify one or more resource blocks
        # WindowsFeature is one of the resources you can use in a Node block
        # This example ensures the Web Server (IIS) role is installed
        WindowsFeature IIS
        {
            # To ensure that the role is not installed, set Ensure to "Absent"
            Ensure = "Present"
            Name = "Web-Server" # Use the Name property from Get-WindowsFeature
        }

        # You can use the File resource to create files and folders
        # "WebDirectory" is the name you want to use to refer to this instance
        File WebDirectory
        {
            Ensure = "Present"  # You can also set Ensure to "Absent"
            Type = "Directory" # Default is "File"
            Recurse = $true
            SourcePath = $WebsiteFilePath
            DestinationPath = "C:\inetpub\wwwroot"

            # Ensure that the IIS block is successfully run first before
            # configuring this resource
            DependsOn = "[WindowsFeature]IIS"  # Use for dependencies
        }
    }
}

Para criar uma configuração, invoque o bloco Configuração da mesma forma que invocaria uma função do PowerShell, passando quaisquer parâmetros esperados que você possa ter definido (dois no exemplo acima). Por exemplo, neste caso:

MyWebConfig -MachineName "TestMachine" -WebsiteFilePath `
  "\\filesrv\WebFiles" -OutputPath "C:\Windows\system32\Temp"
# OutputPath is optional

Isso gera um arquivo MOF por nó no caminho especificado. Esses arquivos MOF especificar a configuração desejada para cada nó. Em seguida, use o cmdlet a seguir para analisar os arquivos MOF de configuração, enviar a cada nó sua configuração correspondente e executar essas configurações. Observe que você não precisa criar um arquivo MOF separado para recursos DSC baseados em classe.

Start-DscConfiguration -Verbose -Wait -Path "C:\Windows\system32\Temp"

Usando DSC para manter o estado de configuração

Com o DSC, a configuração é idempotente. Isso significa que, se você usar o DSC para executar a mesma configuração mais de uma vez, o estado de configuração resultante será sempre o mesmo. Por isso, se você suspeitar que algum nó em seu ambiente pode ter se desviado do estado desejado de configuração, poderá executar a mesma configuração DSC novamente para trazê-los de volta ao estado desejado. Não é necessário modificar o script de configuração para abordar apenas os recursos cujo estado se desviou do estado desejado.

O exemplo a seguir mostra como você pode verificar se o estado real da configuração em um determinado nó se desviou da última configuração DSC decretada no nó. Neste exemplo, estamos verificando a configuração do computador local.

$session = New-CimSession -ComputerName "localhost"
Test-DscConfiguration -CimSession $session

Recursos DSC integrados

Você pode usar os seguintes recursos internos em seus scripts de configuração:

Nome Propriedades
Ficheiro {DestinationPath, Atributos, Checksum, Conteúdo...}
Arquivo {Destino, caminho, soma de verificação, credencial...}
Environment {Nome, DependsOn, Assegurar, Caminho...}
Agrupar {GroupName, Credential, DependsOn, Descrição...}
Registo {Mensagem, DependsOn, PsDscRunAsCredential}
Pacote {Nome, Caminho, ProductId, Argumentos...}
Registo {Key, ValueName, DependsOn, Assegurar...}
Script {GetScript, SetScript, TestScript, Credencial...}
Serviço {Nome, BuiltInAccount, Credencial, Dependências...}
User {UserName, DependsOn, Descrição, Desativado...}
WaitForAll {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForAny {NodeName, ResourceName, DependsOn, PsDscRunAsC...}
WaitForSome {NodeCount, NodeName, ResourceName, DependsOn...}
WindowsFeature {Nome, Credencial, DependsOn, Garantir...}
WindowsOptionalFeature {Nome, DependsOn, Ensure, LogLevel...}
WindowsProcess {Argumentos, caminho, credencial, dependsOn...}

Para obter uma lista de recursos DSC disponíveis em seu sistema, execute o Get-DscResource cmdlet.

Nota

Nas versões do PowerShell abaixo de 7.0, Get-DscResource não encontra recursos DSC baseados em classe.

O exemplo neste tópico demonstra como usar os recursos File e WindowsFeature. Para ver todas as propriedades que você pode usar com um recurso, insira o cursor na palavra-chave resource (por exemplo, File) dentro do script de configuração no ISE do PowerShell, mantenha pressionada a tecla CTRL+SPACEBAR

Encontre mais recursos

Você pode baixar, instalar e aprender sobre muitos outros recursos DSC disponíveis que foram criados pela comunidade de usuários do PowerShell e DSC e pela Microsoft. Visite a Galeria do PowerShell para navegar e saber mais sobre os recursos DSC disponíveis.

Consulte também