Complete Active Directory teaching environment based on dockurr/windows: - Windows Server domain controller, Windows 11 client, Debian 12 client - docker-compose orchestration, env-driven configuration - Bilingual documentation (FR + EN) for students - Dual approach (GUI + PowerShell) in every procedure - Instructor course plan and reference scripts - RDP launcher scripts for Linux, macOS and Windows Made by AcadéNice - https://acadenice.fr/
166 lines
4.9 KiB
Markdown
166 lines
4.9 KiB
Markdown
# Joindre le poste Windows au domaine
|
|
|
|
Objectif : démarrer le conteneur `pc01`, installer Windows 11, puis joindre la
|
|
machine au domaine `corp.lab`.
|
|
|
|
## Démarrer le conteneur
|
|
|
|
```
|
|
docker compose up -d pc01
|
|
```
|
|
|
|
L'installation Windows 11 se déroule en automatique, même principe que pour
|
|
`DC01`. Compte 20 à 40 minutes. Suis la progression via :
|
|
|
|
- [http://localhost:8009](http://localhost:8009) (port web de `pc01`)
|
|
- `docker compose logs -f pc01`
|
|
|
|
Une fois le bureau accessible, utilise RDP pour la suite :
|
|
|
|
```
|
|
./scripts/rdp-client.sh
|
|
```
|
|
|
|
Identifiants locaux : `LocalAdmin` / `AD_ADMIN_PASSWORD` (même valeur que pour
|
|
DC01 dans ce lab).
|
|
|
|
## Étape 1 : préparer le client
|
|
|
|
### Renommer la machine
|
|
|
|
Les installs dockurr partent avec un hostname généré (`WIN-xxxxxxx`). On le
|
|
change avant de joindre. Approche graphique via `Paramètres > Système > À
|
|
propos > Renommer ce PC`, ou PowerShell :
|
|
|
|
```
|
|
Rename-Computer -NewName "PC01" -Restart
|
|
```
|
|
|
|
### Pointer le DNS vers le DC
|
|
|
|
Sans DNS correct, la jonction échoue. PC01 doit interroger `DC01` pour
|
|
résoudre `corp.lab` et les enregistrements SRV d'AD.
|
|
|
|
Approche graphique : `Paramètres > Réseau > Propriétés de la carte réseau >
|
|
Modifier les paramètres DNS`.
|
|
|
|
Approche PowerShell :
|
|
|
|
```
|
|
Get-NetAdapter | Format-Table Name, Status
|
|
# Remplace "Ethernet" par le nom de ta carte
|
|
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses <IP_du_DC>
|
|
```
|
|
|
|
Pour déterminer l'IP à utiliser, voir le bloc "Spécificité du lab Docker"
|
|
ci-dessous.
|
|
|
|
### Spécificité du lab Docker
|
|
|
|
`dockurr/windows` fait tourner Windows dans une VM avec NAT interne. L'IP que
|
|
le DC annonce dans son DNS est son IP interne VM (non routable depuis
|
|
`PC01`). Mais le conteneur DC dispose d'une règle DNAT qui forwarde tous les
|
|
ports vers la VM.
|
|
|
|
Solution : utilise l'IP du **conteneur** `DC01` (celle visible via
|
|
`docker inspect lab-dc01`) et ajoute une entrée `hosts` pour que la résolution
|
|
retombe dessus.
|
|
|
|
Dans PowerShell (PC01) :
|
|
|
|
```
|
|
# Remplacer <IP_CONTAINER_DC> par celle retournée côté hôte par :
|
|
# docker inspect lab-dc01 --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
|
|
Add-Content C:\Windows\System32\drivers\etc\hosts "`n<IP_CONTAINER_DC> corp.lab dc01.corp.lab dc01"
|
|
ipconfig /flushdns
|
|
```
|
|
|
|
Test :
|
|
|
|
```
|
|
Test-NetConnection -ComputerName corp.lab -Port 389
|
|
nslookup corp.lab
|
|
```
|
|
|
|
## Étape 2 : joindre au domaine
|
|
|
|
### Approche graphique
|
|
|
|
1. `Paramètres > Système > À propos > Joindre un domaine`
|
|
2. Ou via `sysdm.cpl > Modifier`
|
|
3. Saisir `corp.lab`, valider
|
|
4. Entrer les identifiants `CORP\Administrator`
|
|
5. Redémarrer quand demandé
|
|
|
|
### Approche PowerShell
|
|
|
|
Cmdlet clé : `Add-Computer`.
|
|
|
|
```
|
|
$pass = ConvertTo-SecureString "AdminP@ss!2026" -AsPlainText -Force
|
|
$cred = New-Object System.Management.Automation.PSCredential("CORP\Administrator", $pass)
|
|
|
|
Add-Computer -DomainName corp.lab -Credential $cred -Restart
|
|
```
|
|
|
|
## Étape 3 : autoriser un utilisateur AD à se connecter en RDP
|
|
|
|
Par défaut, seuls les membres du groupe local `Administrateurs` peuvent
|
|
ouvrir une session RDP. Après jonction au domaine, le groupe local
|
|
`Administrateurs` contient `CORP\Domain Admins`, donc un admin de domaine
|
|
peut RDP. Mais les utilisateurs standards doivent être ajoutés explicitement.
|
|
|
|
### Approche graphique
|
|
|
|
1. Clic droit sur `Ce PC > Propriétés > Paramètres d'utilisation à distance`
|
|
2. `Sélectionner les utilisateurs` > Ajouter `CORP\pmartin` (ou un groupe AD)
|
|
|
|
### Approche PowerShell
|
|
|
|
```
|
|
Add-LocalGroupMember -Group "Utilisateurs du Bureau à distance" -Member "CORP\pmartin"
|
|
```
|
|
|
|
En pratique, crée un groupe AD dédié (par exemple `GG_UtilisateursRDP`) et
|
|
ajoute-le via GPO au groupe local de toutes les machines.
|
|
|
|
## Étape 4 : tester la connexion en utilisateur AD
|
|
|
|
Depuis l'hôte Linux/macOS :
|
|
|
|
```
|
|
xfreerdp3 /v:127.0.0.1:3391 /u:pmartin /d:CORP /p:'<mdp>' /cert:ignore +clipboard /size:1600x900 /dynamic-resolution
|
|
```
|
|
|
|
Sous Windows, utilise `mstsc` et saisis `CORP\pmartin`.
|
|
|
|
Une fois connecté, valide :
|
|
|
|
```
|
|
whoami
|
|
whoami /groups
|
|
Get-ComputerInfo | Select CsDomain, CsDomainRole
|
|
```
|
|
|
|
Tu dois voir :
|
|
|
|
- `CORP\pmartin`
|
|
- les groupes AD de l'utilisateur
|
|
- `CsDomainRole : MemberWorkstation`
|
|
|
|
## Points d'attention
|
|
|
|
- Un compte avec l'option "changement de mot de passe au prochain login" ne
|
|
peut pas se connecter via RDP avec NLA. Soit tu désactives l'option côté DC
|
|
(`Set-ADUser -ChangePasswordAtLogon $false`), soit tu forces un premier
|
|
login via `/sec:rdp` pour afficher la page de changement.
|
|
- Si tu rencontres `Le mappage entre les noms de compte et les ID de sécurité
|
|
n'a pas été effectué` lors d'un `Add-Computer`, le PC a un état AD corrompu.
|
|
Repasse en workgroup via `Add-Computer -WorkgroupName "WORKGROUP" -Force`
|
|
puis recommence.
|
|
- Ne laisse pas traîner des comptes d'ordinateur orphelins : quand tu
|
|
recrées `PC01`, pense à supprimer l'entrée dans `CN=Computers`.
|
|
|
|
## Étape suivante
|
|
|
|
`07-jonction-poste-linux.md` pour faire la même chose côté Linux.
|