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