A colleague of mine asked, how to retrieve the IPs from all servers in an active directory quickly.
Here is the answer:
#build a directorysearcher with ldap filter to get only computers #if only a single server should be determined, change the * in name=* to name=<servername> (without <>) $ds = new-object system.directoryservices.directorysearcher("(&(objectcategory=computer)(name=*))") #get the computernames only $computers = @($ds.findall() | % { ([adsi]$_.path).properties['name'] }) #loop through the names and try collect the IPs using wmi and list them foreach($c in $computers) { Get-WmiObject -computer $c -query "select * from win32_networkadapterconfiguration" | where-object { $_.ipaddress.count -gt 0 } | foreach-object { "$($c): $($_.ipaddress)" } }
Have fun.
COMMENTS