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
1Server Core — ce que c’est, ce que ce n’est pas
2 Le mode d’installation est définitif
3Administrer une machine sans interface — les quatre voies
4Les commandes de survie
5Préparer la machine avant toute promotion
6Installer le rôle et créer la forêt
7Ce que la promotion change réellement
8DNS et Active Directory — un couple indissociable
9SSH sur Windows Server
10Joindre un poste au domaine
11 La relation d’approbation — les deux sens du mot
12Le second contrôleur de domaine
13Piè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

ArgumentDétail
Surface d’attaquePas de navigateur, pas de lecteur de documents, pas d’explorateur : autant de vecteurs d’attaque qui n’existent pas
CorrectifsBeaucoup de mises à jour visent des composants d’interface. Absents, ils n’ont pas à être corrigés — donc moins de redémarrages
RessourcesEnviron la moitié de la mémoire, et un disque plus petit
DisciplineOn 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

AbsentConséquence pratique
Explorateur de fichiersNavigation par commandes
Navigateur webImpossible de télécharger quoi que ce soit par clic
Consoles MMC localesOn les exécute depuis un autre poste, pointées sur le serveur
Panneau de configurationTout 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écisionCoût
Avant l’installationnul
Après l’installation, avant la promotionune réinstallation
Après la promotion en contrôleur de domaineune 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, sconfig est 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

OutilPrincipe
Outils d’administration de serveur distantLes consoles graphiques habituelles, installées sur un poste d’administration, pointées sur le serveur
Windows Admin CenterUne interface web d’administration, hébergée sur un autre poste
PowerShell distantEnter-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émentPourquoi avant
1Nom de la machineIl 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
2Adresse IP fixeElle est publiée dans le DNS du domaine. Un contrôleur qui change d’adresse casse la résolution pour tous les clients
3Source de tempsVoir l’encadré ci-dessous
4Résolveur DNSAvant 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ètreRô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:manualInterdit de retomber sur une autre source

/reliable:yes vient 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-01 en fait 10. Windows l’affichera en majuscules — la casse n’a aucune importance.

État validé sur l’infrastructure

ContrôleAttenduConstaté
hostnameAD-Core-01 AD-Core-01
Adresse10.0.30.10/24, origine manuelle
Passerelle10.0.30.1
Résolveur10.0.30.1
w32tm /query /source10.0.30.1 10.0.30.1,0x8
Rôle ADnon 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’Administrateur local 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érationCompte requis
Créer une nouvelle forêtAdministrateur local de la machine
Ajouter un domaine enfantmembre des Administrateurs de l’entreprise
Ajouter un contrôleur à un domaine existantmembre 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ètreRôle
AD-Domain-ServicesLe rôle de contrôleur de domaine
-IncludeManagementToolsInstalle 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ètreRôle
-DomainNameLe nom complet du domaine
-DomainNetbiosNameLe nom court, hérité des anciens protocoles. 15 caractères maximum, sans point
-InstallDns:$trueInstalle 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 .internal n’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
ServiceRôle
NTDSLa base de l’annuaire
DNSLa résolution de noms du domaine
NetlogonL’authentification et la publication des enregistrements de service
kdcLe 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

AvantAprès
Session SSH avec un compte localSession 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: TrueAvec $false
Résolveur interne en panneLa résolution continueToute la résolution s’arrête
Chemins de sortieDeux : le redirecteur, et le directUn seul
Lisibilité du traficUn flux sortant peut apparaître sans passer par le redirecteurChaque 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.

ArgumentDétail
RésilienceLa 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éelleLe 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éversibleSet-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ôleAttenduObservé
Résolveur du contrôleurla boucle locale Ethernet → {127.0.0.1} — basculé par la promotion, aucune action manuelle
Redirecteur10.0.30.1 IPAddress : 10.0.30.1
UseRootHintdécision à prendre True — laissé actif, décision documentée ci-dessus
Nom interne10.0.30.10 AD-Core-01.sio.internal → 10.0.30.10
Nom externeune 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_keys

Et il refuse silencieusement ce fichier si ses droits ne sont pas restreints à SYSTEM et au groupe Administrateurs. 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 : Administrators en anglais, Administrateurs en 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

#ConditionVérification
1Le poste interroge le DNS du domaineResolve-DnsName sio.internal doit répondre
2L’écart d’horloge est inférieur à 5 minutesw32tm /query /status des deux côtés
3Les flux d’annuaire sont autorisés par le pare-feurè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-ComputerSecureChannel vé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 quoiQuand on en parle
① Le canal sécuriséUn poste et son domaineLe message « La relation d’approbation entre cette station de travail et le domaine principal a échoué »
② L’approbation de domaineDeux domaines ou deux forêtsQuand 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’ordinateurPOSTE-WIN11$ — le $ final le distingue d’un compte d’utilisateur
Ce compte a un mot de passeGénéré automatiquement, jamais saisi par personne, jamais affiché
Les deux côtés en gardent une copieL’annuaire d’un côté, le registre local de l’autre
Il change tout seulTous 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

CausePourquoi
Restauration d’un instantané de VMLe poste revient à une copie ancienne du secret ; l’annuaire, lui, a la version actuelle
Objet ordinateur supprimé puis recréé dans l’annuaireNouveau 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éparationDeux machines prétendent être le même compte
Réinstallation du poste sous le même nomLa 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 croitLa 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éponseSignification
TrueLe canal est sain — la cause est ailleurs
FalseLes 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 : -Repair remet 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 » signifieA fait confiance aux utilisateurs de B, donc A accepte qu’ils accèdent à ses ressources
Le sens de l’accèsDe B vers A — à l’opposé de la flèche d’approbation
La formule qui aideCelui qui approuve est celui qui ouvre sa porte.

Unidirectionnelle ou bidirectionnelle

TypeEffet
UnidirectionnelleA approuve B. Les utilisateurs de B entrent chez A. L’inverse reste fermé
BidirectionnelleChacun approuve l’autre. C’est deux approbations, pas une

Transitive ou non

TypeEffet
TransitiveSi A approuve B et B approuve C, alors A approuve C sans rien configurer
Non transitiveLa 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

TypeCrééeSensTransitiveUsage
Parent-enfantAutomatiquementBidirectionnellefiliale.sio.internal sous sio.internal
Arbre-racineAutomatiquementBidirectionnelleDeux arborescences de noms dans une même forêt
ExterneManuellementAu choixVers un domaine d’une autre forêt, ou un domaine ancien
ForêtManuellementAu choixDeux forêts entières — le cas d’une fusion d’entreprises
Royaume (realm)ManuellementAu choixAu choixVers un Kerberos non Windows, souvent UNIX
RaccourciManuellementAu choixAccé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ômeC’est le sensOù 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 tempsNi l’un ni l’autreDNS, 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ôleurContrôleur supplémentaire
CommandeInstall-ADDSForestInstall-ADDSDomainController
Créeune forêt, un domaine, une zone DNSrien — il rejoint l’existant
Compte requisAdministrateur localmembre des Administrateurs du domaine
Résolveur avant opérationun 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ègeSymptômeCorrection
1Promotion avant renommageLe contrôleur porte un nom généré automatiquementRenommer avant — après, procédure lourde
2Source de temps non maîtriséeOuvertures de session intermittentes, aucun message parlant d’heurePointer sur la référence de l’infrastructure, avant promotion
3Promotion sous un compte autre qu’AdministrateurÉchec de la création de forêtOuvrir une session en Administrateur local
4Mot de passe de restauration perduImpossible de réparer l’annuaire le jour où il est casséLe noter hors de la machine, dès la promotion
5Avertissement de délégation DNS pris pour une erreurPromotion interrompue par précaution excessiveNormal sur un domaine interne — continuer
6Résolveur des postes basculé trop tôtLes postes perdent toute résolutionVérifier le contrôleur avant de distribuer son adresse
7Clé SSH dans le profil d’un administrateurRefus d’authentification sans message expliciteadministrators_authorized_keys + icacls
8Poste renommé après jonctionL’objet ordinateur porte le mauvais nomRenommer avant
9Niveau fonctionnel élevé d’embléeImpossible d’ajouter un contrôleur plus ancienGarder la valeur par défaut, élever seulement si nécessaire
10Attendre une conversion Core ↔ graphiquePerte de tempsImpossible 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 Administrateur connu
  • Console de l’hyperviseur ouverte
  • Mot de passe de restauration choisi et noté hors de la machine

12.3 Checklist — après promotion

  • Get-ADDomain répond, nom et nom court conformes
  • Services NTDS, DNS, Netlogon, kdc démarrés
  • dcdiag sans 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:yes posé 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

Références