Sample script that searches Active Directory for all printers capable of printing more 20 or more pages per minute. The printRate attribute is not replicated to the Global Catalog, meaning you cannot connect to a Global Catalog server and search across the forest for printers that print a specified number of pages per minute.

PowerShell
Edit|Remove
$strFilter = "(&(objectCategory=printQueue)(printRate>=20))"

$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}