Who came up with ADSI and thought it was a good idea?

I can see it now: “Let’s see, let’s take all of the robustness of a loosely typed language, and the beauty of HRESULT’s”.

And, finally, “let’s make it a scripting interface”.

So, you end up writing code like this:

object myServer = GetObject(”IIS://localhost/W3SVC/1/ROOT”)

which, for those of you who are lucky VBScript users out there, means that you work with objects that are DYNAMICALLY defined. So, even though the above is an “object”, this line is perfectly valid:

myServer.Path

Yup, even though the ‘Path’ property doesn’t even exist on the type ‘object’, it will compile and run.

Gotta love late binding….