22/11/2024

Forcer l’actualisation des GPO à distance sur une machine

I. Présentation

Lorsqu'il s'agit de forcer l'actualisation des stratégies de groupe sur un poste afin de tester un nouveau paramètre ou d'appliquer en urgence une nouvelle configuration, il y a plusieurs méthodes pour réaliser cette opération à distance. On parlera de Remote Group Policy Update.

II. Utiliser la console GPMC

La méthode la plus répandue est celle intégrée à la console GPMC. Vous pouvez sélectionner une unité d'organisation dans l'arborescence (plus ou moins haut dans la hiérarchie) pour déclencher une actualisation des GPO à distance.

Par exemple, via un clic droit sur l'OU "IT - Computers" et en cliquant sur "Mise à jour de la stratégie de groupe".

Une fenêtre va s'ouvrir pour vous indiquer le nombre de postes ciblés. Cliquez sur "Oui" pour lancer l'opération.

Vous allez être déçu, mais il y a des chances pour que ça ne fonctionne pas : le pare-feu de Windows bloque le flux par défaut. Si vous utilisez une protection Endpoint sur vos postes clients et qu'il gère le pare-feu, il va falloir y jeter un coup d’œil également.

L'erreur 8007071A "L'appel de procédure distante a été annulé" va s'afficher sur chaque ligne. Sauf si le pare-feu est désactivé sur le poste client, ce qui n'est pas recommandé.

Nous allons créer une stratégie de groupe pour autoriser ce flux. Pour cela, créez une nouvelle GPO et nommez-la "C_Firewall_RGPU" par exemple. Elle contiendra des paramètres de configuration "Ordinateur" puisque cela concerne le pare-feu.

Modifiez la GPO, et parcourez comme suit : Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Pare-feu Windows avec fonctions avancées de sécurité > Règles de trafic entrant.

Lorsque vous êtes sur le dernier item, sur la partie de droite de la console réalisez un clic droit et cliquez sur "Nouvelle règle".

Sélectionnez ensuite "Prédéfinie" et dans la liste déroulante prenez "Infrastructure de gestion Windows". Cela va permettre d'activer les trois règles contenues dans ce groupe.

Répétez l'opération en ajoutant une nouvelle règle. Cette fois-ci, sélectionnez "Gestion à distance des tâches planifiées".

À la fin, vous devez obtenir ceci :

Si tout est bon, il ne reste plus qu'à lier la GPO pour qu'elle s'applique vos postes afin de configurer le pare-feu. Ensuite, vous avez deux options :

  • Soit patienter que la stratégie de groupe s'actualise automatiquement sur vos postes
  • Soit forcer la mise à jour en intervenant sur la machine et en exécutant la commande "gpupdate /force". Il faudra redémarrer le poste.

Quoi qu'il en soit, une fois que la GPO sera déployée sur le poste, l'actualisation des GPO à distance doit fonctionner. Par exemple, on peut le constater ci-dessous avec le PC qui est passé sur l'état "Réussite". L'autre PC ne risque pas de fonctionner, car il est toujours dans l'AD, mais il n'existe pas : d'où l'importance de faire le tri dans l'annuaire.

Soit vous pouvez enregistrer les résultats ou tout simplement fermer.

Attention : cette action réalisée à distance n'est pas transparente au niveau du poste client. Si un utilisateur est connecté sur le poste, il verra l'invite de commande s'exécuter à l'écran pour exécuter l'utilitaire gpupdate. Cela est plus ou moins rapide et discret en fonction des performances de votre PC/infrastructure.

III. Utiliser PowerShell et Invoke-GPUpdate

Depuis Windows Server 2012, Microsoft a intégré la commande PowerShell "Invoke-GPUpdate" pour réaliser une actualisation des GPO à distance sur un poste cible.

Cette alternative est intéressante notamment, car on peut l'intégrer dans un script donc cela offre beaucoup plus de souplesse que la console GPMC.

Pour utiliser cette commande, il faudra indiquer l'ordinateur cible au sein du paramètre -Computer. Vous pouvez utiliser le nom FQDN de la machine ou son nom NetBIOS.

Invoke-GPUpdate -Computer W10-CL1 -RandomDelayInMinutes 0

Lorsque le paramètre RandomDelayInMinutes est à zéro, l'actualisation sera déclenchée immédiatement. Grâce à ce paramètre, il est possible de "planifier" la mise à jour jusqu'à 31 jours puisque la valeur maximale est 44640 minutes.

Exemple :

On pourrait ajouter à la commande le paramètre "-Target" avec la valeur "User" pour actualiser seulement les paramètres de l'utilisateur. Idem avec la valeur "Computer" pour les paramètres de l'ordinateur.

Grâce à cette commande, on peut très facilement actualiser la GPO sur l'ensemble des ordinateurs de l'AD grâce à ces deux lignes :

$Computers = Get-ADComputer -Filter *
$Computers | ForEach-Object -Process { Invoke-GPUpdate -Computer $_.Name -RandomDelayInMinutes 0 -Force }

Attention, cela peut s'avérer dangereux en termes de charge, selon le nombre de machines dans votre annuaire. Prenez une sélection plus restreinte si besoin en agissant sur la commande Get-ADComputer.

La bonne nouvelle c'est que cette commande nécessite les mêmes règles de firewall que la première méthode 😉

Nous venons de voir les deux méthodes principales pour actualiser les GPO à distance sur une ou plusieurs machines. Pour votre culture, il existe une autre solution à base PsExec pour lancer la commande "gpupdate /force" à distance sur un poste.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail