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)

  1. Connectez-vous à DC01 avec des privilèges d'administrateur de domaine.
  2. Ouvrez "Utilisateurs et ordinateurs Active Directory" (dsa.msc).
  3. Créez deux unités organisationnelles (OU) :
    • LabOrdinateurs
    • LabUtilisateurs
  4. Déplacez les comptes de l'ordinateur CLIENT01 dans l'OU LabOrdinateurs.
  5. 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

  1. Sur DC01, créez un dossier nommé PartageLab sur le disque C:.
  2. Faites un clic droit sur le dossier PartageLab, sélectionnez "Propriétés", puis allez dans l'onglet "Partage".
  3. Cliquez sur "Partager...", ajoutez "Tout le monde" avec des permissions de lecture/écriture, puis cliquez sur "Partager".
  4. Notez le chemin réseau du partage (par exemple, \\DC01\PartageLab).
  5. Placez une image de fond d'écran (par exemple, fond_ecran.jpg) dans le dossier PartageLab.

Création et application des GPO

Une première GPO : Configuration du fond d'écran

  1. Ouvrez la console "Gestion des stratégies de groupe" (gpmc.msc) sur DC01.
  2. Explorez la structure:
    • Forêts > lab.local > Domaines > lab.local > Unités d'organisation > LabOrdinateurs, LabUtilisateurs.
    • Observez les GPO par défaut : Default Domain Policy et Default Domain Controllers Policy.
    • Observez les dossiers : Group Policy Objects les OU créées.
  3. Faites un clic droit sur l'OU LabUtilisateurs et sélectionnez "Créer un GPO dans ce domaine, et le lier ici...".
  4. Donnez un nom à la GPO, par exemple GPO_FondEcran.
  5. Faites un clic droit sur la GPO GPO_FondEcran et sélectionnez "Modifier". Notes:
  • Les configurations du GPO sont divisées en deux sections principales : Configuration ordinateur et Configuration 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.
  1. Naviguez jusqu'à Configuration utilisateur > Modèles d'administration > Bureau > Bureau.
  2. Sélectionnez "Papier peint du bureau".
  3. 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é.
  4. Fermez l'éditeur de GPO.
  5. Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez gpupdate /force pour forcer la mise à jour des politiques de groupe.
  6. Déconnectez-vous et reconnectez-vous avec le compte TestUser pour voir le nouveau fond d'écran appliqué.
  7. Faites la commande gpresult /r /scope:user dans PowerShell pour afficher les GPO appliquées à l'utilisateur.

Déploiement de scripts via GPO

Création du script

  1. Sur DC01, créez un dossier nommé ScriptsGPO sur le disque C:.
  2. Faites un clic droit sur le dossier ScriptsGPO, sélectionnez "Propriétés", puis allez dans l'onglet "Partage".
  3. 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".
  4. Créez un script PowerShell simple nommé Startup-Log.ps1 dans le dossier C:\ScriptsGPO avec 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

  1. Dans la console "Gestion des stratégies de groupe" (gpmc.msc), faites un clic droit sur l'OU LabOrdinateurs et sélectionnez "Créer un GPO dans ce domaine, et le lier ici...".
  2. Nommez la GPO GPO_ScriptDemarrage.
  3. Faites un clic droit sur la GPO GPO_ScriptDemarrage et sélectionnez "Modifier".
  4. Naviguez jusqu'à Configuration ordinateur > Paramètres Windows > Scripts (Démarrage/Arrêt).
  5. Double-cliquez sur "Démarrage" dans le volet de droite.
  6. Aller à l'onglet "Scripts PowerShell" (Important)
  7. Cliquez sur "Ajouter...", puis sur "Parcourir...".
  8. Naviguez jusqu'au dossier partagé \\DC01\ScriptsGPO$, sélectionnez le script Startup-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.
  9. Cliquez sur "OK" pour ajouter le script.

Tester la GPO

  1. Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez gpupdate /force pour forcer la mise à jour des politiques de groupe.
  2. Redémarrez CLIENT01 pour que le script de démarrage s'exécute.
  3. Vérifiez le fichier créé avec Get-Content C:\Logs\startup-log.txt pour 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

  1. Créez un script PowerShell nommé Login-Message.ps1 dans le dossier C:\ScriptsGPO avec 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:

  1. Créer une nouvelle GPO nommée GPO_ScriptConnexion liée à l'OU LabUtilisateurs.
  2. Modifier la GPO et naviguer jusqu'à Configuration utilisateur > Paramètres Windows > Scripts (Ouverture de session/Fermeture de session).
  3. Double-cliquer sur "Ouverture de session" dans le volet de droite.
  4. Ajouter le script Login-Message.ps1 de la même manière que pour le script de démarrage.
  5. Tester en se déconnectant et reconnectant avec le compte TestUser sur 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.

  1. Dans la console "Gestion des stratégies de groupe" (gpmc.msc), faites un clic droit sur l'OU LabUtilisateurs et sélectionnez "Créer un GPO dans ce domaine, et le lier ici...".
  2. Nommez la GPO GPO_MappageLecteur.
  3. Faites un clic droit sur la GPO GPO_MappageLecteur et sélectionnez "Modifier".
  4. Naviguez jusqu'à Configuration utilisateur > Préférences > Paramètres Windows > Mappage de lecteurs.
  5. Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Lecteur mappé".
  6. 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".
  7. 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.

  1. Créez un dossier avec le nom de l'utilisateur dans le partage PartageLab pour chaque utilisateur (par exemple, C:\PartageLab\TestUser).
  2. Dans la GPO GPO_MappageLecteur, rajoutez un nouveau lecteur mappé :
  3. 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é.
  4. Fermez l'éditeur de GPO.

Tester le mappage de lecteurs réseau

  1. Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez gpupdate /force pour forcer la mise à jour des politiques de groupe.
  2. Déconnectez-vous et reconnectez-vous avec le compte TestUser pour que les nouveaux mappages de lecteurs soient appliqués.
  3. Ouvrez l'Explorateur de fichiers et vérifiez que les lecteurs Z: et Y: sont correctement mappés.
  4. 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 :

  1. 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".
  2. 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

  1. Sur DC01, ouvrez "Utilisateurs et ordinateurs Active Directory" (dsa.msc).
  2. Créez un groupe de sécurité nommé LabAdminsIT dans l'OU LabUtilisateurs.
    • Nom: LabAdminsIT
    • Type: Groupe de sécurité
    • Portée: Global
  3. Ajoutez votre compte utilisateur TestUser au groupe LabAdminsIT.
  4. Créez une nouvelle GPO nommée GPO_AdminsLocaux liée à l'OU LabOrdinateurs.
  5. Faites un clic droit sur la GPO GPO_AdminsLocaux et sélectionnez "Modifier".
  6. Naviguez jusqu'à Configuration ordinateur > Préférences > Paramètres du panneau de configuration > Utilisateurs et groupes locaux.
  7. Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Groupe local".
  8. Configurez les paramètres suivants :
    • Action : Mettre à jour
    • Nom du groupe : Administrateurs (intégré)
    • Membres : Ajoutez lab\LabAdminsIT (le groupe que vous avez créé).
  9. Fermez l'éditeur de GPO.

Tester la gestion des administrateurs locaux

  1. Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez gpupdate /force pour forcer la mise à jour des politiques de groupe.
  2. Redémarrez CLIENT01 en exécutant Restart-Computer.
  3. 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"
  1. Vous devriez voir:
  • Le compte Administrateur local.
  • Le groupe LabAdminsIT comme membre du groupe des administrateurs locaux.

Création de dossiers automatiques via GPO

  1. Créez une nouvelle GPO nommée GPO_CreationDossiers liée à l'OU LabOrdinateurs.
  2. Faites un clic droit sur la GPO GPO_CreationDossiers et sélectionnez "Modifier".
  3. Naviguez jusqu'à Configuration ordinateur > Préférences > Paramètres Windows > Dossiers.
  4. Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Dossier".
  5. Configurez les paramètres suivants :
    • Action : Créer
    • Chemin du dossier : C:\LabData
  6. Fermez l'éditeur de GPO.
  7. 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".
  8. 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:\LabData et C:\LabData\Logs ont été créés.

Création des clés de registre via GPO

  1. Créez une nouvelle GPO nommée GPO_CleRegistre liée à l'OU LabOrdinateurs.
  2. Faites un clic droit sur la GPO GPO_CleRegistre et sélectionnez "Modifier".
  3. Naviguez jusqu'à Configuration ordinateur > Préférences > Paramètres Windows > Registre.
  4. Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Élément registre".
  5. 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
  6. 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
  • 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
  • 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
  1. 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

  1. Sur DC01, créez le dossier C:\Software
  2. 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 Computers avec des permissions de lecture, puis cliquez sur "Partager".
    • Notez le chemin réseau du partage (par exemple, \\DC01\Software$).
  3. 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.
  4. Copiez le fichier MSI dans le dossier partagé C:\Software.

Création de la GPO de déploiement logiciel

  1. Créez une nouvelle GPO nommée GPO_Deploy7Zip liée à l'OU LabOrdinateurs.
  2. Faites un clic droit sur la GPO GPO_Deploy7Zip et sélectionnez "Modifier".
  3. Naviguez jusqu'à Configuration ordinateur > Paramètres logiciels > Installation de logiciels.
  4. Faites un clic droit dans le volet de droite et sélectionnez "Nouveau > Package".
  5. 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).
  6. Sélectionnez "Attribué" comme méthode d'installation, puis cliquez sur "OK".
  7. 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

  1. Sur CLIENT01, ouvrez PowerShell en tant qu'administrateur et exécutez gpupdate /force pour forcer la mise à jour des politiques de groupe.
  2. Redémarrez CLIENT01 pour que le logiciel soit installé.
  3. 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

  1. Créez deux GPO liées à l'OU LabOrdinateurs :
    • GPO_Fond_Bleu : Configure le fond d'écran bleu
    • GPO_Fond_Rouge : Configure le fond d'écran rouge.
  2. 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é.
  1. Modifiez l'ordre des GPO en utilisant les flèches pour mettre GPO_Fond_Rouge au-dessus de GPO_Fond_Bleu.
  2. Testez l'application des GPO en forçant la mise à jour des politiques sur CLIENT01 et en vous reconnectant avec TestUser pour voir quel fond d'écran est appliqué. Le fond d'écran rouge devrait prévaloir.

Forcer une GPO

  1. Faites un clic droit sur la GPO GPO_Fond_Rouge et sélectionnez "Appliqué" ("Enforced").
  2. Observez l'icône de cadenas à côté de la GPO dans la console GPMC.
  3. 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

  1. Faites un clic droit sur l'OU LabOrdinateurs et sélectionnez "Bloquer l'héritage".
  2. Observez l'icône du point d'exclamation à côté de l'OU dans la console GPMC.
  3. 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).