The Get-AD* cmdlets, in my experience, require the use of a try-catch statement. ErrorAction, with any parameter value, simply doesn’t work. Try the difference between
try {
Get-ADUser -Identity $member
} catch {
Write-Warning -Message 'Unable to locate object in Active Directory.'}
when $member is set to an actual object, and when it’s not.
I did originally have it as a try catch, but then i remembered it had a 3rd statement and wasnt sure how to use it…
try
{
Get-ADUser $member -erroraction stop
"user"
}
catch
{
get-adgroup $member -erroraction stop
"group"
#not sure how to incorporate the 3rd one here as it will stop on the group fail
"contact"
(Get-ADObject -LDAPFilter "ObjectClass=Contact" | Where-Object{ $_.distinguishedName -like $member }).name
}