I'm trying to create a user using the ADSI object if it doesn't already exist. Here are the strange results I'm getting
#Check a user that I know exists
[ADSI]::Exists("WinNT://localhost/micah,user") #True
#Check a group that I know exists
[ADSI]::Exists("WinNT://localhost/administrators,group") #True
#Check a group that DOESN'T exist
[ADSI]::Exists("WinNT://localhost/whoops,group") #False
#Check a user that DOESN'T exist (NOT specifying that the obect is a user)
[ADSI]::Exists("WinNT://localhost/test") #False (This works fine)
#Check a user that DOESN'T exist (specifying that the obect IS a user)
[ADSI]::Exists("WinNT://localhost/test,user")
#Throws exception "The user name could not be found"
The last line makes no sense to me. Why would it throw an exception when I specify that I'm specifically looking for a user, but when I DONT specify that I want a user it works just fine? This seems completely unintuitive to me. What am I missing?
Its a bug and Microsoft will not fix it --
http://connect.microsoft.com/VisualStudio/feedback/details/337682/directoryentry-exists-throws-exception-for-non-existent-winnt-object