ActiveDS

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

ActiveDS

Сообщение ANDLL » 05.02.2005 (Сб) 21:23

Всем привет!

Вот решил изучить ActiveDS. И в первом коде наткнулся на такую проблему: Вот код, полностью скопированный из MSDN 2003
Код: Выделить всё
Option Explicit

Const ADS_UF_SCRIPT = &H1
Const ADS_UF_ACCOUNTDISABLE = &H2
Const ADS_UF_HOMEDIR_REQUIRED = &H8
Const ADS_UF_LOCKOUT = &H10
Const ADS_UF_PASSWD_NOTREQD = &H20
Const ADS_UF_PASSWD_CANT_CHANGE = &H40
Const ADS_UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED = &H80
Const ADS_UF_TEMP_DUPLICATE_ACCOUNT = &H100
Const ADS_UF_NORMAL_ACCOUNT = &H200
Const ADS_UF_INTERDOMAIN_TRUST_ACCOUNT = &H800
Const ADS_UF_WORKSTATION_TRUST_ACCOUNT = &H1000
Const ADS_UF_SERVER_TRUST_ACCOUNT = &H2000
Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000
Const ADS_UF_MNS_LOGON_ACCOUNT = &H20000
Const ADS_UF_SMARTCARD_REQUIRED = &H40000
Const ADS_UF_TRUSTED_FOR_DELEGATION = &H80000
Const ADS_UF_NOT_DELEGATED = &H100000
Const ADS_UF_USE_DES_KEY_ONLY = &H200000
Const ADS_UF_DONT_REQUIRE_PREAUTH = &H400000
Const ADS_UF_PASSWORD_EXPIRED = &H800000
Const ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = &H1000000

Public Sub CreateUser(strName As String, strSAMAccountName As String, strInitialPassword As String)
    Dim objRootDSE As IADs
    Dim objUsers As IADsContainer
    Dim objNewUser As IADsUser

'    On Error Resume Next
   
    ' Bind to the rootDSE object.
    Set objRootDSE = GetObject("LDAP://rootDSE")
    If (Err.Number <> 0) Then
        Exit Sub
    End If
   
    ' Bind to the Users folder in the domain.
    Set objUsers = GetObject("LDAP://CN=Users," & objRootDSE.Get("defaultNamingContext"))
    If (Err.Number <> 0) Then
        Exit Sub
    End If
   
    ' Create the user object.
    Set objNewUser = objUsers.Create("user", "CN=" + strName)
    If (Err.Number <> 0) Then
        Exit Sub
    End If
   
    ' Set the sAMAccountName property.
    objNewUser.Put "sAMAccountName", strSAMAccountName
    If (Err.Number <> 0) Then
        Exit Sub
    End If
   
    ' Commit the new user.
    objNewUser.SetInfo
    If (Err.Number <> 0) Then
        Exit Sub
    End If

    ' Set the initial password. This must be done after
    ' SetInfo is called because the user object must
    ' already exist on the server.
    objNewUser.SetPassword strInitialPassword
    If (Err.Number <> 0) Then
        Exit Sub
    End If
   
    ' Set the pwdLastSet property to zero, which forces the
    ' user to change the password at next log on.
    objNewUser.Put "pwdLastSet", 0
    If (Err.Number <> 0) Then
        Exit Sub
    End If
   
    ' To enable the user account, remove the
    ' ADS_UF_ACCOUNTDISABLE flag from the userAccountControl
    ' property. Also, remove the ADS_UF_PASSWD_NOTREQD and
    ' ADS_UF_DONT_EXPIRE_PASSWD flags from the
    ' userAccountControl property.
    Dim userActCtrl As Long
    userActCtrl = objNewUser.Get("userAccountControl")
    userActCtrl = userActCtrl And Not (ADS_UF_ACCOUNTDISABLE + ADS_UF_PASSWD_NOTREQD + ADS_UF_DONT_EXPIRE_PASSWD)
    objNewUser.Put "userAccountControl", userActCtrl
    If (Err.Number <> 0) Then
        Exit Sub
    End If
   
    ' Commit the updated properties.
    objNewUser.SetInfo
End Sub

Процедура выдает ошибку(Automation error) при первом вызове GetObject. С чего бы это?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.02.2005 (Вс) 6:47

Помнится, alibek мне говорил, что должна стоять серверная операционка на манер 2003 server...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 06.02.2005 (Вс) 10:17

Нет, в Windows 2003 Server та же ошибка.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 07.02.2005 (Пн) 9:41

Теперь ошибка на следующем вызове GetObject.
И вообще, тут какя-то ерунда. Скачал с сайта ms пример, а он не работает!
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 07.02.2005 (Пн) 10:10



Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 59

    TopList