https://www.it-connect.fr/gpo-comparer-les-numeros-de-version-en-powershell/
Il est intéressant de voir, afin de diagnostiquer un éventuel problème de GPO, le numéro de version entre AD et le Sysvol.
« Ce numéro de version s’incrémente lorsqu’une stratégie de groupe est modifiée, ce qui permet de notifier les autres contrôleurs de domaine d’un changement pour répliquer la modification. »
J’ai trouvé le script intéressant à faire partager :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# Comparer les numéros de version des GPO (Version GPC vs Version GPT) - (Version AD vs Version Sysvol) # Audit - Debug - GPO Import-Module GroupPolicy Get-GPO -All | foreach{ # Récupérer les infos liées à la GPO (GUID et Nom) $GPOId = $_.Id $GPOName = $_.DisplayName # Version GPO User $NumUserSysvol = (Get-Gpo -Guid $GPOId).User.SysvolVersion $NumUserAD = (Get-Gpo -Guid $GPOId).User.DSVersion # Version GPO Machine $NumComputerSysvol = (Get-Gpo -Guid $GPOId).Computer.SysvolVersion $NumComputerAD = (Get-Gpo -Guid $GPOId).Computer.DSVersion # USER - Comparer les numéros de version if($NumUserSysvol -ne $NumUserAD){ Write-Host "$GPOName ($GPOId) : USER Versions différentes (Sysvol : $NumUserSysvol | AD : $NumUserAD)" -ForegroundColor Red }else{ Write-Host "$GPOName : USER Versions identiques" -ForegroundColor Green } # COMPUTER - Comparer les numéros de version if($NumComputerSysvol -ne $NumComputerAD){ Write-Host "$GPOName ($GPOId) : COMPUTER Versions différentes (Sysvol : $NumComputerSysvol | AD : $NumComputerAD)" -ForegroundColor Red }else{ Write-Host "$GPOName : COMPUTER Versions identiques" -ForegroundColor Green } } |
Ce script est intéressant car il tourne autour d’une commande simple :
1 |
Get-GPO -Name "Nom de la GPO" |
On applique un « foreach » pour chaque résultat de GPO.
On récupère les infos de cet objet.
Pour voir les différentes « facettes » de cet objet
1 |
Get-GPO -Name "Default Domain Controllers Policy" | Get-Member |
On voit bien un résultat user et computer et si on creuse
1 |
(Get-GPO -Name "Default Domain Controllers Policy").user |
On a ce qu’on a dans le script avec le SysvolVersion.
Ensuite on compare avec un If avec l’opérateur d’inégalité (-ne).
Merci Julien de It-Connect.