Active Directory : Déployer ADDS avec PowerShell
Sommaire
I. Présentation
Pour mettre en place les services de domaine Active Directory, il est bien entendu possible de le faire par l'interface graphique mais aussi en ligne de commande par PowerShell. Ceci sera utile notamment sur un serveur en mode core, mais également pour automatiser la création d'un domaine, que ce soit pour votre lab perso ou pour une mise en oeuvre.
Des outils d'automatisation, comme PowerShell DSC pourrons vous permettre de déployer ADDS ou un contrôleur de domaine rapidement en s'appuyant sur PowerShell. Pour cet exemple, on utilisera simplement des commandes PowerShell qu'il est tout à fait possible de mettre dans un script.
Voyons ensemble comment déployer Active Directory avec PowerShell.
Besoin d'aide ? Retrouvez notre cours sur les bases Active Directory
Pour réaliser cette installation en interface graphique, vous pouvez suivre mon tutoriel vidéo en français :
II. Nom d'hôte
Commençons par renommer le serveur, dans cet exemple "FB-ADDS01" puis redémarrons le serveur. Ce qui nous donne ces deux commandes :
Rename-Computer -NewName FB-ADDS01 -Force Restart-Computer
Lorsque le serveur aura redémarré, il aura son joli petit nom !
III. Configuration réseau
Maintenant, on va définir la configuration réseau du serveur, toujours via PowerShell. Dans cet exemple, j'attribue l'adresse IP 192.168.1.10 en IP, avec un masque 255.255.255.0 (/24) et une passerelle par défaut 192.168.1.1.
New-NetIPAddress -IPAddress "192.168.1.10" -PrefixLength "24" -InterfaceIndex (Get-NetAdapter).ifIndex -DefaultGateway "192.168.1.1"
Set-DnsClientServerAddress -InterfaceIndex (Get-NetAdapter).ifIndex -ServerAddresses ("127.0.0.1")
Rename-NetAdapter -Name Ethernet0 -NewName LAN
Si tout va bien, votre serveur a un nom définitif et une configuration réseau adéquate. Nous pouvons passer à la phase la plus intéressante : la mise en place du domaine Active Directory.
IV. Installation des rôles
Pour cette installation, nous aurons besoin de trois fonctionnalités : les services de domaine Active Directory (AD-Domain-Services), le DNS (DNS) et les outils d'administration graphique (RSAT-AD-Tools) mais ceci est facultatif.
$FeatureList = @("RSAT-AD-Tools","AD-Domain-Services","DNS") Foreach($Feature in $FeatureList){ if(((Get-WindowsFeature-Name $Feature).InstallState)-eq"Available"){ Write-Output"Feature $Feature will be installed now !" Try{ Add-WindowsFeature-Name $Feature -IncludeManagementTools -IncludeAllSubFeature Write-Output"$Feature : Installation is a success !" }Catch{ Write-Output"$Feature : Error during installation !" } } # if(((Get-WindowsFeature -Name $Feature).InstallState) -eq "Available") } # Foreach($Feature in $FeatureList)
Vous pourrez réutiliser le bloc de code ci-dessus, il va installer les trois fonctionnalités une à une, et vous indiquer le résultat à chaque fois. Si vous ne rencontrez pas d'erreur, vous pouvez passer à la suite.
V. Créer le domaine Active Directory
Ce qui va suivre correspond à la création du domaine, ce qui est l'équivalent du - célèbre - processus dcpromo. En fait, nous allons définir notre nom de domaine DNS dans la variable $DomainNameDNS et le nom Netbios de ce domaine dans $DomainNameNetbios.
Pour le reste, on va stocker tous les paramètres de configuration dans la variable $ForestConfiguration. Les paramètres par défaut peuvent être conservés, sauf si vous avez des besoins spécifiques. Le répertoire SYSVOL sera à son chemin habituel, tout comme la base de données ntfs.dit.
Lorsque vous êtes prêt, vous pouvez lancer la création du domaine avec la commande Install-ADDSForest qui créera un nouveau domaine dans une nouvelle forêt.
$DomainNameDNS = "it-connect.fr" $DomainNameNetbios = "IT-CONNECT" $ForestConfiguration = @{ '-DatabasePath'= 'C:\Windows\NTDS'; '-DomainMode' = 'Default'; '-DomainName' = $DomainNameDNS; '-DomainNetbiosName' = $DomainNameNetbios; '-ForestMode' = 'Default'; '-InstallDns' = $true; '-LogPath' = 'C:\Windows\NTDS'; '-NoRebootOnCompletion' = $false; '-SysvolPath' = 'C:\Windows\SYSVOL'; '-Force' = $true; '-CreateDnsDelegation' = $false } Import-Module ADDSDeployment Install-ADDSForest @ForestConfiguration
Si tout va bien, je vous invite à redémarrer votre serveur pour finaliser le processus d'installation. Une fois redémarré, votre domaine Active Directory doit être opérationnel. Différents cmdlets comme Get-ADForest et Get-ADDomain vous permettront d'obtenir des infos sur votre domaine et vérifier qu'il correspond à vos souhaits !
Finalement, c'est plutôt simple et pratique de pouvoir déployer un domaine directement en ligne de commande !
Merci Florian pour tous tes articles clairs et précis.
C’est toujours dommageable que Microsoft oblige toujours autant de redémarrages de machine afin de prendre en compte des modifications !
Il devrait prendre exemple sur le Pingoin…
Thierry
Bonjour,
J’ai copié/collé, mais j’ai ça :
https://image.noelshack.com/fichiers/2019/44/2/1572344229-2019-10-29-11h16-23.png
Je cherche juste à faire une réplication d’AD en version core tous les deux…
J’espérai que ces explications m’aideraient a comprendre l’installation d’AD en powershell…
Je ne trouve pas malgré 2 matinés et un après midi…
$FeatureList = @(« RSAT-AD-Tools », »AD-Domain-Services », »DNS »)
Foreach($Feature in $FeatureList){
if(((Get-WindowsFeature -Name $Feature).InstallState)-eq »Available »){
Write-Output « Feature $Feature will be installed now ! »
Try{
Add-WindowsFeature -Name $Feature-IncludeManagementTools -IncludeAllSubFeature
Write-Output « $Feature : Installation is a success ! »
}Catch{
Write-Output « $Feature : Error during installation ! »
}
} # if(((Get-WindowsFeature -Name $Feature).InstallState) -eq « Available »)
} # Foreach($Feature in $FeatureList)
Normalement cela devrait fonctionner avec les modifs.
comment nommer la carte réseau où on va attribuer les adresse IP
Get-NetAdapter
$NetAdapterifIndex = Read-Host « Sélectionner la carte réseau (ifIndex) »
# on donne un mon a la carte réseau
Rename-NetAdapter -Name (Get-NetAdapter -InterfaceIndex $NetAdapterifIndex).Name -NewName $($ConfigFile.NetAdapter.Name)
Bonjour Floriant,
Merci infiniment pour ton travail remarquable