Solved

Exchange ADSi

Posted on 2002-05-02
5
599 Views
Last Modified: 2008-03-17
I am trying to create a mailnox using EXCDO

I get the following error

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'objMailbox.CreateMailbox'

when I do this

Set objMailbox = Usr
               objMailbox.CreateMailbox "LDAP://"&homeDB
              usr.SetInfo
               Set objMailbox = Nothing

works on a test system just not on production, same permissions and everything any ideas.

0
Comment
Question by:Joshuap
  • 3
5 Comments
 
LVL 1

Expert Comment

by:ramani_gr
ID: 6988370
Hope this function helps you.


Function CreateMailboxCDOPerson(strFirstName As String, _
                                   strLastName As String, _
                                   strHomeMDBUrl As String) As Boolean
'strHomeMDBUrl should look like this
'strHomeMDBUrl = "CN=Mailbox Store (MYSTORE),CN=First Storage Group,
'                 CN=InformationStore,CN=MYSTORE,CN=Servers,
'                 CN=First Administrative Group,CN=Administrative Groups,
'                 CN=IASI,CN=Microsoft Exchange,CN=Services,CN=Configuration,
'                 DC=mydomain,DC=extest,DC=microsoft,DC=com"

    Dim oPerson         As New CDO.Person
    Dim oMailbox        As CDOEXM.IMailboxStore
    Dim strUserName     As String
    Dim strURL          As String
    Dim strContainerName As String
    Dim Result       As Boolean
   
    Result = True
   
    strUserName = strFirstName & strLastName
   
    strContainerName = "Users"
    ' Create URL for the user
    Result = Result And CreateUserURL(strURL, strContainerName, False, strUserName)
   
    oPerson.FirstName = strFirstName
    oPerson.LastName = strLastName
   
    oPerson.DataSource.SaveTo strURL
    Result = Result And CheckError("SaveTo " & strURL)
   
    Set oPerson = New CDO.Person
    ' Bind
    oPerson.DataSource.Open strURL
    Result = Result And CheckError("Bind to CDO User " & strUserName)
   
    ' Create Mailbox
    Set oMailbox = oPerson
    oMailbox.CreateMailbox strHomeMDBUrl
    Result = Result And CheckError("Create Mailbox for CDO User " & strUserName)
   
    ' Save
    oPerson.DataSource.Save
    Result = Result And CheckError("Save CDO User " & strUserName)
       
    'CleanUp
    Set oPerson = Nothing
    Set oMailbox = Nothing
   
    CreateMailboxCDOPerson = Result
End Function
0
 
LVL 1

Accepted Solution

by:
ramani_gr earned 100 total points
ID: 6988375
One more using ADSI

Function ADSICreateMailBoxRecipient(ServerName As String, _
                                    DomainName As String, _
                                    emailname As String, _
                                    FirstName As String, _
                                    LastName As String) As Integer

'ServerName is something like "MyServer6"
'DomainName is something like "DC=MYDOMAIN3,DC=microsoft,DC=com"
'emailname is something like "jamessmith"

'this assumes the MDB to be "Private MDB"


Dim objUser As IADsUser
Dim objContainer As IADsContainer
Dim objMailbox As CDOEXM.IMailboxStore
Dim recipname As String, recip As String

recip = "CN=" & emailname

' get the container
Set objContainer = GetObject("LDAP://" + ServerName + "/" + _
                            "CN=users," + DomainName)

' create a recipient
Set objUser = objContainer.Create("User", recip)
objUser.Put "samAccountName", emailname
objUser.Put "sn", LastName
objUser.Put "givenName", FirstName
objUser.Put "userPrincipalName", emailname

objUser.SetInfo
objUser.SetPassword "password"  'let user change it later
objUser.AccountDisabled = False

Set objMailbox = objUser

'Create a mailbox for the recipient
'You cannot create a mailbox using ADSI, so use CDOEXM
objMailbox.CreateMailbox "LDAP://" + ServerName + _
                         "/CN=Private MDB" + _
                         ",CN=First Storage Group,CN=InformationStore,CN=" + _
                         ServerName + _
                         ",CN=Servers,CN=First Administrative Group," + _
                         "CN=Administrative Groups,CN=First Organization," + _
                         "CN=Microsoft Exchange,CN=Services," + _
                         "CN=Configuration," + DomainName
objUser.SetInfo

End Function
0
 
LVL 1

Expert Comment

by:ramani_gr
ID: 6988378
and check whether the Exchange services are running.
0
 
LVL 15

Expert Comment

by:gladxml
ID: 8795680
No comment has been added lately and it seems that this question have been abandoned. So it's time to clean up this TA.

I will leave a recommendation in the Cleanup topic area that this question or invite a Moderator to close this question if there's no reply from you after seven days.

In the absence of responses, I will recommend the following:

To accept the comment and points awarded to ramani_gr

** PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER **


Just trying to help for the cleanup...
gladxml
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:  The Exchange of information …
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question