Op een domain controller worden de policies van een Windows netwerk beheerd. Als je wat wil wijzigen en je weet niet meer in welke policy je moest zijn, kun je naar steek woorden of de instellingen hiervan op zoeken.
Mijn collega Stijn liep tegen dit probleem aan en heeft daarvoor het volgende Powershell script gevonden:
$String = "Zoekterm"
$Domain = "jouwdomein.local"
$NearestDC = (Get-ADDomainController -Discover -NextClosestSite).Name
#Get a list of GPOs from the domain
$GPOs = Get-GPO -All -Domain $Domain -Server $NearestDC | sort DisplayName
#Go through each Object and check its XML against $String
Foreach ($GPO in $GPOs) {
Write-Host "Zoeken in $($GPO.DisplayName)"
#Get Current GPO Report (XML)
$CurrentGPOReport = Get-GPOReport -Guid $GPO.Id -ReportType Xml -Domain $Domain -Server $NearestDC
If ($CurrentGPOReport -match $String) {
Write-Host "A Group Policy matching ""$($String)"" has been found:" -Foregroundcolor Green
Write-Host "- GPO Name: $($GPO.DisplayName)" -Foregroundcolor Green
Write-Host "- GPO Id: $($GPO.Id)" -Foregroundcolor Green
Write-Host "- GPO Status: $($GPO.GpoStatus)" -Foregroundcolor Green
}
}
Start het Powershell ISE programma en plak het script in het bovenste venster. Pas het Zoekterm aan naar je gewenste.. duh, zoekterm. Pas ook het jouwdomein.local aan naar je domein.
Druk vervolgens op de groene play knop en laat het script zoeken. Als die wat heeft gevonden dan zal dit groen worden weergegeven met de desbetreffende policy naam zoals hieronder:
