I would want to write a VB6.0 background process which creates
i. NT User account in Win2k Server and
ii. respective Exchange 5.5 mailbox for a list of users.
For this purpose, I have tried out the Acctcrt.dll control that enable me to
create part ( i ). From the sample codes attached in MSDN library for
Acctcrt.dll component, I have fall into several problems.
First part of codes that I have simplified for extracting SID for user
Dim acctcrt As MSExchangeAcctLib.AcctMgmt
Dim varSID As Variant
Set acctcrt = New MSExchangeAcctLib.AcctMgmt
'Extract SID for administrator
Call acctcrt.GetSidFromName("DomainName", "administrator", varSID)
MsgBox "Administrator SID = " & CStr(varSID)
I'm hoping that the .GetSidFromName function from Acctcrt.dll to return the
SID for account that I have created. However, the message displayed is
"Administrator SID = ???????????????" . It returns a Nothing or empty
string. Can anyone of you tell me what's the reason for this ? is varSID
being declared wrongly ?
Anyone of you have tried out the codes attached together with this .dll file
? I'm having difficulty in some of the declaration part, which I hope I have
figured it out properly. Please pin point any mistakes I have done.
Dim Acct As MSExchangeAcctLib.AcctMgmt
Dim strDomain As String
Dim strUser As String
Dim strPassword As String
Dim strReturn As String
Dim varSecurityDescriptor As Variant
Dim varSecurityID As Variant
Dim strDelivContTypes As String
Dim recipcont_obj As IADs
Dim recip_obj As IADs
Set Acct = New MSExchangeAcctLib.AcctMgmt
strUser = txtUserName.Text
strPassword = txtPassword.Text
'Create NT User Account into Viztel Domain
strDomain = "Viztel"
Call Acct.NtAccountCreate(strDomain, _
'Get the SID and descriptor for the directory object
Call Acct.GetSidFromName(strDomain, strUser, varSecurityID)
Call Acct.GenerateSecDescriptor(strDomain, strUser,
'convert the default value below so its suitable for ADSI/LDAP Transport
strDelivContTypes = "2A864886F7140501"
'Create the mailbox in the DS with ADSI
strPath = "LDAP://Servername/o=org/ou=site/cn=Microsoft
Set recipcont_obj = GetObject(CStr(strPath))
Set recip_obj = recipcont_obj.Create("OrganizationPerson", "cn=MBName")
'set the required attributes for the directory object
recip_obj.Put "Deliv-Ext-Cont-Types", strDelivContTypes
recip_obj.Put "NT-Security-Descriptor", CStr(varSecurityDescriptor)
recip_obj.Put "Assoc-NT-Account", varSecurityID
recip_obj.Put "FullName", txtFullName.Text
MsgBox "Account " & strUser & " Created Successfully"
For this chunk of codes, I have the following message at recip_obj.SetInfo,
which I suspect it's due to the empty string return in the
varSecurityDescriptor, am I right ?
Run Time Error '-2147016694 (8007200a)'
I appreciate if you could provide any advices, suggestions and helps to me
Thank you in advance.