DekGenius.com
[ Team LiB ] Previous Section Next Section

Recipe 9.1 Finding the GPOs in a Domain

9.1.1 Problem

You want to find all of the GPOs that have been created in a domain.

9.1.2 Solution

9.1.2.1 Using a graphical user interface
  1. Open the GPMC snap-in.

  2. In the left pane, expand the Forest container.

  3. Expand the Domains container.

  4. Browse to the domain of the target GPO.

  5. Expand the Group Policy Objects container. All of the GPOs in the domain will be listed under that container.

9.1.2.2 Using a command-line interface
> listallgpos.wsf [/domain:<DomainDNSName>] [/v]

You can also use the gpotool to display the GPOs:

> gpotool [/domain:<DomainDNSName>] [/verbose]
9.1.2.3 Using VBScript
' This code displays all of the GPOs for a domain.
' ------ SCRIPT CONFIGURATION ------
strDomain   = "<DomainDNSName>"   ' e.g. rallencorp.com
' ------ END CONFIGURATION ---------

set objGPM = CreateObject("GPMgmt.GPM")
set objGPMConstants = objGPM.GetConstants( )
  
' Initialize the Domain object
set objGPMDomain = objGPM.GetDomain(strDomain, "", objGPMConstants.UseAnyDC)

' Create an empty search criteria
set objGPMSearchCriteria = objGPM.CreateSearchCriteria
set objGPOList = objGPMDomain.SearchGPOs(objGPMSearchCriteria)

' Print the GPOs.
WScript.Echo "Found " & objGPOList.Count & " GPOs in " & strDomain & ":"
for each objGPO in objGPOList
   WScript.Echo "   " & objGPO.DisplayName
next

9.1.3 Discussion

See the Introduction in Chapter 9 for more on how GPOs are stored in Active Directory.

9.1.3.1 Using VBScript

You can find the GPOs in a domain by using the GPMDomain.SearchGPOs method. The only parameter you need to pass to SearchGPOs is a GPMSearchCriteria object, which can be used to define criteria for your search. In this case, I created a GPMSearchCriteria object without additional criteria so that all GPOs are returned. The SearchGPOs method returns a GPMGPOCollection object, which is a collection of GPMGPO objects.

9.1.4 See Also

MS KB 216359 (HOW TO: Identify Group Policy Objects in the Active Directory and SYSVOL) and MSDN: GPMDomain.SearchGPOs

    [ Team LiB ] Previous Section Next Section