So I was trying to find all the users in an Active Directory domain that had a manager. Naturally I turned to PowerShell and the Get-ADUser cmdlet.
First I tried this:
Get-ADUser -Properties Manager -Filter { manager -like “*” }
That threw this error:
Get-ADUser : Operator(s): The following: ”Eq’, ‘Ne” are the only operator(s) supported for searching on extended
attribute: ‘Manager’.
OK, so we can only use the operators eq (equals) and ne (not equals) when working with what the Active Directory PowerShell module defines as extended properties. But these only work if you are interested in specific values. I wanted to find any user that had a manager defined, regardless of who it was. So I could not use eq or ne.
So then I did this:
Get-ADUser -Properties Manager -Filter * | where { $_.manager -ne $null }
Which works, but returns every user from Active Directory and then PowerShell does the filtering. Not optimal code. I could have left if there, but you know…
This is what I ended up with:
Get-ADUser -Properties Manager -LDAPFilter “(manager=*)”
This uses the power of filtering within the directory service.