Risorsa gruppo DSC PowerShell: "Impossibile trovare un'entità con il nome fornito"


8

Sto cercando di utilizzare PowerShell DSC per aggiungere un gruppo di dominio al gruppo degli amministratori locali. Ecco il codice:

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

Ciò provoca il seguente errore quando lo eseguo:

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

Il principale esiste e posso aggiungerlo manualmente tramite la GUI e usando net localgroup.

So che le configurazioni DSC vengono eseguite con l' SYSTEMaccount, quindi ho pensato che potrebbe essere un problema di autorizzazioni con l' SYSTEMaccount che desidera eseguire una query in Active Directory. Tuttavia ho eseguito un cmd come SYSTEMaccount utilizzando PsExec e sono stato in grado di aggiungere un gruppo di domini al gruppo di amministratori locali senza alcun problema.

Risposte:


4

Devi specificare le credenziali:

Esempio:

Modo per ottenere le credenziali:

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

E questo è il codice necessario per configurare la risorsa 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
    }
}

Quindi eseguire semplicemente

ProcessDscResources -ConfigurationData $ConfigurationData -OutputPath $folderPathTmp

Start-DscConfiguration -Wait -Force -Path $folderPathTmp

Grazie mille @Jupaoi, questo è stato utile e abbastanza non documentato nei documenti ufficiali.
Nathan,

C'è un modo per dirlo, dovrebbe semplicemente usare "le credenziali attuali"
TGlatzer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.