Administration Windows Server & Active Directory · Étape 18

Conçois, lie et dépanne des stratégies de groupe

Crée une GPO ciblée, maîtrise ordre de traitement, filtrage, scripts de connexion, durcissement navigateur et preuves d’application.

Durée indicative · ~2 h 20Niveau intermédiairePrérequis conseillé · Leçon 17 — AGDLP et délégationPratique · TP
L’idée reçue

« Une GPO liée à l’OU s’applique immédiatement à tous les objets visibles dedans. »

L’application dépend du type d’objet, du lien, de l’héritage, du filtrage de sécurité, des filtres WMI, de la réplication et du cycle de rafraîchissement.

01Sépare ordinateur et utilisateur

Les paramètres Computer Configuration suivent le compte ordinateur. Les paramètres User Configuration suivent le compte utilisateur. Une GPO peut contenir les deux, mais une GPO ciblée et nommée par fonction est plus facile à dépanner.

02Comprends LSDOU

Local → Site → Domain → Organizational Unit

Les paramètres sont traités dans cet ordre général. Les OU enfants peuvent recevoir des liens supplémentaires. Block Inheritance et Enforced modifient le comportement et doivent rester exceptionnels.

Une stratégie locale vue dans secpol.msc ou exportée avec secedit n’est donc pas nécessairement la valeur finale sur un poste joint au domaine. Le résultat effectif se vérifie depuis le client.

03Crée une GPO en simulation

New-GPO -Name 'SORIA-Workstations-Baseline' -Comment 'Socle postes du laboratoire' -WhatIf

Après création réelle dans le lab, sauvegarde immédiatement la GPO avant toute modification.

New-Item -ItemType Directory -Path 'C:\SORIA-Labs\GPO-Backup' -Force
Backup-GPO -Name 'SORIA-Workstations-Baseline' -Path 'C:\SORIA-Labs\GPO-Backup'

04Lie la GPO à la bonne OU

$domainDn = (Get-ADDomain).DistinguishedName
$targetOu = "OU=Workstations,$domainDn"
New-GPLink -Name 'SORIA-Workstations-Baseline' -Target $targetOu -LinkEnabled Yes -WhatIf

05Documente le contenu

Get-GPOReport -Name 'SORIA-Workstations-Baseline' -ReportType Html -Path 'C:\SORIA-Labs\SORIA-Workstations-Baseline.html'
Get-GPInheritance -Target $targetOu

Le rapport HTML constitue une preuve lisible des paramètres. Conserve aussi la sauvegarde GPO et la justification du filtrage.

06Vérifie depuis le client

gpupdate /force
gpresult /r
gpresult /h C:\SORIA-Labs\gpresult.html

gpupdate /force ne remplace pas le diagnostic. Certaines stratégies nécessitent fermeture de session, redémarrage ou traitement au démarrage.

07Diagnostique l’absence d’application

Get-WinEvent -LogName 'Microsoft-Windows-GroupPolicy/Operational' -MaxEvents 50 |
  Select-Object TimeCreated, Id, LevelDisplayName, Message

Contrôle successivement : OU réelle de l’objet, lien, état User/Computer, filtrage, droits Read/Apply Group Policy, réplication SYSVOL, DNS et résultat gpresult.

08Durcis le navigateur comme une politique, pas comme une liste magique

Microsoft Edge fournit des modèles administratifs dédiés. Dans le laboratoire, installe les modèles ADMX compatibles avant de configurer les paramètres ; ne crée pas des valeurs de registre au hasard pour imiter une GPO.

Commence par une petite matrice de décision :

SmartScreenEnabled
→ objectif : conserver Microsoft Defender SmartScreen actif
→ preuve : stratégie appliquée + état vu dans edge://policy

BrowserSignin
→ objectif : décider si la connexion au navigateur est autorisée, désactivée ou imposée
→ dépendance : politique d'identité de l'organisation

PasswordManagerEnabled
→ objectif : décider si Edge peut enregistrer de nouveaux mots de passe
→ dépendance : existence éventuelle d'un gestionnaire de mots de passe approuvé

Les bonnes valeurs dépendent du contexte. Pour le laboratoire, applique d’abord uniquement un réglage non ambigu sur une OU pilote, par exemple l’activation de SmartScreen, puis prouve son application.

Preuve complémentaire côté poste :

Get-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft\Edge' -ErrorAction SilentlyContinue |
  Select-Object SmartScreenEnabled,BrowserSignin,PasswordManagerEnabled
La présence ou l’absence d’une valeur de registre n’est qu’un élément de preuve. Le rapport gpresult, le rapport de GPO et edge://policy doivent raconter la même histoire.

09Prépare un script de connexion minimal

Un script de connexion doit rester rapide, prévisible et sans secret. Commence avec une action locale inoffensive :

$evidenceDir = Join-Path $env:LOCALAPPDATA 'SORIA-Lab'
New-Item -ItemType Directory -Path $evidenceDir -Force | Out-Null

[pscustomobject]@{
    User     = $env:USERNAME
    Computer = $env:COMPUTERNAME
    Time     = Get-Date -Format o
} | ConvertTo-Json |
  Set-Content (Join-Path $evidenceDir 'logon-proof.json') -Encoding UTF8

Dans une GPO utilisateur, le script se configure sous User Configuration → Policies → Windows Settings → Scripts (Logon/Logoff). Le fichier doit être disponible dans un emplacement adapté au domaine, versionné et lisible par les utilisateurs concernés.

Ne mets pas dans un script de connexion :

mot de passe en clair
jeton d'API
clé privée
commande nécessitant un administrateur sans justification
traitement long bloquant le bureau
suppression destructive sans contrôle

10Comprends le temps d’exécution du script

Windows peut différer l’exécution des scripts de connexion selon la stratégie appliquée. Il existe aussi des paramètres permettant de les exécuter de manière synchrone ou de définir l’ordre entre scripts PowerShell et scripts non-PowerShell. Ne conclus donc pas qu’un script est absent simplement parce qu’il n’a pas écrit son fichier immédiatement après l’ouverture de session.

Vérifie :

gpresult /h C:\SORIA-Labs\gpresult-logon.html
Test-Path "$env:LOCALAPPDATA\SORIA-Lab\logon-proof.json"
Get-Content "$env:LOCALAPPDATA\SORIA-Lab\logon-proof.json" -ErrorAction SilentlyContinue

Puis corrèle avec :

Get-WinEvent -LogName 'Microsoft-Windows-GroupPolicy/Operational' -MaxEvents 100 |
  Select-Object TimeCreated,Id,LevelDisplayName,Message

11Prépare le rollback

Set-GPLink -Name 'SORIA-Workstations-Baseline' -Target $targetOu -LinkEnabled No -WhatIf
Restore-GPO -Name 'SORIA-Workstations-Baseline' -Path 'C:\SORIA-Labs\GPO-Backup' -WhatIf

Pour un script de connexion, retire d’abord la référence dans la GPO pilote, vérifie qu’aucun utilisateur ne dépend encore du script, puis seulement après supprime ou archive le fichier.

Challenge autonome

Déploie une baseline poste contrôlée

Sur une OU pilote, combine un paramètre de sécurité non destructif, une politique Edge justifiée et un script de connexion minimal. Pour chaque élément, définis cible, preuve gpresult, preuve fonctionnelle, événement attendu, limite du test et rollback. N’étends pas la GPO à d’autres postes tant que les trois preuves ne sont pas cohérentes.

✓Ce que tu retiens

Une GPO est un objet versionné, lié et ciblé. Son succès se prouve depuis le client. La même méthode s’applique aux paramètres système, au durcissement du navigateur et aux scripts de connexion : pilote, preuve, limite et retour arrière.

Ta progression

Chargement de l’état… Se connecter pour synchroniser.