Using Active Directory Service Interfaces
Active Directory Service Interfaces (ADSI) provides the means for client applications of directory services to use one set of interfaces to communicate with any namespace that provides an ADSI implementation. ADSI clients use the well-defined Active Directory Service Interfaces in place of the network-specific API calls to gain simpler access to the services for a namespace.
Active Directory Service Interfaces conform to the Component Object Model (COM) and support standard COM features.
ADSI supplies interfaces that are compliant with Automation for name-bound controllers like Java, Microsoft Visual Basic development system, and Visual Basic Scripting Edition (VBScript). ADSI can also provide an interface that can optimize performance for interfaces that are not compliant with Automation, to use with language environments like C and C++.
ADSI also provides the non-automation interfaces, IDirectoryObject and IDirectorySearch, to support directory object management and queries.
In addition, ADSI supplies its own OLE DB provider, so that any client already using OLE DB, including those using ActiveX Data Objects, can query directory services directly.
Web applications using Active Server Pages also can program access to directory services through ADSI.
ADSI clients can programmatically discover all the ADSI providers at a site and use the same interfaces to communicate with each namespace. As additional providers are installed, the ADSI clients can communicate, without recompiling, with the new namespaces as well.
This programming guide describes how ADSI works and provides information for performing specific tasks in ADSI. The following topics are discussed:
- Binding to an ADSI Object
- Creating and Deleting Objects
- Accessing and Manipulating Data with ADSI
- Using the ADSI Schema
- Collections and Groups
- Enumerating ADSI Objects
- Searching Active Directory
- ADSI Security Model
- ADSI Extensions
- Using ADSI with Exchange
- ADSI Utility Interfaces
- Programming ADSI with Java/COM