Recurso do grupo do DSC do PowerShell - “Não foi possível encontrar um principal com o nome fornecido”

8

Estou tentando usar o DSC do PowerShell para adicionar um grupo de domínios ao grupo de administradores locais. Aqui está o código:

Configuration TestSetup {
    Node localhost {
        Group Administrators {
            GroupName = "Administrators"
            MembersToInclude = "MYDOMAIN\TheAdministratorsGroup"
        }
    }
}

Isso está resultando no seguinte erro quando eu o executo:

PowerShell provider MSFT_GroupResource  failed to execute Test-TargetResource functionality with error message: Could not find a principal with the provided name [mydomain\theadministratorsgroup]
    + CategoryInfo          : InvalidOperation: (:) [], CimException
    + FullyQualifiedErrorId : ProviderOperationExecutionFailure
    + PSComputerName        : localhost

O principal existe e eu posso adicioná-lo manualmente através da GUI e usando net localgroup .

Sei que as configurações de DSC são executadas na conta SYSTEM , por isso pensei que poderia ser um problema de permissões com a conta SYSTEM que deseja consultar o Active Directory. No entanto, executei um cmd como a conta SYSTEM usando o PsExec e consegui adicionar um grupo de domínio ao grupo de administradores locais sem nenhum problema.

    
por Richard 04.02.2014 / 12:51

1 resposta

4

Você precisa especificar as credenciais:

Exemplo:

Caminho para obter as credenciais:

$securedstring = ConvertTo-SecureString -String $Password -AsPlainText -Force
[PSCredential]$cred = New-Object System.Management.Automation.PSCredential ($UserName, $securedstring)

E este é o código que você precisa para configurar o recurso DSC

$ConfigurationData = @{
    AllNodes = @(
        @{
            NodeName="*"
            PSDscAllowPlainTextPassword=$true
         }
        @{
            NodeName="SRV2-WS2012R2"
         }
        @{
            NodeName="SRV3-WS2012R2"
         }
   )
}


Node $AllNodes.NodeName
{
    LocalConfigurationManager
    {
        RebootNodeIfNeeded = $false
    }

    Group $group.Name
    {
        GroupName = $group.Name
        Ensure = $group.Ensure
        Members = $group.Members
        Credential = $cred
    }
}

Em seguida, basta executar

ProcessDscResources -ConfigurationData $ConfigurationData -OutputPath $folderPathTmp

Start-DscConfiguration -Wait -Force -Path $folderPathTmp
    
por 07.04.2014 / 19:19