application-workloads/active-directory/active-directory-new-domain-ha-2-dc-zones/DSC/ConfigureADBDC.ps1 (61 lines of code) (raw):

configuration ConfigureADBDC { param ( [Parameter(Mandatory)] [String]$DomainName, [Parameter(Mandatory)] [System.Management.Automation.PSCredential]$Admincreds, [Int]$RetryCount=20, [Int]$RetryIntervalSec=30 ) Import-DscResource -ModuleName xActiveDirectory, xPendingReboot [System.Management.Automation.PSCredential ]$DomainCreds = New-Object System.Management.Automation.PSCredential ("${DomainName}\$($Admincreds.UserName)", $Admincreds.Password) Node localhost { LocalConfigurationManager { RebootNodeIfNeeded = $true } xWaitForADDomain DscForestWait { DomainName = $DomainName DomainUserCredential= $DomainCreds RetryCount = $RetryCount RetryIntervalSec = $RetryIntervalSec } xADDomainController BDC { DomainName = $DomainName DomainAdministratorCredential = $DomainCreds SafemodeAdministratorPassword = $DomainCreds DatabasePath = "F:\NTDS" LogPath = "F:\NTDS" SysvolPath = "F:\SYSVOL" DependsOn = "[xWaitForADDomain]DscForestWait" } <# Script UpdateDNSForwarder { SetScript = { Write-Verbose -Verbose "Getting DNS forwarding rule..." $dnsFwdRule = Get-DnsServerForwarder -Verbose if ($dnsFwdRule) { Write-Verbose -Verbose "Removing DNS forwarding rule" Remove-DnsServerForwarder -IPAddress $dnsFwdRule.IPAddress -Force -Verbose } Write-Verbose -Verbose "End of UpdateDNSForwarder script..." } GetScript = { @{} } TestScript = { $false} DependsOn = "[xADDomainController]BDC" } #> xPendingReboot RebootAfterPromotion { Name = "RebootAfterDCPromotion" DependsOn = "[xADDomainController]BDC" } } }