labo_ad.ps1
Note de lecture générée automatiquement
Le vrai fichier est
scripts/windows/labo_ad.ps1(Obsidian n’affiche pas les scripts eux-mêmes). Ne modifie pas cette note : modifie le script, puis relancepython3 generer_vues_obsidian.pydans le dossierscripts.
- À quoi il sert : Contrôleur de domaine de labo en 3 étapes
- Lancer (dans le dossier
scripts/windows/) :.\labo_ad.ps1 -Etape 1|2|3 - Fiche : W05 - Windows en entreprise et Active Directory
- Retour : 00 - Tous les scripts
Code
# =============================================================================
# labo_ad.ps1 — Monte un contrôleur de domaine de LABO sur Windows Server 2022/2025
# ÉTAPE 1 (avant AD) : .\labo_ad.ps1 -Etape 1 → IP fixe, nom, redémarrage
# ÉTAPE 2 : .\labo_ad.ps1 -Etape 2 → AD DS + DNS, nouvelle forêt (redémarre)
# ÉTAPE 3 (après AD) : .\labo_ad.ps1 -Etape 3 → OU, groupes, utilisateurs, DHCP
#
# À lancer dans PowerShell EN ADMINISTRATEUR. Adapte les variables ci-dessous.
# ⚠ Labo uniquement : mots de passe saisis au clavier, jamais écrits dans le script.
# =============================================================================
param([Parameter(Mandatory = $true)][ValidateSet(1, 2, 3)][int]$Etape)
$NomServeur = "SRV-AD01"
$Interface = "Ethernet" # Get-NetAdapter pour voir le nom exact
$IPServeur = "192.168.10.10"
$Prefixe = 24
$Passerelle = "192.168.10.254"
$Domaine = "sio.lan"
$NetBIOS = "SIO"
$BaseDN = "DC=sio,DC=lan"
switch ($Etape) {
1 {
New-NetIPAddress -InterfaceAlias $Interface -IPAddress $IPServeur -PrefixLength $Prefixe -DefaultGateway $Passerelle
Set-DnsClientServerAddress -InterfaceAlias $Interface -ServerAddresses 127.0.0.1
Rename-Computer -NewName $NomServeur -Restart
}
2 {
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
$motDePasseDSRM = Read-Host -AsSecureString "Mot de passe DSRM (restauration AD)"
Install-ADDSForest -DomainName $Domaine -DomainNetbiosName $NetBIOS -InstallDns `
-SafeModeAdministratorPassword $motDePasseDSRM -Force
# Le serveur redémarre tout seul à la fin.
}
3 {
Import-Module ActiveDirectory
# Unités d'organisation
foreach ($ou in "Utilisateurs-SIO", "Ordinateurs-SIO", "Groupes-SIO") {
New-ADOrganizationalUnit -Name $ou -Path $BaseDN -ErrorAction SilentlyContinue
}
# Groupes par service
foreach ($service in "Compta", "RH", "Direction", "Informatique") {
New-ADGroup -Name "GG-$service" -GroupScope Global -Path "OU=Groupes-SIO,$BaseDN" -ErrorAction SilentlyContinue
}
# Utilisateurs (Prénom;Nom;Service)
$motDePasseInitial = Read-Host -AsSecureString "Mot de passe initial des utilisateurs"
$personnes = @("Jean;Dupont;Compta", "Alice;Martin;RH", "Karim;Benali;Informatique")
foreach ($ligne in $personnes) {
$prenom, $nom, $service = $ligne.Split(";")
$login = ($prenom.Substring(0,1) + $nom).ToLower()
New-ADUser -Name "$prenom $nom" -GivenName $prenom -Surname $nom -SamAccountName $login `
-UserPrincipalName "$login@$Domaine" -Path "OU=Utilisateurs-SIO,$BaseDN" `
-AccountPassword $motDePasseInitial -ChangePasswordAtLogon $true -Enabled $true
Add-ADGroupMember -Identity "GG-$service" -Members $login
Write-Host "Créé : $login ($service)"
}
# DHCP
Install-WindowsFeature DHCP -IncludeManagementTools
Add-DhcpServerInDC -DnsName "$NomServeur.$Domaine" -IPAddress $IPServeur
Add-DhcpServerv4Scope -Name "LAN" -StartRange 192.168.10.100 -EndRange 192.168.10.200 -SubnetMask 255.255.255.0
Set-DhcpServerv4OptionValue -ScopeId 192.168.10.0 -Router $Passerelle -DnsServer $IPServeur -DnsDomain $Domaine
Get-ADUser -Filter * -SearchBase "OU=Utilisateurs-SIO,$BaseDN" | Select-Object Name, SamAccountName
}
}