PowerShell

Rechercher dans les GPO de votre Active Directory avec PowerShell

Rechercher dans les GPO de votre Active Directory avec PowerShell

N’avez-vous jamais eu besoin de rechercher la présence d’un réglage précis dans l’ensemble de vos GPO ?

Personnellement, c’est un besoin que je rencontre très régulièrement lorsque je travaille avec des clients sur de très gros environnements Active Directory. Parfois, même les entreprises elles-mêmes avouent avoir perdu le contrôle et le suivi sur les GPO qui sont créées au sein de leur environnement. Si bien qu’il est parfois possible de découvrir des réglages qui sont appelés plusieurs fois ou même qui s’opposent au sein d’un même domaine Active Directory.

Malheureusement, il n’existe pas de moteur de recherches dans la GPMC (en tout cas pas nativement). Et pourtant, qu’est-ce que ça serait pratique, je vous laisse imaginer le Google de vos GPO directement dans la console… ça serait parfait. Mais bon, comme ça n’arrivera peut-être jamais, il faut bien trouver une solution alternative. 🙂

Je vous propose d’utiliser le script PowerShell suivant pour rechercher la présence d’un terme spécifique au sein de l’ensemble de vos GPO d’un domaine Active Directory spécifique :

# Get the string we want to search for 
$string = Read-Host -Prompt "What string do you want to search for?" 
 
# Set the domain to search for GPOs 
$DomainName = $env:USERDNSDOMAIN 
 
# Find all GPOs in the current domain 
write-host "Finding all the GPOs in $DomainName" 
Import-Module grouppolicy 
$allGposInDomain = Get-GPO -All -Domain $DomainName 
[string[]] $MatchedGPOList = @()

# Look through each GPO's XML for the string 
Write-Host "Starting search...." 
foreach ($gpo in $allGposInDomain) { 
    $report = Get-GPOReport -Guid $gpo.Id -ReportType Xml 
    if ($report -match $string) { 
        write-host "********** Match found in: $($gpo.DisplayName) **********" -foregroundcolor "Green"
        $MatchedGPOList += "$($gpo.DisplayName)";
    } # end if 
    else { 
        Write-Host "No match in: $($gpo.DisplayName)" 
    } # end else 
} # end foreach
write-host "`r`n"
write-host "Results: **************" -foregroundcolor "Yellow"
foreach ($match in $MatchedGPOList) { 
    write-host "Match found in: $($match)" -foregroundcolor "Green"
}

Le script n’est pas de moi et vous pouvez retrouver la publication originale sur l’article suivant (en anglais) : Search all GPOs in a domain for some text.

Assurez-vous par contre d’exécuter ce script sur une machine qui dispose de la GPMC. Si ce n’est pas le cas, pensez à l’installer sinon il ne fonctionnera pas ! 😉

Installation du composant Group Policy Management (console) depuis le Server Manager

Une fois que c’est fait, il vous suffit de l’exécuter dans une invite de commandes PowerShell ou bien l’ISE. La seule question qu’il va vous poser est le mot que vous recherchez. Et là, vous pourrez remplacer par un élément de réglage que vous cherchez.

Exécution du script PowerShell pour rechercher dans vos GPO

Ce script est idéal si vous cherchez à résoudre les conflits et trouver les réglages qui sont appelés à plusieurs reprises dans différentes GPO.

Vous retrouverez également une seconde alternative de script PowerShell en consultant le second lien suivant (toujours en anglais) : Searching a GPO for a specific setting with Powershell.

Share
Published by
thibault

Recent Posts

Panique chez UniSuper : Google Cloud Platform (GCP) supprime des données par erreur

Un bug informatique aux conséquences désastreuses Une erreur majeure de Google Cloud Platform (GCP) a…

6 heures ago

La Révolution du Poker en Ligne : Comment les Technologies Transforment l’Expérience de Jeu

Le poker en ligne a révolutionné l'industrie du jeu grâce aux avancées technologiques. Les joueurs…

20 heures ago

Meta met fin à Workplace : cap sur l’IA et le métavers

C'est la fin du réseau social d'entreprise par Facebook ! Dans un mouvement stratégique majeur,…

4 jours ago

VMware Fusion Pro et Workstation Pro : désormais gratuits pour une utilisation personnelle !

VMware Workstation désormais gratuit pour une utilisation personnelle. VMware Fusion et Workstation désormais gratuits Bonne…

5 jours ago

Fuite de données chez Dell : noms et adresses de clients exposés

Le constructeur de PC DELL piraté Le géant de l'informatique Dell a subi une faille…

1 semaine ago

Le chef de Lockbit démasqué un coup dur pour le gang de ransomware ?

Le site du groupe de pirates Lockbit est sous contrôle des autorités Dmitri Yuryevich Khoroshev,…

1 semaine ago