Inedo / inedox-windows

Windows extension for Otter and BuildMaster.
BSD 3-Clause "New" or "Revised" License
7 stars 4 forks source link

function $PSCredential has strange behaviour #31

Closed fMichaleczek closed 6 years ago

fMichaleczek commented 6 years ago

I would like to use PSDsc xADDomain from module xActiveDirectory to create a new Active Directory forest.

Here an extract from my plan :

set $DomainAdministratorUserName = $GetCredentialProperty(DomainAdministrator, Username);
set $DomainAdministratorPassword = $GetCredentialProperty(DomainAdministrator, Password);
set $DomainAdministratorCredential = $PSCredential($DomainAdministratorUserName, $DomainAdministratorPassword);

PSDsc xActiveDirectory::xADDomain
(
    Otter_ConfigurationKey: FirstDC,
    DomainName: $DomainName,
    DomainNetbiosName: $DomainNetbiosName,
    DomainAdministratorCredential: $DomainAdministratorCredential,
    SafemodeAdministratorPassword: $DomainAdministratorCredential,
    DatabasePath: C:\NTDS,
    LogPath: C:\NTDS
);

The error is :

DEBUG:  Invoke-DscResource -Name xADDomain -Method Set -Property @{'DomainName'='test.local';'DomainNetbiosName'='test';'DomainAdministratorCredential'='{229C065F-9E8F-4679-AD52-0DD5B7334FA3}DQAAAEFkbWluaXN0cmF0b3IKAAAAUVNEYXplJsOpIg==';'SafemodeAdministratorPassword'='{229C065F-9E8F-4679-AD52-0DD5B7334FA3}DQAAAEFkbWluaXN0cmF0b3IKAAAAUVNEYXplJsOpIg==';'DatabasePath'='C:\NTDS';'LogPath'='C:\NTDS'} -ModuleName xActiveDirectory
ERROR: Convert property 'SafemodeAdministratorPassword' value from type 'STRING' to type 'INSTANCE' failed
At line:13, char:2
Buffer:
AAAUVNEYXplJsOpIg==";
};^
insta

Extension Windows Version is latest : 1.6.3

fMichaleczek commented 6 years ago

My workaround is to execute a powershell script

Execute-PowerShell >>
 $DomainAdministratorCredential =  [PSCredential]::new("$DomainAdministratorUserName", ("$DomainAdministratorPassword"  | ConvertTo-SecureString -asPlainText -Force) );
 Invoke-DscResource -Name xADDomain -Method Set -Property @{
    'DomainName'=$DomainName;
    'DomainNetbiosName'=$DomainNetbiosName;
    'DomainAdministratorCredential'= $DomainAdministratorCredential;
    'SafemodeAdministratorPassword'= $DomainAdministratorCredential;
    'DatabasePath'='C:\NTDS';
    'LogPath'='C:\NTDS'
} -ModuleName xActiveDirectory
>>
(
    Debug: true,
    Verbose: true,
    RunOnSimulation: false
);
apxltd commented 6 years ago

@BenLubar I'm thinking, this issue is b/c the DSC operation isn't taking into consideration a PSCredential variable (i.e. something with "that prefix").

BenLubar commented 6 years ago

32 should fix this, but if anyone has a complicated property value starting with @, it might break. (See the pull request for details on what's allowed.)