script to search for all windows 2008 standard or Enterprise servers
in powershell v1 can use directorysearcher , filter on computers operatingsystem attribute includes string "2008". example:
$d = [system.directoryservices.activedirectory.domain]::getcurrentdomain()
$domain = [adsi]"ldap://$d"
$searcher = new-object system.directoryservices.directorysearcher
$searcher.pagesize = 200
$searcher.searchscope = "subtree"
$searcher.propertiestoload.add("samaccountname") > $null
$searcher.propertiestoload.add("distinguishedname") > $null
$searcher.searchroot = "ldap://" + $domain.distinguishedname
# filter on computers string "2008" in operatingsystem attribute.
$searcher.filter = "(&(objectcategory=computer)(operatingsystem=*2008*))"
$results = $searcher.findall()
foreach ($result in $results)
{
$computer = $result.properties.item("samaccountname")
# remove trailing "$" character.
$computer = $computer.item(0)
$computer = $computer.remove($computer.length - 1)
$dn = $result.properties.item("distinguishedname")
"$dn ($computer)"
}
in powershell v2 ad cmdlets, can use similar ldap filter get-adcomputer. example:
get-adcomputer -ldapfilter "(operatingsystem=*2008*)"
richard mueller - mvp directory services
Windows Server > Windows PowerShell
Comments
Post a Comment