Windows / AD
📚 GPO Windows Server — Stratégies de Groupe Active Directory
Créer, lier et diagnostiquer les Group Policy Objects (GPO) : sécurité postes, mappage lecteurs réseau, déploiement logiciels MSI, diagnostic gpresult et rsop.
Concepts fondamentaux des GPO
Les Stratégies de Groupe (GPO — Group Policy Objects) permettent de configurer centralement les paramètres des utilisateurs et ordinateurs du domaine Active Directory. Elles s'appliquent via l'ordre LSDOU : Local → Site → Domaine → OU.
| Niveau | Scope | Priorité (plus haut = écrase) |
|---|---|---|
| Local | Poste local uniquement | 1 (la plus faible) |
| Site | Tous les objets du site AD | 2 |
| Domaine | Tous les objets du domaine | 3 |
| OU parent | Objets dans l'OU parente | 4 |
| OU enfant | Objets dans l'OU directe | 5 (la plus haute) |
Règle d'or : En cas de conflit entre deux GPO, la dernière appliquée gagne (priorité plus haute). L'option Enforced (Appliquée) sur une GPO l'empêche d'être écrasée par une GPO de niveau inférieur. Block Inheritance sur une OU bloque les GPO des niveaux supérieurs.
Créer et lier une GPO — PowerShell
gpo-creation.ps1
#Requires -RunAsAdministrator
Import-Module GroupPolicy
# ── Créer une nouvelle GPO ────────────────────────────────────
New-GPO -Name "GPO-Securite-Postes" -Comment "Politique de sécurité postes de travail"
# ── Lier la GPO à une OU ──────────────────────────────────────
New-GPLink -Name "GPO-Securite-Postes" `
-Target "OU=Postes,DC=ENTREPRISE,DC=LOCAL" `
-LinkEnabled Yes
# ── Lister les GPO du domaine ─────────────────────────────────
Get-GPO -All | Select-Object DisplayName, GpoStatus, CreationTime
# ── Lister les GPO liées à une OU ────────────────────────────
Get-GPInheritance -Target "OU=Postes,DC=ENTREPRISE,DC=LOCAL"
# ── Sauvegarder une GPO ───────────────────────────────────────
Backup-GPO -Name "GPO-Securite-Postes" -Path "C:\Backup-GPO"
# ── Restaurer une GPO ─────────────────────────────────────────
Restore-GPO -Name "GPO-Securite-Postes" -Path "C:\Backup-GPO"
# ── Importer les paramètres d'une GPO sauvegardée ─────────────
Import-GPO -BackupId "<GUID>" -TargetName "GPO-Securite-Postes" -Path "C:\Backup-GPO"
# ── Forcer la mise à jour sur tous les postes (à distance) ───
Invoke-GPUpdate -Computer "PC-DUPONT" -Force -RandomDelayInMinutes 0GPO de sécurité — Paramètres essentiels
gpo-securite.ps1
# Configuration GPO Sécurité via PowerShell
# Chemin : Config Ordinateur > Paramètres Windows > Paramètres de sécurité
$GPO = "GPO-Securite-Postes"
# ── Politique de mot de passe ─────────────────────────────────
Set-GPRegistryValue -Name $GPO `
-Key "HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" `
-ValueName "MaximumPasswordAge" -Type DWord -Value 90
# ── Verrouillage de session (écran de veille) ─────────────────
Set-GPRegistryValue -Name $GPO `
-Key "HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop" `
-ValueName "ScreenSaverIsSecure" -Type String -Value "1"
Set-GPRegistryValue -Name $GPO `
-Key "HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop" `
-ValueName "ScreenSaveTimeOut" -Type String -Value "600"
# ── Désactiver le Panneau de configuration pour les users ─────
Set-GPRegistryValue -Name $GPO `
-Key "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" `
-ValueName "NoControlPanel" -Type DWord -Value 1
# ── Désactiver l'invite de commandes pour les users ───────────
Set-GPRegistryValue -Name $GPO `
-Key "HKCU\Software\Policies\Microsoft\Windows\System" `
-ValueName "DisableCMD" -Type DWord -Value 2
# ── Bloquer l'accès aux lecteurs amovibles (USB) ─────────────
Set-GPRegistryValue -Name $GPO `
-Key "HKLM\Software\Policies\Microsoft\Windows\RemovableStorageDevices" `
-ValueName "Deny_All" -Type DWord -Value 1
# ── Appliquer la GPO ─────────────────────────────────────────
gpupdate /forceGPO mappage de lecteurs réseau
gpo-lecteurs.ps1
# GPO Préférences : mappage lecteur réseau par groupe AD
# Config Utilisateur > Préférences > Paramètres Windows > Mappages de lecteurs
# Via PowerShell (module GroupPolicy)
$GPO = "GPO-Lecteurs-Réseau"
New-GPO -Name $GPO
# Ajouter un script de démarrage de session (alternative)
# Créer le script dans SYSVOL et le lier via GPO
# Contenu du script logon.ps1 à placer dans SYSVOL\scripts\
$scriptContent = @'
# Mappage conditionnel selon les groupes AD
$groups = (Get-ADPrincipalGroupMembership -Identity $env:USERNAME).Name
if ($groups -contains "Comptabilité") {
New-PSDrive -Name "G" -PSProvider FileSystem `
-Root "\\SRV-FICHIERS\Comptabilite" -Persist -ErrorAction SilentlyContinue
}
if ($groups -contains "Direction") {
New-PSDrive -Name "H" -PSProvider FileSystem `
-Root "\\SRV-FICHIERS\Direction" -Persist -ErrorAction SilentlyContinue
}
# Lecteur commun pour tous
New-PSDrive -Name "S" -PSProvider FileSystem `
-Root "\\SRV-FICHIERS\Commun" -Persist -ErrorAction SilentlyContinue
'@
$scriptContent | Out-File "\\ENTREPRISE.LOCAL\SYSVOL\ENTREPRISE.LOCAL\scripts\logon.ps1" -Encoding UTF8GPO déploiement logiciels (MSI)
gpo-software.ps1
# Déployer un logiciel MSI via GPO
# Config Ordinateur > Paramètres logiciels > Installation de logiciels
# Le fichier MSI DOIT être dans un partage réseau accessible par tous les postes
# Exemple : \\SRV-FICHIERS\Logiciels$\
# Créer le partage logiciels (administratif)
New-Item -Path "D:\Logiciels" -ItemType Directory -Force
New-SmbShare -Name "Logiciels$" -Path "D:\Logiciels" `
-ReadAccess "ENTREPRISE\Utilisateurs du domaine" `
-FullAccess "ENTREPRISE\Administrateurs"
# Copier les MSI dans le partage
# Exemple: \\SRV-FICHIERS\Logiciels$\7zip\7zip.msi
# La GPO d'installation logiciel se configure dans la console GPMC (GUI):
# 1. Ouvrir gpmc.msc
# 2. Créer/éditer la GPO cible
# 3. Config Ordinateur > Paramètres logiciels > Installation de logiciels
# 4. Clic droit > Nouveau > Package
# 5. Parcourir vers \\SRV-FICHIERS\Logiciels$\nomlogiciel.msi
# 6. Choisir "Assigné" (s'installe au démarrage du poste)
# Vérifier l'état des applications déployées
Get-WmiObject -Class Win32_Product | Select-Object Name, Version | Sort-Object NameDiagnostic GPO — Commandes essentielles
| Commande | Description |
|---|---|
| gpupdate /force | Forcer la mise à jour immédiate des GPO sur le poste |
| gpresult /r | Résumé des GPO appliquées (utilisateur + ordinateur) |
| gpresult /h C:\gpo-rapport.html | Rapport HTML complet et détaillé |
| gpresult /scope computer | GPO appliquées à l'ordinateur uniquement |
| gpresult /scope user | GPO appliquées à l'utilisateur uniquement |
| rsop.msc | Console RSOP (Resultant Set of Policy) — vue graphique |
| gpmc.msc | Console Gestion des stratégies de groupe |
| Get-GPResultantSetOfPolicy | Résultant de stratégie PowerShell |
| Invoke-GPUpdate -Computer PC01 -Force | Forcer gpupdate à distance |
| Get-GPOReport -Name "NomGPO" -ReportType HTML -Path C:\rapport.html | Rapport HTML d'une GPO |
diagnostic-gpo.ps1
# Diagnostic complet GPO sur un poste distant
$Computer = "PC-DUPONT"
# Forcer la mise à jour à distance
Invoke-GPUpdate -Computer $Computer -Force -RandomDelayInMinutes 0
# Générer le rapport RSOP (Resultant Set of Policy)
Get-GPResultantSetOfPolicy -Computer $Computer `
-ReportType Html `
-Path "C:\Rapports\rsop-$Computer.html"
# Vérifier les erreurs GPO dans l'Observateur d'événements
Get-WinEvent -ComputerName $Computer `
-FilterHashtable @{LogName='System'; ProviderName='GroupPolicy'; Level=2} `
-MaxEvents 20 | Select-Object TimeCreated, Message | Format-List
# Voir les GPO appliquées sur le poste
Invoke-Command -ComputerName $Computer -ScriptBlock {
gpresult /r
}Tester les GPO en environnement de test avant la production ! Utiliser une OU de test avec quelques postes et utilisateurs pilotes. Une GPO mal configurée peut verrouiller des postes ou supprimer des accès utilisateurs.
Ressources officielles GPO Microsoft
Référence GPO Microsoft
Documentation complète des paramètres GPO
ADMX Templates
Modèles administratifs Office, Chrome, Edge
Group Policy Search
Moteur de recherche des paramètres GPO
Learn — Group Policy
Cours Microsoft Learn sur les GPO
PowerShell GroupPolicy
Module PowerShell pour les GPO
RSAT Tools
Outils d'administration à distance Windows
Ajouter Les Fibrés à mes sources préférées
Retrouvez plus souvent nos guides dans vos résultats Google