# encoding: ascii
# api: powershell
# title: Servers in Computers OU
# description: Many organizations have a separate OUs for their servers and workstations, this is an example on how to list servers in the wrong OU.
# version: 0.1
# type: function
# license: CC0
# x-poshcode-id: 848
# x-archived: 2009-02-26T17:45:20
#
# This will list any Entries with “Server“ in OS name in the Computers OU in ActiveDirectory.
#
function checkADSI()
{ $ADSIStat = "Servers in Computer OU"
  $error.clear()
  $errcnt = 0
    
  $objDomain = New-Object System.DirectoryServices.DirectoryEntry("LDAP://CN=Computers,DC=domain,DC=com")
  $objSearcher = New-Object System.DirectoryServices.DirectorySearcher($objDomain)
  $objSearcher.Filter = ("(operatingSystem=*Server*)")
  $objSearcher.SearchScope = "OneLevel"
  
  $colProplist = "dnshostname"
  foreach ($i in $colPropList)
  {$idx = $objSearcher.PropertiesToLoad.Add($i)}

  $colResults = $objSearcher.FindAll()
  for($i = 0; $i -lt ($colResults.count -1); $i++ ) 
  { $objResult = $colResults[$i]
    $objComputer = $objResult.Properties
    $cName = ($objComputer.dnshostname -replace ".domain.com","")
    
    $ADSIStat += "`n`t! " + $cname
    $errcnt += 1
    
  }
  if($error[0])
  { $ADSIStat += "`n`t Errors Occured: "
    foreach($err in $error)
    { $ADSIStat += "`n`t`!" + $err }
  } 
  elseif($errCnt -eq 0)
  {$ADSIStat += " None" }
  
  return $ADSIStat
}#function checkADSI()
