Sylver SCHORGEN Blog's

Articles, astuces et news sur les technologies Microsoft et plus particulièrement tournant autour de Powershell
  • [PowerShell] Déployer Active Directory en utilisant PowerShell DSC

    Bonjour à tous,

    Je me suis fait un petit script DSC pour le déploiement de mes infra AD de test (1 seul contrôleur de domaine). Ce script me permet de déployer mes DC bien plus rapidement que si je le faisais à la main.

    Il faut disposer des modules xComputerManagement et xActiveDirectory pour que ce script soit fonctionnel.

    Le script dispose de paramètre obligatoire :

    • AdministratorLogin: Le nom de votre utilisateur administrateur
    • AdministratorPassword: Le mot de passe de votre utilisateur administrateur
    • ServerName : Le nom du serveur (il sera renommé ainsi)
    • WorkGroupName : Le nom du workgroup dans lequel le serveur est (avant le déploiement d'ADDS)
    • DomainName : Le nom de votre domaine

    Le script a été créé pour s'appliquer sur une machine (le noeud configuré dans le script est "localhost").

    La dernière ligne du script #Start-DSCConfiguration -Wait -Force -Path 'C:\_Me\Sources\MOF_Files\ConfigureFirstDomainController' est à utiliser pour appliquer la configuration à votre machine.

    Suite à l'application du script, votre serveur disposera d'ADDS et DNS de déployés (et des consoles d'administration associées).

    $AdministratorLogin = 'Administrator'
    $AdministratorPassword = 'P@$$w0rd'
    $SecurePassword = ConvertTo-SecureString $AdministratorPassword -AsPlainText -Force
    $AdministratorCredential = New-Object System.Management.Automation.PSCredential ($AdministratorLogin, $SecurePassword)

    Configuration ConfigureFirstDomainController {
    param (
    [string[]]$NodeName ='localhost',
    [Parameter(Mandatory)][string]$ServerName,
    [Parameter(Mandatory)][string]$WorkgroupName,
    [Parameter(Mandatory)][string]$DomainName
    )

    #Import required DSC resources (must be installed first)
    Import-DSCResource -Module xComputerManagement
    Import-DSCResource -Module xActiveDirectory

    Node $NodeName {
    xComputer ComputerNameAndWorkgroup {
    Name = $ServerName
    WorkGroupName = $WorkgroupName
    }

    WindowsFeature ADDS {
    Ensure = 'Present'
    Name = 'AD-Domain-Services'
    IncludeAllSubFeature = $true
    }

    WindowsFeature RSAT {
    DependsOn = '[WindowsFeature]ADDS'
    Ensure = 'Present'
    Name = 'RSAT-AD-Tools'
    IncludeAllSubFeature = $true
    }

    xADDomain SetupFirstDomain {
    DomainAdministratorCredential = $AdministratorCredential
    DomainName = $DomainName
    SafemodeAdministratorPassword = $AdministratorCredential
    DependsOn = '[WindowsFeature]RSAT'
    DomainNetbiosName = $DomainName.Split('.')[0]
    }
    }
    }

    $ConfigurationData = @{
    AllNodes = @(
    @{
    NodeName = 'localhost';
    PSDscAllowPlainTextPassword = $true
    }
    )
    }

    ConfigureFirstDomainController -NodeName "localhost" -ServerName "SRV-AD1" -WorkgroupName "LAB" -DomainName "LAB.LAN" -OutputPath 'C:\_Me\Sources\MOF_Files\ConfigureFirstDomainController' -ConfigurationData $ConfigurationData
    #Start-DSCConfiguration -Wait -Force -Path 'C:\_Me\Sources\MOF_Files\ConfigureFirstDomainController'