DCPROMO n’est plus, …

 

Avant :

Depuis Windows Server 2012, le célèbre assistant d’installation d’Active Directory “DCPROMO” n’est plus !… (Paix à son âme Clignement d'œil). En effet, cet outil graphique permettait de promouvoir (ou rétrograder) un contrôleur de domaine au travers une simple interface graphique ou en mode silencieux via un fichier de réponse passé en paramètre “/unattend:fichier.txt”. (Avec Win2008R2, vous aviez même la possibilité de générer ce fichier de réponse juste avant de lancer l’opération).

Maintenant :

Les choses changent, aujourd’hui, avec Windows Server 2012  la promotion d’un contrôleur de domaine se fait par l’interface graphique du gestionnaire de serveur, ou en Powershell. (Depuis le temps que je vous le dis : PShell est un incontournable Clignement d'œil…). Il y a donc maintenant un module dédié “ADDSDeployment“, (Pour le néophytes) – Le principe reste toujours le même, on charge le module par :

import-module ADDSDeployment

 

Puis , on interroge la liste des nouvelles commandes disponibles via :

get-command –module ADDSDeployment | ft Name

 

Cette commande vous retourne quelque chose du genre :

Name
—-
Add-ADDSReadOnlyDomainControllerAccount
Install-ADDSDomain
Install-ADDSDomainController
Install-ADDSForest
Test-ADDSDomainControllerInstallation
Test-ADDSDomainControllerUninstallation
Test-ADDSDomainInstallation
Test-ADDSForestInstallation
Test-ADDSReadOnlyDomainControllerAccountCreation
Uninstall-ADDSDomainController

J’ajouterais qu’il vous faudra également recourir au module “ServerManager” afin d’installer les binaires nécessaires via l’applet de commande “Install-WindowsFeature”. (En effet, l’outil DCPROMO ce chargeait également de cette action)

Exemple d’implémentation

Préparer les identifiants nécessaires à la réalisation de l’opération (Dans cet exemple, Adminis du domaine devrait suffire)

$cred = Get-Credential LABO\Admin

Enumérer les contrôleurs de domaine existants avant d’en installer un nouveau

Get-ADDomainController -Filter * | Format-Table Name, Site, IPv4Address -AutoSize

Importer le module d’ajout de rôles et de fonctionnalités

Import-Module ServerManager

Installer le rôle AD-Domain-Services

Install-WindowsFeature –Name AD-Domain-Services `
–ComputerName Srvr1.labo.local `
-IncludeManagementTools

Vous pouvez vérifier que le rôle est bien installé

Get-WindowsFeature -ComputerName Srvr1.labo.local |
Where-Object { $_.Installed -eq $true } | Format-Table Name

Bien maintenant que les binaires sont installés, il faut procéder à la promotion. Pour cela, il y a plusieurs approches possibles. Ici, on va privilégier l’écriture d’un bloc de code qui peut ensuite être exécuté localement ou à distance via l’applet “Invoke-Command”.

Invoke-Command –ComputerName Srvr1.labo.local –ScriptBlock {
   Import-Module ADDSDeployment;

Install-ADDSDomainController `
-NoGlobalCatalog:$false `
-CreateDnsDelegation:$false `
-CriticalReplicationOnly:$false `
-DatabasePath “C:\Windows\NTDS” `
-DomainName “labo.local” `
-InstallDns:$true `
-LogPath “C:\Windows\NTDS” `
-NoRebootOnCompletion:$true `
-SiteName “Nantes” `
-SysvolPath “C:\Windows\SYSVOL” `
-Force:$true `
-Credential $using:cred `
-Confirm:$false `
-SafeModeAdministratorPassword (ConvertTo-SecureString ‘Pa$$w0rd’ -AsPlainText -Force)

}

Cet exemple ne reprend que les principaux paramètres courants d’une installation d’un nouveau contrôleur de domaine AD. Utilisez l’aide sur la commande “Install-ADDSDomainController“ pour obtenir des compléments d’information, tels que le contrôleur à partir duquel la réplication initiale est effectuée. Vous pouvez également utiliser la commande “Install-ADDSDomain“ pour implémenter un nouveau domaine dans une forêt existante ou bien encore “Install-ADDSForest“ pour créer une nouvelle forêt. Dans ces 2 autres cas, vous devrez recourir à un compte d’Administrateurs de l’entreprise.

Note : Vous remarquerez l’usage d’une nouvelle portée pour la variable “$using:cred” faisant partie des simplifications syntaxiques apparues en Powershell v3. Cette précision est particulièrement importante lors des appels à distance. En fait, en Powershell v2, le passage de paramètres à un bloc de script était “un peu moins évident” et il aurait fallu écrire un code du genre …

$cred = Get-Credential LABO\Admin
Invoke-Command
–ComputerName Srvr1.labo.local –Command {
Param ( $name )

-Credential $name

}
-Arg $cred

Pour la rétrogradation, c’est sensiblement le même principe avec la commande “Uninstall-ADDSDomainController”. A l’occasion, je vous invite à exploiter les applets “Test-ADDS…” afin de vérifier le bon état d’installation d’Active Directory.

Voici donc un petit exemple de promotion d’un nouveau contrôleur de domaine Active Directory en Powershell sans recourir à l’outil DCPROMO (qu’il m’arrive régulièrement d’appeler par erreur sur W2012). Mais comme disait Mark Twain : “on ne se débarrasse pas d’une habitude en la flanquant par la fenêtre ; il faut lui faire descendre l’escalier marche par marche.” Clignement d'œil

Bien à vous.

Christophe

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Apprenez comment les données de vos commentaires sont utilisées.