Does anyone know how to get a list of GPO (Group Policy Objects) from a Windows 2003 domain via PowerShell or some other way if PowerShell can’t do this?

I know that Server 2008 has some cmdlets for Group Polices but how can it be done for a Windows 2003 domain?

Looked on Google but no luck.

Thanks

Gary

link|improve this question
feedback

3 Answers

try SDM software's group policy cmdlets SDM GPMC PowerShell Cmdlets 1.3

link|improve this answer
Good idea, but trying to make the script PowerShell only so we don't need to install different cmdlets on all the customers. But thanks anyway. – Gary Fawcett Sep 13 '10 at 2:21
feedback

You can use the GPMC API to get a list of all GPOs:

$gpm = New-Object -ComObject GPMgmt.GPM
$constants = $gpm.GetConstants()
$domain = $env:USERDOMAIN
$gpmDomain =$gpm.GetDomain($domain ,"", $constants.UseAnyDC)
$gpmSearch = $gpm.CreateSearchCriteria()
$gpmDomain.SearchGPOs($gpmSearch)
link|improve this answer
Thanks Shay, I did try that using some examples last week. But I get:- – Gary Fawcett Sep 5 '10 at 23:15
$Constants=$gpm.Getconstants() Method invocation failed because [System.__ComObject] doesn't contain a method named 'Getconstants'. At line:1 char:29 + $Constants=$gpm.Getconstants <<<< () + CategoryInfo : InvalidOperation: (Getconstants:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound – Gary Fawcett Sep 5 '10 at 23:15
feedback

In the end I went with this, used the GPOINFO tool. Not pretty but got what we needed:-


Write-Host "Counting GPO's"
$dom=[System.DirectoryServices.ActiveDirectory.Domain]::GetComputerDomain()
$PDC=$dom.PdcRoleOwner
gpotool.exe /dc:$PDC > GPOToolRep.txt
$GCReport=Get-Content -Path GPOToolRep.txt
$TextOut+="$($GCReport[4])`n

Thanks for all the responses....Gary

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.