Share via


Creating a Hosted Organizational Unit

Creating a Hosted Organizational Unit

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

The following example creates a hosted organizational unit.

Visual Basic

'//////////////////////////////////////////////////////////////////////
' Function: createOrgUnit()
' Purpose:  Creates a hosted organizational unit.
'
' Input:    szDomainName:         Domain of the Exchange organization
'           szHostingName:        Name of the hosting container in the DS
'           szOrgName:            Name of hosting organization
'           szUserName:           Admin Username
'           szUserPwd:            Admin pwd
'           szDirectoryServer:    Directory Server name
'
' Output:   createOrgUnit:        Contains Error code (if any)
'
' Note:  In order for this example to function correctly, it may be necessary to include
' references to the following libraries: Active DS Type Library, Microsoft CDO for
' Exchange Management Library, Microsoft Cluster Service Automation Classes,
' Microsoft CDO for Windows 2000 Library.
'//////////////////////////////////////////////////////////////////////
Public Function createOrgUnit(ByVal szDomainName As String, _
                              ByVal szHostingName As String, _
                              ByVal szOrgname As String, _
                              ByVal szUserName As String, _
                              ByVal szUserPwd As String, _
                              ByVal szDirectoryServer) As Integer

    Dim objLdap As IADsOpenDSObject
    Dim objHosting As IADsContainer
    Dim objOrg As IADs
    Dim szConnString As String
    Dim szaDomTokens() As String
    Dim szDomainDN As String

    On Error GoTo errhandler

    ' Put the domain name into an ldap string.
    szaDomTokens = Split(szDomainName, ".", -1, 1)
    szDomainDN = Join(szaDomTokens, ",dc=")
    szDomainDN = "dc=" & szDomainDN

    ' Build the ldap connection string.
    ' If hostingName is blank, then this function creates the specified
    ' organization in the root of the DS.

    If szHostingName = "" Then
        szConnString = "LDAP://" + szDirectoryServer + "/" + _
                       szDomainDN
    Else
        szConnString = "LDAP://" + szDirectoryServer + "/ou=" + _
                       szHostingName + "," + szDomainDN
    End If

    ' Open up the directory with the passed credentials (preferably the admin).
    Set objLdap = GetObject("LDAP:")

    ' Get a container object from the connection string.
    Set objHosting = objLdap.OpenDSObject(szConnString, _
                                          szUserName, _
                                          szUserPwd, _
                                          ADS_SECURE_AUTHENTICATION)

    ' Create the organizational unit.
    Set objOrg = objHosting.Create("organizationalUnit", _
                                   "ou=" + szOrgname)

    'save to Active Directory
    objOrg.SetInfo

    createOrgUnit = 0

    ' Clean up.
    Set objLdap = Nothing
    Set objHosting = Nothing
    Set objOrg = Nothing
    Exit Function

    ' Error handling.
errhandler:

    Set objLdap = Nothing
    Set objHosting = Nothing
    Set objOrg = Nothing
    createOrgUnit = 1
    ' Implement error logging here.

    Exit Function

End Function

Send us your feedback about the Microsoft Exchange Server 2003 SDK.

Build: June 2007 (2007.618.1)

© 2003-2006 Microsoft Corporation. All rights reserved. Terms of use.