Ceci est une ancienne révision du document !
Voir les dernières GPO modifiées sur le domaine
Pour afficher la liste des GPO modifiées sur un temps donné, utiliser le script PowerShell suivant en adaptant la dernière ligne :
function Show-GPOEditLastXDays{ # Deux paramètres obligatoires, le premier pour le nom complet du domaine # et le second pour le nombre de jours à prendre en compte pour détecter les modifs param( [parameter(Mandatory=$true)][string]$DomainName, [parameter(Mandatory=$true)][int]$LastXDays ) # Création d'un objet COM pour utiliser l'API de la console GPMC $GPM = New-Object -ComObject GPMgmt.GPM try{ # Etablir la connexion avec le domaine AD $GPMDomain =$GPM.GetDomain("$DomainName", "", $GPMConstants.UseAnyDC) # Définir un critère de recherche, en l'occurrence vide car on voudra toutes les GPO $GPMSearchCriteria = $GPM.CreateSearchCriteria() # Récupérer la liste de toutes les GPO du domaine $GPMAllGpos = $GPMDomain.SearchGPOs($GPMSearchCriteria) # Initialiser le compteur, sera incrémenté pour compter le nombre de GPO modifiées $Counter = 0 # Pour chaque GPO, on regarde si elle a été modifiée depuis les X derniers jours # Selon la valeur du paramètre "$LastXDays" foreach ($GPO in $GPMAllGpos) { if ($GPO.ModificationTime -ge (Get-Date).AddDays(-$LastXDays)) { # Pour chaque GPO qui matche, on crée un objet custom # contenant le nom de la GPO et la date de dernière modification [PSCustomObject] @{ "GPOName" = $GPO.DisplayName ; "GPOModificationTime" = $GPO.ModificationTime } $Counter++ } } # foreach ($GPO in $GPMAllGpos) # Si le compteur est égal à 0 c'est qu'il n'y a pas eu de GPO modifiées # donc on donne l'info dans la console, pour éviter une sortie vide if($Counter -eq 0){ Write-Output "0 GPO modified in the last $LastXDays day(s)" } # if($Counter -eq 0) }catch{ Write-Output "ERROR ! Impossible to get the list of edited GPO, it's possible that the domain name is incorrect" } } Show-GPOEditLastXDays -DomainName "domaine.local" -LastXDays 1