Mode opératoire — Windows Server Core et Active Directory
Document autonome. Partie théorique, puis mise en œuvre appliquée à l’infrastructure
sio.internal. La méthode vaut pour toute installation Server Core.Dernière mise à jour : 03/10/2026 État au 12/11/2026 : un seul contrôleur (
AD-Core-01, dette T-8) ; LDAPS 636 avec un certificat auto-signé (11/11, dette T-21 ; le LDAP en clair est refusé : signature obligatoire, H-97) ; schéma étendu pour LAPS (11/11, étape 74) ; partage cachéDeploiement$(phase 21).
Sommaire
| § | Contenu |
|---|---|
| 1 | Server Core — ce que c’est, ce que ce n’est pas |
| 2 | Le mode d’installation est définitif |
| 3 | Administrer une machine sans interface — les quatre voies |
| 4 | Les commandes de survie |
| 5 | Préparer la machine avant toute promotion |
| 6 | Installer le rôle et créer la forêt |
| 7 | Ce que la promotion change réellement |
| 8 | DNS et Active Directory — un couple indissociable |
| 9 | SSH sur Windows Server |
| 10 | Joindre un poste au domaine |
| 11 | La relation d’approbation — les deux sens du mot |
| 12 | Le second contrôleur de domaine |
| 13 | Pièges et checklists |
1 · Server Core — ce que c’est
1.1 Une installation sans interface graphique
SERVER CORE DESKTOP EXPERIENCE
─────────── ──────────────────
une invite de commande le bureau Windows complet
pas d'explorateur de fichiers explorateur, navigateur, MMC
pas de navigateur outils d'administration locaux
~2 Go de RAM au repos ~4 Go de RAM au repos
nettement moins de correctifs tous les correctifs du poste de travail
Server Core n’est pas une version allégée ou bridée de Windows Server. C’est le même système, avec les mêmes rôles et les mêmes capacités — seule la couche de présentation graphique est absente. Un contrôleur de domaine sur Core est un contrôleur de domaine complet.
1.2 Pourquoi c’est le choix par défaut en production
| Argument | Détail |
|---|---|
| Surface d’attaque | Pas de navigateur, pas de lecteur de documents, pas d’explorateur : autant de vecteurs d’attaque qui n’existent pas |
| Correctifs | Beaucoup de mises à jour visent des composants d’interface. Absents, ils n’ont pas à être corrigés — donc moins de redémarrages |
| Ressources | Environ la moitié de la mémoire, et un disque plus petit |
| Discipline | On ne travaille pas sur le serveur, on l’administre à distance. C’est la bonne pratique, Core la rend obligatoire |
Le dernier point est le plus formateur. Avec une interface graphique, la tentation est d’ouvrir une session sur le serveur et de cliquer. Sur Core, c’est impossible : on apprend à administrer depuis un poste d’administration, par commandes ou par outils déportés. C’est ce qui sépare un administrateur d’un utilisateur avancé.
1.3 Ce qui n’existe pas sur Core
| Absent | Conséquence pratique |
|---|---|
| Explorateur de fichiers | Navigation par commandes |
| Navigateur web | Impossible de télécharger quoi que ce soit par clic |
| Consoles MMC locales | On les exécute depuis un autre poste, pointées sur le serveur |
| Panneau de configuration | Tout passe par sconfig ou PowerShell |
| Fond d’écran, sons, thèmes | — |
2 · Le mode d’installation est définitif
Le piège le plus coûteux de ce sujet.
Jusqu’à Windows Server 2012 R2, les deux modes étaient deux états d’une même installation. On basculait de l’un à l’autre par ajout ou retrait d’une fonctionnalité.
Depuis Windows Server 2016, cette conversion n’existe plus. Le mode est choisi au moment de l’installation et ne peut plus changer. Pour passer de l’un à l’autre, il faut réinstaller.
La raison est technique : les deux modes ne partagent plus le même jeu de composants de base. Desktop Experience n’est pas « Core plus une interface par-dessus », c’est une image différente.
2.1 La conséquence qu’il faut anticiper
| Moment de la décision | Coût |
|---|---|
| Avant l’installation | nul |
| Après l’installation, avant la promotion | une réinstallation |
| Après la promotion en contrôleur de domaine | une démotion, un nettoyage des métadonnées de l’annuaire, puis une recréation |
C’est pourquoi le mode se décide en premier, avant même de créer la machine virtuelle. Et c’est aussi pourquoi, dans ce TP, le remplacement a été fait avant toute promotion : à ce stade il ne coûtait qu’une réinstallation.
2.2 Vérifier dans quel mode on se trouve
Get-CimInstance Win32_OperatingSystem | Select-Object Caption, OperatingSystemSKU
Get-WindowsFeature Server-Gui-Shell -ErrorAction SilentlyContinue
Sur Core, la fonctionnalité d’interface graphique est tout simplement absente du catalogue — pas « disponible, non installée ». C’est la preuve que la conversion n’est pas envisageable.
3 · Administrer une machine sans interface
Quatre voies, complémentaires et non exclusives.
3.1 sconfig — le menu de configuration
sconfig
Un menu en mode texte pour les opérations de base : nom de la machine, domaine, réseau, mises à jour, Bureau à distance, redémarrage.
C’est le point d’entrée pour quelqu’un qui découvre Core. Il évite d’avoir à mémoriser les commandes pour les gestes courants. Depuis Windows Server 2022,
sconfigest un script PowerShell — on peut donc lire ce qu’il fait.
3.2 PowerShell en local
L’invite par défaut sur Core est cmd.exe. On bascule par :
powershell
Pour que PowerShell soit l’invite par défaut à chaque ouverture de session :
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon' `
-Name Shell -Value 'PowerShell.exe -NoExit'
3.3 SSH — l’administration à distance en ligne de commande
C’est la voie retenue dans cette infrastructure. Détaillée au §9.
3.4 Les outils déportés
| Outil | Principe |
|---|---|
| Outils d’administration de serveur distant | Les consoles graphiques habituelles, installées sur un poste d’administration, pointées sur le serveur |
| Windows Admin Center | Une interface web d’administration, hébergée sur un autre poste |
| PowerShell distant | Enter-PSSession ou Invoke-Command depuis une autre machine |
Le serveur n’a pas besoin d’interface : c’est l’administrateur qui en a une. Les consoles s’exécutent sur le poste d’administration et dialoguent avec le serveur par le réseau. Le serveur reste dépouillé.
4 · Les commandes de survie
Celles sans lesquelles on est bloqué sur une machine sans explorateur.
4.1 Identité et état
hostname # nom de la machine
(Get-CimInstance Win32_OperatingSystem).Caption # version exacte
Get-ComputerInfo -Property Os* # inventaire complet (lent)
Get-Service | Where-Object Status -eq 'Running' # services actifs
4.2 Réseau
Get-NetIPAddress -AddressFamily IPv4 | Where-Object InterfaceAlias -notlike '*Loopback*'
Get-NetRoute -DestinationPrefix 0.0.0.0/0 # passerelle
Get-DnsClientServerAddress -AddressFamily IPv4 # resolveurs
Test-NetConnection 10.0.30.1 -Port 53 # un port est-il joignable ?
Configurer une adresse fixe :
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 10.0.30.10 `
-PrefixLength 24 -DefaultGateway 10.0.30.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 10.0.30.1
4.3 Fichiers
Get-ChildItem C:\ # lister
Get-Content fichier.txt # afficher
Set-Content fichier.txt "texte" # ecrire
Copy-Item source destination
notepad fichier.txt # oui, le bloc-notes existe sur Core
Le bloc-notes est présent sur Server Core, et il reste le moyen le plus simple de corriger un fichier de configuration. C’est l’une des rares fenêtres graphiques disponibles.
4.4 Rôles et fonctionnalités
Get-WindowsFeature | Where-Object InstallState -eq 'Installed'
Install-WindowsFeature <nom> -IncludeManagementTools
Get-WindowsCapability -Online | Where-Object Name -like '*OpenSSH*'
4.5 Heure
w32tm /query /source # d'ou vient l'heure ?
w32tm /query /status # etat de la synchronisation
w32tm /resync # forcer une resynchronisation
4.6 Redémarrer, éteindre
Restart-Computer -Force
Stop-Computer -Force
5 · Préparer la machine avant toute promotion
L’ordre de cette section n’est pas négociable. Chaque élément devient difficile à changer une fois le serveur promu.
5.1 Les quatre éléments à figer
| # | Élément | Pourquoi avant |
|---|---|---|
| 1 | Nom de la machine | Il est inscrit dans les enregistrements DNS du domaine et dans l’annuaire. Le changer après exige une procédure spécifique et risquée |
| 2 | Adresse IP fixe | Elle est publiée dans le DNS du domaine. Un contrôleur qui change d’adresse casse la résolution pour tous les clients |
| 3 | Source de temps | Voir l’encadré ci-dessous |
| 4 | Résolveur DNS | Avant promotion : un résolveur qui fonctionne. Après : lui-même — la promotion s’en charge |
5.2 Pourquoi l’heure est critique
Kerberos, le protocole d’authentification du domaine, refuse un écart de plus de 5 minutes entre le client et le serveur. C’est une protection contre le rejeu d’un ticket capturé.
Et le contrôleur qui porte le rôle d’émulateur PDC devient la référence horaire de tout le domaine : chaque machine jointe règle son horloge sur lui.
Une source de temps non maîtrisée produit donc des échecs d’ouverture de session incompréhensibles et en cascade, sans aucun message mentionnant l’heure.
Appliqué à cette infrastructure
L’architecture pose une référence horaire unique sur l’équipement de filtrage. Le contrôleur doit donc s’y synchroniser, et non sur Internet.
w32tm /config /manualpeerlist:"10.0.30.1,0x8" /syncfromflags:manual /update
Restart-Service w32time
w32tm /query /source
| Paramètre | Rôle |
|---|---|
manualpeerlist:"10.0.30.1,0x8" | Désigne la source. Le suffixe 0x8 demande une interrogation en mode client, le comportement attendu face à un serveur de temps |
syncfromflags:manual | Interdit de retomber sur une autre source |
/reliable:yesvient plus tard. Cette option déclare la machine comme source fiable pour les autres : elle n’a de sens qu’une fois le domaine créé, sur le contrôleur qui porte l’émulateur PDC.
5.3 Renommer
Rename-Computer -NewName "AD-Core-01" -Force
Restart-Computer -Force
Le nom NetBIOS est limité à 15 caractères, sans point.
AD-Core-01en fait 10. Windows l’affichera en majuscules — la casse n’a aucune importance.
État validé sur l’infrastructure
| Contrôle | Attendu | Constaté |
|---|---|---|
hostname | AD-Core-01 | AD-Core-01 |
| Adresse | 10.0.30.10/24, origine manuelle | |
| Passerelle | 10.0.30.1 | |
| Résolveur | 10.0.30.1 | |
w32tm /query /source | 10.0.30.1 | 10.0.30.1,0x8 |
| Rôle AD | non installé | Available |
6 · Installer le rôle et créer la forêt
6.1 Le compte avec lequel on opère
Pour créer une nouvelle forêt, il faut être connecté en tant qu’
Administrateurlocal de la machine. C’est une exigence documentée par Microsoft, pas une recommandation.
Ce n’est pas un détail d’organisation : si l’administration quotidienne se fait avec un compte
dédié, la promotion, elle, se fait sous le compte Administrateur.
| Opération | Compte requis |
|---|---|
| Créer une nouvelle forêt | Administrateur local de la machine |
| Ajouter un domaine enfant | membre des Administrateurs de l’entreprise |
| Ajouter un contrôleur à un domaine existant | membre des Administrateurs du domaine |
6.2 Installer le rôle
Sans redémarrage, sans effet sur les accès en cours :
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
| Paramètre | Rôle |
|---|---|
AD-Domain-Services | Le rôle de contrôleur de domaine |
-IncludeManagementTools | Installe les outils d’administration — ils ne sont pas inclus par défaut avec PowerShell |
Attendu : Success: True.
6.3 Créer la forêt
Install-ADDSForest -DomainName "sio.internal" -DomainNetbiosName "SIO" -InstallDns:$true -Force
| Paramètre | Rôle |
|---|---|
-DomainName | Le nom complet du domaine |
-DomainNetbiosName | Le nom court, hérité des anciens protocoles. 15 caractères maximum, sans point |
-InstallDns:$true | Installe le serveur DNS et crée la zone. En réalité, c’est le comportement par défaut de cette commande — on l’écrit pour rendre l’intention explicite |
-Force | Évite les confirmations intermédiaires |
Le niveau fonctionnel
Les paramètres -DomainMode et -ForestMode ne sont pas précisés. La valeur par défaut
convient.
Élever un niveau fonctionnel est irréversible. On ne le fait que lorsqu’une fonction précise l’exige, et seulement quand tous les contrôleurs présents et à venir supportent ce niveau. Fixer d’emblée le niveau le plus élevé interdirait d’ajouter un contrôleur plus ancien — c’est une porte qu’on ferme sans contrepartie.
Le mot de passe de restauration
La commande demande un mot de passe de restauration des services d’annuaire.
Ce n’est pas le mot de passe administrateur. C’est celui qui permet de démarrer le contrôleur en mode réparation quand l’annuaire lui-même est hors d’usage — donc précisément le jour où plus rien d’autre ne fonctionne.
Note-le ailleurs que sur cette machine. Il ne sert qu’une fois, et toujours au pire moment.
Ne jamais le passer en clair dans la commande. Omis, il est demandé de façon masquée — c’est l’usage recommandé. Écrit dans la ligne de commande, il se retrouve dans l’historique du terminal, et quiconque le connaît peut usurper le contrôleur et s’élever au plus haut niveau de privilège de la forêt.
6.4 Un avertissement attendu
Une délégation pour ce serveur DNS ne peut pas être créée car la zone parente
faisant autorité est introuvable…
Ce n’est pas une erreur. Le suffixe
.internaln’a pas de zone parente sur Internet : il n’y a donc aucune délégation à créer. Le domaine fonctionnera parfaitement. Cet avertissement apparaît systématiquement sur un domaine interne.
La machine redémarre seule à la fin de l’opération.
6.5 Vérifier après redémarrage
Get-ADDomain | Format-List Name, DNSRoot, NetBIOSName, DomainMode, ReplicaDirectoryServers
Get-ADForest | Format-List Name, ForestMode, GlobalCatalogs
Get-Service NTDS, DNS, Netlogon, kdc | Format-Table Name, Status
| Service | Rôle |
|---|---|
NTDS | La base de l’annuaire |
DNS | La résolution de noms du domaine |
Netlogon | L’authentification et la publication des enregistrements de service |
kdc | Le centre de distribution de clés Kerberos |
Contrôle plus complet :
dcdiag /v
7 · Ce que la promotion change réellement
7.1 La base de comptes locale
Lors de la promotion, la base de comptes locale est convertie en base d’annuaire. Le compte
Administrateur local devient l’administrateur du domaine, avec son mot de passe.
Ne pas faire reposer son accès sur un compte local. Le comportement exact des autres comptes locaux lors de la conversion est une zone à vérifier plutôt qu’à supposer : après promotion, l’authentification passe par l’annuaire, et un compte doit être désigné sous sa forme domaine —
SIO\Administrateur.La précaution qui couvre tous les cas : connaître le mot de passe du compte
Administrateur, et garder un accès hors bande ouvert pendant l’opération.
7.2 Le filet de sécurité
La console de l’hyperviseur ne dépend d’aucune règle de filtrage, d’aucun service réseau, d’aucune clé et d’aucun compte de domaine. C’est le seul accès qui survit à une promotion ratée ou à une erreur de configuration réseau. Elle reste ouverte pendant toute l’opération.
7.3 Ce qui change pour l’accès distant
| Avant | Après |
|---|---|
| Session SSH avec un compte local | Session SSH avec un compte du domaine |
| Clé déposée dans le profil du compte | Voir le §9 — le piège des comptes administrateurs |
8 · DNS et Active Directory
8.1 Pourquoi ils sont indissociables
Un domaine ne se trouve pas par son adresse IP mais par des enregistrements de service
publiés dans le DNS. Un poste qui veut rejoindre le domaine demande à son résolveur :
« qui est le contrôleur de sio.internal ? »
Sans DNS correct, rien ne fonctionne — et les symptômes ne mentionnent jamais le DNS. Jonction au domaine qui échoue, ouvertures de session lentes, stratégies non appliquées : l’immense majorité des pannes d’un domaine sont des pannes de résolution de noms.
8.2 Le résolveur du contrôleur lui-même
Après promotion, le contrôleur doit s’interroger lui-même. La promotion règle généralement ce point seule ; il faut le vérifier.
Get-DnsClientServerAddress -AddressFamily IPv4 |
Where-Object ServerAddresses | Format-Table InterfaceAlias, ServerAddresses
8.3 Le redirecteur
Le contrôleur fait autorité sur sio.internal. Pour tout le reste, il doit transmettre la
question — ici, à l’équipement de filtrage, conformément à l’architecture.
Set-DnsServerForwarder -IPAddress 10.0.30.1 -PassThru
Get-DnsServerForwarder
poste du domaine
│ « www.sio.internal ? » « exemple.fr ? »
▼ │
AD-Core-01 ── fait autorite ──► repond │
│ ▼
└────── redirecteur ──────────► 10.0.30.1 ──► Internet
Pourquoi un redirecteur plutôt qu’une résolution récursive : une seule destination sortante, un comportement prévisible, et la chaîne de résolution reste maîtrisée de bout en bout. C’est la même logique que celle appliquée sur l’équipement de filtrage.
UseRootHint — le second chemin dont personne ne parle
La sortie de Set-DnsServerForwarder affiche une propriété qu’on lit rarement :
UseRootHint : True
Elle signifie que le redirecteur n’est pas exclusif. Si l’équipement de filtrage ne répond pas, le serveur DNS bascule sur une résolution récursive et interroge lui-même les serveurs racine d’Internet. C’est la valeur par défaut, et elle est rarement remise en question.
Avec UseRootHint: True | Avec $false | |
|---|---|---|
| Résolveur interne en panne | La résolution continue | Toute la résolution s’arrête |
| Chemins de sortie | Deux : le redirecteur, et le direct | Un seul |
| Lisibilité du trafic | Un flux sortant peut apparaître sans passer par le redirecteur | Chaque requête suit le chemin prévu |
Le point à vérifier avant de conclure que c’est anodin : le pare-feu autorise-t-il réellement cette seconde sortie ? Si la zone d’administration n’a pas d’autorisation sortante large, le repli échouerait de toute façon et l’option serait sans effet. S’il existe une règle de sortie Internet pour cette zone, le second chemin est bien praticable — et il faut alors le poser comme une décision, pas le laisser par défaut.
Décision retenue dans ce laboratoire : UseRootHint est laissé à True.
| Argument | Détail |
|---|---|
| Résilience | La résolution survit à un redémarrage ou à une panne du résolveur du pare-feu — y compris pendant qu’on diagnostique cette panne |
| Portée réelle | Le repli ne concerne que les noms externes. La zone interne reste servie par le contrôleur, qui en est l’autorité |
| Trafic sortant maîtrisé | Le trafic passe de toute façon par le pare-feu en tant que routeur : il reste filtrable et journalisable, même s’il ne passe plus par son résolveur |
| Réversible | Set-DnsServerForwarder -IPAddress <adresse> -UseRootHint $false suffit à fermer la porte |
La distinction qui justifie ce choix : le pare-feu reste le point de passage unique — c’est le résolveur qui cesse d’être unique. Contourner un service n’est pas contourner un équipement. La segmentation n’est pas entamée ; seule la centralisation de la résolution l’est, et uniquement en mode dégradé.
8.4 L’ordre à respecter pour les postes
Ne bascule pas le résolveur distribué aux postes vers le contrôleur avant que celui-ci ne réponde correctement. Sinon les postes perdent toute résolution — y compris celle qui leur permettrait de diagnostiquer le problème.
1. Promouvoir le contrôleur
2. Configurer son redirecteur
3. VÉRIFIER qu'il résout un nom interne ET un nom externe
4. ALORS SEULEMENT, distribuer son adresse aux postes
Vérification de l’étape 3 :
Resolve-DnsName sio.internal -Server 10.0.30.10
Resolve-DnsName www.google.com -Server 10.0.30.10
État validé sur l’infrastructure
| Contrôle | Attendu | Observé |
|---|---|---|
| Résolveur du contrôleur | la boucle locale | Ethernet → {127.0.0.1} — basculé par la promotion, aucune action manuelle |
| Redirecteur | 10.0.30.1 | IPAddress : 10.0.30.1 |
UseRootHint | décision à prendre | True — laissé actif, décision documentée ci-dessus |
| Nom interne | 10.0.30.10 | AD-Core-01.sio.internal → 10.0.30.10 |
| Nom externe | une adresse publique | microsoft.com → 150.171.109.106 |
Un détail relevé à cette occasion, à surveiller. La résolution du contrôleur renvoie aussi une adresse IPv6 lien-local (
fe80::…), enregistrée dans la zone. Elle n’est valable que sur son propre segment : un client qui la reçoit en premier peut tenter de la joindre, échouer, puis basculer sur l’IPv4.Le symptôme serait une ouverture de session lente, sans message d’erreur. Si cela se produit à la jonction du poste, c’est la première piste à examiner — et non le réseau ou les identifiants.
9 · SSH sur Windows Server
9.1 Installer le serveur OpenSSH
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Set-Service sshd -StartupType Automatic
Start-Service sshd
9.2 Le piège des comptes administrateurs
Si le compte appartient au groupe Administrateurs, OpenSSH ignore son fichier de clés personnel. Il ne lit que :
C:\ProgramData\ssh\administrators_authorized_keysEt il refuse silencieusement ce fichier si ses droits ne sont pas restreints à
SYSTEMet au groupeAdministrateurs. Aucun message ne l’indique côté client : on obtient un simple refus d’authentification.
# deposer la cle publique
Add-Content -Path C:\ProgramData\ssh\administrators_authorized_keys `
-Value "ssh-ed25519 AAAA... commentaire"
# restreindre les droits — SANS CELA, le fichier est ignore
icacls.exe C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r `
/grant "Administrateurs:F" /grant "SYSTEM:F"
Le nom du groupe dépend de la langue du système :
Administratorsen anglais,Administrateursen français. Utiliser le mauvais produit une erreur d’icacls— à lire, elle est explicite.
9.3 Diagnostiquer un refus
Get-Service sshd
Get-Content C:\ProgramData\ssh\logs\sshd.log -Tail 30
Côté client, le mode verbeux dit quelle clé est proposée :
ssh -v [email protected] 2>&1 | grep -i "offering\|identity file"
10 · Joindre un poste au domaine
10.1 Renommer le poste AVANT la jonction
Le nom du poste au moment de la jonction devient le nom de l’objet ordinateur dans l’annuaire. Le renommer ensuite est possible, mais exige de reprendre l’objet dans l’annuaire — autant le faire dans le bon ordre.
Rename-Computer -NewName "poste-win11" -Restart
10.2 Les trois conditions préalables
| # | Condition | Vérification |
|---|---|---|
| 1 | Le poste interroge le DNS du domaine | Resolve-DnsName sio.internal doit répondre |
| 2 | L’écart d’horloge est inférieur à 5 minutes | w32tm /query /status des deux côtés |
| 3 | Les flux d’annuaire sont autorisés par le pare-feu | règle de la zone des postes vers la zone d’administration |
10.3 Joindre
Add-Computer -DomainName "sio.internal" -Credential (Get-Credential SIO\Administrateur) -Restart
10.4 Vérifier
(Get-CimInstance Win32_ComputerSystem) | Format-List Name, Domain, PartOfDomain
Test-ComputerSecureChannel -Verbose
Test-ComputerSecureChannelvérifie le canal sécurisé entre le poste et le domaine. C’est la commande à connaître quand un poste « est dans le domaine » mais que les ouvertures de session échouent.
11 · La relation d’approbation
11.1 Le mot désigne deux choses très différentes
C’est la source de confusion la plus répandue sur Active Directory, et elle vient de la traduction française. Trust relationship a été rendu par « relation d’approbation » dans deux contextes qui n’ont presque rien en commun :
| Entre quoi et quoi | Quand on en parle | |
|---|---|---|
| ① Le canal sécurisé | Un poste et son domaine | Le message « La relation d’approbation entre cette station de travail et le domaine principal a échoué » |
| ② L’approbation de domaine | Deux domaines ou deux forêts | Quand on veut que les utilisateurs de l’un accèdent aux ressources de l’autre |
Le message d’erreur célèbre parle du sens ①, jamais du sens ②. Un technicien qui lit « relation d’approbation » et part chercher une approbation entre domaines perd son après-midi. Dans ce laboratoire il n’y a qu’un seul domaine : aucune approbation du sens ② n’existe, et pourtant l’erreur du sens ① peut parfaitement se produire.
11.2 Sens ① — Le canal sécurisé entre un poste et son domaine
Ce qui se crée au moment de la jonction
Quand un poste rejoint le domaine, il ne se contente pas d’être « déclaré ». Il obtient une identité propre dans l’annuaire :
ANNUAIRE sio.internal
┌───────────────────────────────────────────────┐
│ Utilisateurs Ordinateurs │
│ axel POSTE-WIN11$ │ <- le $ : un compte de MACHINE
│ admin AD-CORE-01$ │
└───────────────────────────────────────────────┘
│
mot de passe connu des DEUX cotes
│
┌────────────────────────────────▼──────────────┐
│ poste-win11 (sa copie locale du secret) │
└───────────────────────────────────────────────┘
| Le poste reçoit un compte d’ordinateur | POSTE-WIN11$ — le $ final le distingue d’un compte d’utilisateur |
| Ce compte a un mot de passe | Généré automatiquement, jamais saisi par personne, jamais affiché |
| Les deux côtés en gardent une copie | L’annuaire d’un côté, le registre local de l’autre |
| Il change tout seul | Tous les 30 jours par défaut, à l’initiative du poste |
La « relation d’approbation », au sens ①, c’est simplement : les deux copies de ce mot de passe concordent-elles encore ? Rien de plus. Ce n’est pas un réglage, pas une option, pas un objet qu’on configure — c’est un secret partagé qui se renouvelle tout seul.
Ce qui la casse
| Cause | Pourquoi |
|---|---|
| Restauration d’un instantané de VM | Le poste revient à une copie ancienne du secret ; l’annuaire, lui, a la version actuelle |
| Objet ordinateur supprimé puis recréé dans l’annuaire | Nouveau compte, nouveau secret — l’ancien ne vaut plus rien |
| Poste resté éteint très longtemps, puis rallumé | Cas rare : l’annuaire conserve l’historique sur deux changements, donc il faut vraiment beaucoup de retard |
| Clonage d’une VM déjà jointe, sans préparation | Deux machines prétendent être le même compte |
| Réinstallation du poste sous le même nom | La machine est neuve, le compte de l’annuaire est l’ancien |
La première ligne te concerne directement. Tu travailles avec des instantanés Proxmox — tu viens d’en prendre un avant la promotion. Restaurer l’instantané d’une machine jointe au domaine casse son canal sécurisé si le mot de passe a changé entre-temps.
Ce n’est pas une raison de ne plus faire d’instantanés. C’est une raison de savoir que, après une restauration, cette panne-là est la première à suspecter — et qu’elle se répare en une commande.
Le symptôme, et ce qu’il ne dit pas
« La relation d’approbation entre cette station de travail et le domaine principal a échoué. »
| Ce que l’utilisateur croit | La réalité |
|---|---|
| « Mon mot de passe ne marche plus » | Son mot de passe est parfait. C’est celui de la machine qui ne concorde plus |
| « Le réseau est coupé » | Le réseau fonctionne : le poste a bien joint le contrôleur, qui l’a refusé |
| « Le domaine est tombé » | Le domaine va très bien, et les autres postes fonctionnent |
Le signe qui ne trompe pas : les autres postes se connectent normalement. Une panne qui ne touche qu’une machine n’est pas une panne de domaine.
Diagnostiquer
Depuis le poste, avec un compte administrateur local — puisque les comptes du domaine sont justement inutilisables :
Test-ComputerSecureChannel -Verbose
| Réponse | Signification |
|---|---|
True | Le canal est sain — la cause est ailleurs |
False | Les deux secrets divergent : c’est bien ça |
Réparer — sans refaire la jonction
Test-ComputerSecureChannel -Repair -Credential (Get-Credential SIO\Administrateur)
C’est l’enseignement principal de cette section. Le réflexe répandu est de sortir le poste du domaine, redémarrer, le rejoindre, redémarrer encore. C’est inutile dans l’immense majorité des cas :
-Repairremet simplement les deux copies du secret d’accord, sans redémarrage, en quelques secondes.Sortir puis rejoindre détruit et recrée l’objet ordinateur — et avec lui ses appartenances à des groupes, ses stratégies ciblées, son emplacement dans l’annuaire. On casse plus que ce qu’on répare.
Variante équivalente, qui force un renouvellement du mot de passe de machine :
Reset-ComputerMachinePassword -Credential (Get-Credential SIO\Administrateur)
11.3 Sens ② — Les approbations entre domaines
À quoi elles servent
Deux domaines sont par défaut étanches : les utilisateurs de l’un sont inconnus de l’autre. Une approbation lève cette étanchéité — de façon contrôlée.
La direction, et pourquoi elle est contre-intuitive
C’est le point qui tombe en question d’oral, parce que l’intuition se trompe une fois sur deux :
DOMAINE A ──────── approuve ────────► DOMAINE B
│ │
│ les utilisateurs de B peuvent │
◄──── acceder aux ressources de A ───────┘
L'ACCES CIRCULE DANS LE SENS INVERSE DE L'APPROBATION.
| « A approuve B » signifie | A fait confiance aux utilisateurs de B, donc A accepte qu’ils accèdent à ses ressources |
| Le sens de l’accès | De B vers A — à l’opposé de la flèche d’approbation |
| La formule qui aide | Celui qui approuve est celui qui ouvre sa porte. |
Unidirectionnelle ou bidirectionnelle
| Type | Effet |
|---|---|
| Unidirectionnelle | A approuve B. Les utilisateurs de B entrent chez A. L’inverse reste fermé |
| Bidirectionnelle | Chacun approuve l’autre. C’est deux approbations, pas une |
Transitive ou non
| Type | Effet |
|---|---|
| Transitive | Si A approuve B et B approuve C, alors A approuve C sans rien configurer |
| Non transitive | La relation s’arrête aux deux domaines concernés |
C’est la transitivité qui rend une forêt cohérente. Tous les domaines d’une même forêt s’approuvent mutuellement et transitivement, automatiquement. On ne crée jamais ces approbations : elles naissent avec les domaines.
Les types d’approbation
| Type | Créée | Sens | Transitive | Usage |
|---|---|---|---|---|
| Parent-enfant | Automatiquement | Bidirectionnelle | filiale.sio.internal sous sio.internal | |
| Arbre-racine | Automatiquement | Bidirectionnelle | Deux arborescences de noms dans une même forêt | |
| Externe | Manuellement | Au choix | Vers un domaine d’une autre forêt, ou un domaine ancien | |
| Forêt | Manuellement | Au choix | Deux forêts entières — le cas d’une fusion d’entreprises | |
| Royaume (realm) | Manuellement | Au choix | Au choix | Vers un Kerberos non Windows, souvent UNIX |
| Raccourci | Manuellement | Au choix | Accélère l’authentification entre deux domaines éloignés d’une grande forêt |
Dans ce laboratoire
Il n’y a qu’un domaine,
sio.internal, dans une forêt du même nom : aucune approbation du sens ② n’existe, et il n’y a aucune raison d’en créer.C’est la réponse honnête, et c’est la bonne : une approbation entre domaines répond à un besoin — fusion, filiale, partenaire, migration. Sans ce besoin, en créer une serait ouvrir une porte sur rien.
Les commandes existent, pour mémoire :
Get-ADTrust -Filter * # lister les approbations existantes
netdom trust <domaine-a> /domain:<domaine-b> /verify
Sur AD-Core-01, Get-ADTrust -Filter * ne renvoie rien. C’est le résultat attendu.
11.4 Le tableau qui évite de se tromper de piste
| Symptôme | C’est le sens | Où regarder |
|---|---|---|
| « La relation d’approbation … a échoué » sur un poste | ① | Test-ComputerSecureChannel sur ce poste |
| Un seul poste touché, les autres fonctionnent | ① | Idem — et chercher une restauration d’instantané récente |
| Après restauration d’un instantané de VM | ① | Test-ComputerSecureChannel -Repair |
| Les utilisateurs d’un autre domaine ne peuvent pas accéder à une ressource | ② | Get-ADTrust, et le sens de l’approbation |
| Tous les postes du domaine sont touchés en même temps | Ni l’un ni l’autre | DNS, heure, ou le contrôleur lui-même |
Le réflexe de tri : combien de machines sont touchées ? Une seule → le canal sécurisé de cette machine. Toutes → le domaine, donc le DNS, l’heure ou le contrôleur. Les utilisateurs d’ailleurs → une approbation entre domaines. Cette question posée en premier fait gagner l’essentiel du temps de diagnostic.
12 · Le second contrôleur de domaine
11.1 Pourquoi deux
Au lab (12/11) : le second contrôleur
AD-Core-02(10.0.30.11) n’est pas déployé (reporté sans échéance, dette T-8). Ce paragraphe décrit la méthode, pas un état réalisé.
Un contrôleur unique est un point de défaillance sur l’authentification, la résolution de noms interne et l’application des stratégies. S’il tombe, plus personne n’ouvre de session. En production, deux contrôleurs minimum est la règle.
11.2 La différence de procédure
| Premier contrôleur | Contrôleur supplémentaire | |
|---|---|---|
| Commande | Install-ADDSForest | Install-ADDSDomainController |
| Crée | une forêt, un domaine, une zone DNS | rien — il rejoint l’existant |
| Compte requis | Administrateur local | membre des Administrateurs du domaine |
| Résolveur avant opération | un résolveur fonctionnel | le premier contrôleur |
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Install-ADDSDomainController -DomainName "sio.internal" `
-Credential (Get-Credential SIO\Administrateur) -InstallDns:$true
Le résolveur du futur second contrôleur doit pointer sur le premier avant l’opération. Sans cela il ne trouve pas le domaine qu’il doit rejoindre — et le message d’erreur parle du domaine, pas du DNS.
11.3 Vérifier la réplication
Get-ADDomainController -Filter * | Format-Table Name, IPv4Address, Site, IsGlobalCatalog
repadmin /replsummary
13 · Pièges et checklists
12.1 Les pièges
| # | Piège | Symptôme | Correction |
|---|---|---|---|
| 1 | Promotion avant renommage | Le contrôleur porte un nom généré automatiquement | Renommer avant — après, procédure lourde |
| 2 | Source de temps non maîtrisée | Ouvertures de session intermittentes, aucun message parlant d’heure | Pointer sur la référence de l’infrastructure, avant promotion |
| 3 | Promotion sous un compte autre qu’Administrateur | Échec de la création de forêt | Ouvrir une session en Administrateur local |
| 4 | Mot de passe de restauration perdu | Impossible de réparer l’annuaire le jour où il est cassé | Le noter hors de la machine, dès la promotion |
| 5 | Avertissement de délégation DNS pris pour une erreur | Promotion interrompue par précaution excessive | Normal sur un domaine interne — continuer |
| 6 | Résolveur des postes basculé trop tôt | Les postes perdent toute résolution | Vérifier le contrôleur avant de distribuer son adresse |
| 7 | Clé SSH dans le profil d’un administrateur | Refus d’authentification sans message explicite | administrators_authorized_keys + icacls |
| 8 | Poste renommé après jonction | L’objet ordinateur porte le mauvais nom | Renommer avant |
| 9 | Niveau fonctionnel élevé d’emblée | Impossible d’ajouter un contrôleur plus ancien | Garder la valeur par défaut, élever seulement si nécessaire |
| 10 | Attendre une conversion Core ↔ graphique | Perte de temps | Impossible depuis 2016 — réinstaller |
12.2 Checklist — avant promotion
- Mode d’installation décidé définitivement (Core)
- Nom de machine définitif, 15 caractères maximum
- Adresse IP fixe, origine manuelle vérifiée
- Passerelle correcte
- Résolveur DNS fonctionnel
- Source de temps maîtrisée, vérifiée par
w32tm /query /source - Aucun conflit d’adresse — ancienne machine éteinte ou supprimée
- Mot de passe du compte
Administrateurconnu - Console de l’hyperviseur ouverte
- Mot de passe de restauration choisi et noté hors de la machine
12.3 Checklist — après promotion
-
Get-ADDomainrépond, nom et nom court conformes - Services
NTDS,DNS,Netlogon,kdcdémarrés -
dcdiagsans erreur bloquante - Le résolveur du contrôleur pointe sur lui-même
- Redirecteur configuré vers la référence de l’infrastructure
- Résolution vérifiée : un nom interne et un nom externe
-
/reliable:yesposé sur la source de temps - Accès distant rétabli avec un compte du domaine
- Sauvegarde de l’état système envisagée
12.4 Checklist — avant de joindre un poste
- Poste renommé définitivement
- Son résolveur pointe sur le contrôleur
- Écart d’horloge inférieur à 5 minutes
- Flux d’annuaire autorisés par le pare-feu
- Identifiants d’un compte habilité disponibles
