Automatisation avec les politiques de groupe (GPO)
Environnement
Pour cette pratique, nous allons utiliser un environnement Windows Server avec Active Directory. Voici les configurations nécessaires :
- DC01 : Un contrôleur de domaine Windows Server (par exemple, Windows Server 2019). Nous supposerons que le domaine s'appelle
lab.local. - CLIENT01 : Un poste de travail Windows 10 ou Windows 11 joint au domaine.
Mise en place
Création d'une unité organisationnelle (OU)
- Connectez-vous à DC01 avec des privilèges d'administrateur de domaine.
- Ouvrez "Utilisateurs et ordinateurs Active Directory" (dsa.msc).
- Créez deux unités organisationnelles (OU) :
LabOrdinateursLabUtilisateurs
- Déplacez les comptes de l'ordinateur CLIENT01 dans l'OU
LabOrdinateurs. - Créez un compte utilisateur de test dans l'OU
LabUtilisateurs(par exemple,TestUser).
Pourquoi cette structure?
- Les GPO peuvent être appliquées à des OU spécifiques, ce qui permet une gestion granulaire des paramètres pour différents groupes d'utilisateurs et d'ordinateurs.
Création d'un partage réseau
- Sur DC01, créez un dossier nommé
PartageLabsur le disque C:. - Faites un clic droit sur le dossier
PartageLab, sélectionnez "Propriétés", puis allez dans l'onglet "Partage". - Cliquez sur "Partager...", ajoutez "Tout le monde" avec des permissions de lecture/écriture, puis cliquez sur "Partager".
- Notez le chemin réseau du partage (par exemple,
\\DC01\PartageLab). - Placez une image de fond d'écran (par exemple,
fond_ecran.jpg) dans le dossierPartageLab.
Création et application des GPO
Une première GPO : Configuration du fond d'écran
- Ouvrez la console "Gestion des stratégies de groupe" (gpmc.msc) sur DC01.
- Explorez la structure:
- Forêts > lab.local > Domaines > lab.local > Unités d'organisation > LabOrdinateurs, LabUtilisateurs.
- Observez les GPO par défaut :
Default Domain PolicyetDefault Domain Controllers Policy. - Observez les dossiers :
Group Policy Objectsles OU créées.
- Faites un clic droit sur l'OU
LabUtilisateurset sélectionnez "Créer un GPO dans ce domaine, et le lier ici...". - Donnez un nom à la GPO, par exemple
GPO_FondEcran. - Faites un clic droit sur la GPO
GPO_FondEcranet sélectionnez "Modifier". Notes:
- Les configurations du GPO sont divisées en deux sections principales :
Configuration ordinateuretConfiguration utilisateur. Dans ce cas, nous allons configurer un paramètre utilisateur. - L'action de créer une GPO comme ci-dessus lie automatiquement la GPO à l'OU sélectionnée en une seule étape. La GPO sera appliquée aux objets (utilisateurs ou ordinateurs) qui se trouvent dans cette OU.
- Naviguez jusqu'à
Configuration utilisateur > Modèles d'administration > Bureau > Bureau. - Sélectionnez "Papier peint du bureau".
- Configurez les paramètres suivants :
- Chemin de l'image :
\\DC01\PartageLab\fond_ecran.jpg(assurez-vous que l'image existe dans le partage). - Style : Étiré.
- Chemin de l'image :
- Fermez l'éditeur de GPO.
- Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez
gpupdate /forcepour forcer la mise à jour des politiques de groupe. - Déconnectez-vous et reconnectez-vous avec le compte
TestUserpour voir le nouveau fond d'écran appliqué. - Faites la commande
gpresult /r /scope:userdans PowerShell pour afficher les GPO appliquées à l'utilisateur.
Déploiement de scripts via GPO
Création du script
- Sur DC01, créez un dossier nommé
ScriptsGPOsur le disque C:. - Faites un clic droit sur le dossier
ScriptsGPO, sélectionnez "Propriétés", puis allez dans l'onglet "Partage". - Cochez "Partager ce dossier", donnez le nom
ScriptsGPO$(le$rend le dossier caché), et donnez les permissions de lecture à "Ordinateurs du domaine" et "Utilisateurs du domaine". - Créez un script PowerShell simple nommé
Startup-Log.ps1dans le dossierC:\ScriptsGPOavec le contenu suivant :
# Script de démarrage - Enregistre l'heure de démarrage
$logPath = "C:\Logs"
$logFile = "$logPath\startup-log.txt"
# Créer le dossier si inexistant
if (-not (Test-Path $logPath)) {
New-Item -ItemType Directory -Path $logPath -Force
}
# Enregistrer l'information
$entry = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - Démarrage de $env:COMPUTERNAME par GPO"
Add-Content -Path $logFile -Value $entry
Configuration du GPO pour éxécuter le script au démarrage
- Dans la console "Gestion des stratégies de groupe" (gpmc.msc), faites un clic droit sur l'OU
LabOrdinateurset sélectionnez "Créer un GPO dans ce domaine, et le lier ici...". - Nommez la GPO
GPO_ScriptDemarrage. - Faites un clic droit sur la GPO
GPO_ScriptDemarrageet sélectionnez "Modifier". - Naviguez jusqu'à
Configuration ordinateur > Paramètres Windows > Scripts (Démarrage/Arrêt). - Double-cliquez sur "Démarrage" dans le volet de droite.
- Aller à l'onglet "Scripts PowerShell" (Important)
- Cliquez sur "Ajouter...", puis sur "Parcourir...".
- Naviguez jusqu'au dossier partagé
\\DC01\ScriptsGPO$, sélectionnez le scriptStartup-Log.ps1, puis cliquez sur "Ouvrir". Note: On utilise le chemin réseau (\\serveur\dossier) plutôt qu'un chemin local pour s'assurer que le script est accessible par tous les ordinateurs du domaine. - Cliquez sur "OK" pour ajouter le script.
Tester la GPO
- Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez
gpupdate /forcepour forcer la mise à jour des politiques de groupe. - Redémarrez CLIENT01 pour que le script de démarrage s'exécute.
- Vérifiez le fichier créé avec
Get-Content C:\Logs\startup-log.txtpour voir si l'entrée de démarrage a été enregistrée.
Si cela ne fonctionne pas:
- Vérifiez les GPO appliquées avec
gpresult /r /scope:computer. - Vérifiez les événements de GPO avec:
Get-EventLog -LogName System -Source "Microsoft-Windows-GroupPolicy" -Newest 20
Création d'un script de connexion utilisateur
- Créez un script PowerShell nommé
Login-Message.ps1dans le dossierC:\ScriptsGPOavec le contenu suivant :
# Script de connexion - Message de bienvenue
$userName = $env:USERNAME
$computerName = $env:COMPUTERNAME
$date = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
# Afficher un message
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show(
"Bienvenue $userName sur $computerName`nConnexion : $date",
"Message GPO",
[System.Windows.Forms.MessageBoxButtons]::OK,
[System.Windows.Forms.MessageBoxIcon]::Information
)
# Logger aussi dans un fichier réseau
$logPath = "\\DC01\Partage\logons.txt"
$entry = "$date - $userName sur $computerName"
Add-Content -Path $logPath -Value $entry
Configuration du GPO pour éxécuter le script à la connexion:
- Créer une nouvelle GPO nommée
GPO_ScriptConnexionliée à l'OULabUtilisateurs. - Modifier la GPO et naviguer jusqu'à
Configuration utilisateur > Paramètres Windows > Scripts (Ouverture de session/Fermeture de session). - Double-cliquer sur "Ouverture de session" dans le volet de droite.
- Ajouter le script
Login-Message.ps1de la même manière que pour le script de démarrage. - Tester en se déconnectant et reconnectant avec le compte
TestUsersur CLIENT01.
Mappage automatique de lecteurs réseau via GPO
Utiliser Group Policy Preferences pour mapper un lecteur réseau
Pourquoi faire cela? Les Group Policy Preferences (GPP) offrent une méthode plus flexible et conviviale pour configurer des paramètres tels que le mappage de lecteurs réseau, par rapport aux politiques de groupe traditionnelles. Elles permettent des configurations basées sur des conditions, et n'empêchent pas les utilisateurs de modifier les paramètres après application.
- Dans la console "Gestion des stratégies de groupe" (gpmc.msc), faites un clic droit sur l'OU
LabUtilisateurset sélectionnez "Créer un GPO dans ce domaine, et le lier ici...". - Nommez la GPO
GPO_MappageLecteur. - Faites un clic droit sur la GPO
GPO_MappageLecteuret sélectionnez "Modifier". - Naviguez jusqu'à
Configuration utilisateur > Préférences > Paramètres Windows > Mappage de lecteurs. - Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Lecteur mappé".
- Configurez les paramètres suivants :
- Action : Créer
- Lettre du lecteur : Z:
- Chemin du dossier :
\\DC01\Partage - Cochez "Reconnecter" pour que le lecteur soit mappé à chaque connexion.
- Cochez "Afficher ce lecteur dans l'Explorateur de fichiers".
- Fermez l'éditeur de GPO.
Utiliser des variables d'environnement
Créer un deuxième mappage de lecteur utilisant des variables d'environnement pour personnaliser le chemin en fonction de l'utilisateur.
- Créez un dossier avec le nom de l'utilisateur dans le partage
PartageLabpour chaque utilisateur (par exemple,C:\PartageLab\TestUser). - Dans la GPO
GPO_MappageLecteur, rajoutez un nouveau lecteur mappé : - Configurez les paramètres suivants :
- Action : Créer
- Lettre du lecteur : Y:
- Chemin du dossier :
\\DC01\PartageLab\%USERNAME% - Étiquette du lecteur : Dossier personnel de %USERNAME%
Note : La variable
%USERNAME%sera remplacée par le nom de l'utilisateur lors de la connexion. Chaque utilisateur aura ainsi son propre dossier personnel mappé.
- Fermez l'éditeur de GPO.
Tester le mappage de lecteurs réseau
- Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez
gpupdate /forcepour forcer la mise à jour des politiques de groupe. - Déconnectez-vous et reconnectez-vous avec le compte
TestUserpour que les nouveaux mappages de lecteurs soient appliqués. - Ouvrez l'Explorateur de fichiers et vérifiez que les lecteurs Z: et Y: sont correctement mappés.
- Vérification avec PowerShell:
Get-PSDrive -PSProvider FileSystem | Where-Object {$_.Name -match '[Y-Z]'}
Gestion des administrateurs locaux
Comprendre les deux méthodes
Il existe deux méthodes principales pour gérer les membres du groupe des administrateurs locaux sur les ordinateurs du domaine via les GPO :
- Préférences de stratégie de groupe (GPP) : Permet de configurer les membres du groupe des administrateurs locaux de manière flexible, en utilisant des actions telles que "Créer", "Mettre à jour", "Supprimer" ou "Remplacer".
- Paramètres de sécurité des GPO (Restricted Groups) : Permet de définir les membres du groupe des administrateurs locaux de manière plus stricte, en remplaçant complètement la liste des membres existants.
Nous utiliserons ici la méthode GPP pour sa flexibilité.
Créer un groupe d'admins IT
- Sur DC01, ouvrez "Utilisateurs et ordinateurs Active Directory" (dsa.msc).
- Créez un groupe de sécurité nommé
LabAdminsITdans l'OULabUtilisateurs.- Nom: LabAdminsIT
- Type: Groupe de sécurité
- Portée: Global
- Ajoutez votre compte utilisateur
TestUserau groupeLabAdminsIT. - Créez une nouvelle GPO nommée
GPO_AdminsLocauxliée à l'OULabOrdinateurs. - Faites un clic droit sur la GPO
GPO_AdminsLocauxet sélectionnez "Modifier". - Naviguez jusqu'à
Configuration ordinateur > Préférences > Paramètres du panneau de configuration > Utilisateurs et groupes locaux. - Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Groupe local".
- Configurez les paramètres suivants :
- Action : Mettre à jour
- Nom du groupe : Administrateurs (intégré)
- Membres : Ajoutez
lab\LabAdminsIT(le groupe que vous avez créé).
- Fermez l'éditeur de GPO.
Tester la gestion des administrateurs locaux
- Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez
gpupdate /forcepour forcer la mise à jour des politiques de groupe. - Redémarrez CLIENT01 en exécutant
Restart-Computer. - Après le redémarrage, ouvrez PowerShell en tant qu'administrateur et exécutez la commande suivante pour vérifier les membres du groupe des administrateurs locaux :
Get-LocalGroupMember -Group "Administrateurs"
- Vous devriez voir:
- Le compte
Administrateurlocal. - Le groupe
LabAdminsITcomme membre du groupe des administrateurs locaux.
Création de dossiers automatiques via GPO
- Créez une nouvelle GPO nommée
GPO_CreationDossiersliée à l'OULabOrdinateurs. - Faites un clic droit sur la GPO
GPO_CreationDossierset sélectionnez "Modifier". - Naviguez jusqu'à
Configuration ordinateur > Préférences > Paramètres Windows > Dossiers. - Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Dossier".
- Configurez les paramètres suivants :
- Action : Créer
- Chemin du dossier :
C:\LabData
- Fermez l'éditeur de GPO.
- Créer un deuxième dossier dans le même GPO:
- Répétez les étapes 4 à 6 pour créer un dossier
C:\LabData\Logs. Note: L'action "Créer" crée le dossier s'il n'existe pas, mais ne fait rien s'il existe déjà. Pour forcer la recréation, utilisez "Remplacer".
- Répétez les étapes 4 à 6 pour créer un dossier
- Testez la création des dossiers en forçant la mise à jour des GPO sur CLIENT01 et en redémarrant l'ordinateur. Vérifiez ensuite que les dossiers
C:\LabDataetC:\LabData\Logsont été créés.
Création des clés de registre via GPO
- Créez une nouvelle GPO nommée
GPO_CleRegistreliée à l'OULabOrdinateurs. - Faites un clic droit sur la GPO
GPO_CleRegistreet sélectionnez "Modifier". - Naviguez jusqu'à
Configuration ordinateur > Préférences > Paramètres Windows > Registre. - Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Élément registre".
- Configurez les paramètres suivants pour désactiver Cortana:
- Action : Mettre à jour
- Chemin de la clé :
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Search - Nom de la valeur :
AllowCortana - Type de la valeur :
REG_DWORD - Données de la valeur :
0
- Fermez l'éditeur de GPO. Note : Pour trouver les bonnes clés de registre, utilisez regedit sur une machine de test et recherchez la configuration souhaitée, ou consultez la documentation Microsoft.
D'autres exemples de clés de registre à configurer via GPO :
- Désactiver les mises à jour automatiques :
- Chemin de la clé :
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU - Nom de la valeur :
NoAutoUpdate - Type de la valeur :
REG_DWORD - Données de la valeur :
1
- Chemin de la clé :
- Désactiver les publicités dans le menu Démarrer :
- Chemin de la clé :
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Explorer - Nom de la valeur :
NoTileApplicationNotification - Type de la valeur :
REG_DWORD - Données de la valeur :
1
- Chemin de la clé :
- Configuration de la page d'accueil d'Internet Explorer :
- Chemin de la clé :
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\Main - Nom de la valeur :
Start Page - Type de la valeur :
REG_SZ - Données de la valeur :
https://www.example.com
- Chemin de la clé :
- Testez la création des clés de registre en forçant la mise à jour des GPO sur CLIENT01 et en redémarrant l'ordinateur. Vérifiez ensuite que les clés de registre ont été créées/modifiées comme prévu.
# Vérifier la clé Cortana
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name AllowCortana
ou utilisez regedit pour naviguer jusqu'à la clé et vérifier la valeur.
Déploiement de logiciels via GPO
Préparation du package MSI
- Sur DC01, créez le dossier
C:\Software - Partagez le dossier:
- Faites un clic droit sur le dossier
Software, sélectionnez "Propriétés", puis allez dans l'onglet "Partage". - Cliquez sur "Partager...", ajoutez
Domain Computersavec des permissions de lecture, puis cliquez sur "Partager". - Notez le chemin réseau du partage (par exemple,
\\DC01\Software$).
- Faites un clic droit sur le dossier
- Rendez-vous sur le site officiel de 7-Zip (https://www.7-zip.org/) et téléchargez le package MSI (par exemple,
7z1900-x64.msi). Note: Le déploiement de logiciels via GPO nécessite un package au format MSI. Les .exe ne sont pas pris en charge directement. - Copiez le fichier MSI dans le dossier partagé
C:\Software.
Création de la GPO de déploiement logiciel
- Créez une nouvelle GPO nommée
GPO_Deploy7Zipliée à l'OULabOrdinateurs. - Faites un clic droit sur la GPO
GPO_Deploy7Zipet sélectionnez "Modifier". - Naviguez jusqu'à
Configuration ordinateur > Paramètres logiciels > Installation de logiciels. - Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Package".
- Dans la boîte de dialogue, entrez le chemin réseau du package MS, par exemple,
\\DC01\Software$\7z1900-x64.msi(assurez-vous d'utiliser le chemin réseau). - Sélectionnez "Attribué" comme méthode d'installation, puis cliquez sur "OK".
- Fermez l'éditeur de GPO. Note: La différence entre "Attribué" et "Publié" est que "Attribué" installe automatiquement le logiciel lors du démarrage de l'ordinateur, tandis que "Publié" permet aux utilisateurs d'installer le logiciel via le Panneau de configuration.
Tester le déploiement logiciel
- Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez
gpupdate /forcepour forcer la mise à jour des politiques de groupe. - Redémarrez CLIENT01 pour que le logiciel soit installé.
- Après le redémarrage, vérifiez si 7-Zip est installé en recherchant "7-Zip" dans le menu Démarrer ou en exécutant la commande suivante dans PowerShell :
Get-Package -Name "*7-Zip*"
Ordre d'application et priorité des GPO
Créer des GPO conflictuelles
- Créez deux GPO liées à l'OU
LabOrdinateurs:GPO_Fond_Bleu: Configure le fond d'écran bleuGPO_Fond_Rouge: Configure le fond d'écran rouge.
- Observez l'ordre d'application des GPO dans la console "Gestion des stratégies de groupe" (gpmc.msc):
- Cliquez sur l'OU
LabOrdinateurs, puis allez dans l'onglet "Délégation" et cliquez sur "Paramètres avancés". - Notez l'ordre des GPO. Les GPO sont appliquées de bas en haut. En cas de conflit, la dernière GPO appliquée prévaut. Ainsi, ce sera la GPO en haut de la liste qui aura la priorité.
- Modifiez l'ordre des GPO en utilisant les flèches pour mettre
GPO_Fond_Rougeau-dessus deGPO_Fond_Bleu. - Testez l'application des GPO en forçant la mise à jour des politiques sur CLIENT01 et en vous reconnectant avec
TestUserpour voir quel fond d'écran est appliqué. Le fond d'écran rouge devrait prévaloir.
Forcer une GPO
- Faites un clic droit sur la GPO
GPO_Fond_Rougeet sélectionnez "Appliqué" ("Enforced"). - Observez l'icône de cadenas à côté de la GPO dans la console GPMC.
- Testez à nouveau l'application des GPO sur CLIENT01 pour voir comment la GPO forcée prévaut sur les autres GPO, indépendamment de l'ordre.
Blocage de l'héritage des GPO
- Faites un clic droit sur l'OU
LabOrdinateurset sélectionnez "Bloquer l'héritage". - Observez l'icône du point d'exclamation à côté de l'OU dans la console GPMC.
- Testez l'application des GPO sur CLIENT01 pour voir que les GPO héritées du domaine ne sont plus appliquées à cette OU. Si vous aviez des GPO au niveau du domaine, elles ne s'appliqueraient plus ici, sauf si elles sont forcées (Appliqué/Enforced).