Executar DSC com as credenciais do usuárioRunning DSC with user credentials

Aplica-se a: Windows PowerShell 5.0, Windows PowerShell 5.1Applies To: Windows PowerShell 5.0, Windows PowerShell 5.1

Você pode executar um recurso de DSC em um conjunto específico de credenciais usando a propriedade automática PsDscRunAsCredential na configuração.You can run a DSC resource under a specified set of credentials by using the automatic PsDscRunAsCredential property in the configuration. Por padrão, o DSC executa cada recurso como a conta do sistema.By default, DSC runs each resource as the system account. Há vezes em que executar como usuário é necessário, como ao fazer a instalação de pacotes MSI em um contexto de usuário específico, ao configurar as chaves do registro do um usuário, ao acessar o diretório local específico de um usuário ou ao acessar um compartilhamento de rede.There are times when running as a user is necessary, such as installing MSI packages in a specific user context, setting a user's registry keys, accessing a user's specific local directory, or accessing a network share.

Cada recurso de DSC tem uma propriedade PsDscRunAsCredential que pode ser definida para qualquer credencial de usuário (um objeto PSCredential).Every DSC resource has a PsDscRunAsCredential property that can be set to any user credentials (a PSCredential object). A credencial pode ser embutida em código como o valor da propriedade na configuração ou você pode definir o valor para Get-Credential, que solicitará ao usuário uma credencial quando a configuração for compilada (para informações sobre como compilar configurações, confira Configurações.The credential can be hard-coded as the value of the property in the configuration, or you can set the value to Get-Credential, which will prompt the user for a credential when the configuration is compiled (for information about compiling configurations, see Configurations.

Observação: no PowerShell 5.0, o uso da propriedade PsDscRunAsCredential nas configurações chamando recursos de composição não tem suporte.Note: In PowerShell 5.0, using the PsDscRunAsCredential property in configurations calling composite resources was not supported. No PowerShell 5.1, a propriedade PsDscRunAsCredential tem suporte nas configurações chamando recursos de composição.In PowerShell 5.1, the PsDscRunAsCredential property is supported in configurations calling composite resources.

Observação: a propriedade PsDscRunAsCredential não está disponível no PowerShell 4.0.Note: The PsDscRunAsCredential property is not available in PowerShell 4.0.

No exemplo a seguir, Get-Credential é usado para solicitar as credenciais do usuário.In the following example, Get-Credential is used to prompt the user for credentials. O recurso de Registro é usado para alterar a chave do Registro que especifica a cor da tela de fundo da janela de prompt de comando do Windows.The Registry resource is used to change the registry key that specifies the background color for the Windows command prompt window.

Configuration ChangeCmdBackGroundColor
{
    Import-DscResource -ModuleName PSDesiredStateConfiguration

    Node $AllNodes.NodeName
    {
        Registry CmdPath
        {
            Key                  = 'HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor'
            ValueName            = 'DefaultColor'
            ValueData            = '1F'
            ValueType            = 'DWORD'
            Ensure               = 'Present'
            Force                = $true
            Hex                  = $true
            PsDscRunAsCredential = Get-Credential
        }
    }
}

$configData = @{
    AllNodes = @(
        @{
            NodeName             = 'localhost';
            PSDscAllowDomainUser = $true
            CertificateFile      = 'C:\publicKeys\targetNode.cer'
            Thumbprint           = '7ee7f09d-4be0-41aa-a47f-96b9e3bdec25'
        }
    )
}

ChangeCmdBackGroundColor -ConfigurationData $configData

Observação: Este exemplo pressupõe que você tenha um certificado válido em C:\publicKeys\targetNode.cer, e que a impressão digital desse certificado seja o valor exibido.Note: This example assumes that you have a valid certificate at C:\publicKeys\targetNode.cer, and that the thumbprint of that certificate is the value shown. Para saber mais sobre como criptografar credenciais em arquivos MOF de configuração de DSC, confira Proteção do arquivo MOF.For information about encrypting credentials in DSC configuration MOF files, see Securing the MOF file.