Sample script that searches Active Directory for all the global security groups in a domain. The groupType attribute is replicated to the Global Catalog. This means you can connect to a Global Catalog server and search across the forest for all global security groups.

PowerShell
Edit|Remove
$strFilter = "(&(objectCategory=Group)(groupType=-2147483646))"

$objDomain = New-Object System.DirectoryServices.DirectoryEntry

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter

$colProplist = "name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}

$colResults = $objSearcher.FindAll()

foreach ($objResult in $colResults)
    {$objItem = $objResult.Properties; $objItem.name}