Ошибка создания пользователя с более чем 20 символами в sAMAccountName с помощью .NET

Я пытаюсь программно создать нового пользователя Active Directory, задав атрибуту sAMAccountName значение, превышающее 20 символов.

Когда я вызываю DirectoryEntry.CommitChanges(), я получаю ошибку:

00000523: SysErr: DSID-031A0FB6, problem 22 (Invalid argument), data 0

Если я попытаюсь создать нового пользователя, установив sAMAccountName меньше 20 символов, все будет работать.

Прежде чем кто-то скажет, что ограничение на sAMAccountName составляет 20 символов, я хочу отметить, что если я попытаюсь создать того же пользователя с sAMAccountName более 20 символов с помощью инструмента Windows "Active Directory Users and Computers", все работает. Я вижу новую запись в AD с помощью инструмента LDP, и эта запись имеет sAMAccountName более 20 символов.

Почему я не могу создать пользователя программно, используя .NET?

Ниже приведен код, который я использую:

Using objDirEnt As DirectoryEntry = New DirectoryEntry("LDAP://my.domain.com/cn=Users,dc=my,dc=domain,dc=com", "username", "Password", AuthenticationTypes.Secure Or AuthenticationTypes.Sealing)
    Using usuario As DirectoryEntry = objDirEnt.Children.Add("CN=aaaaaa bbbbbbbbbb ccccccccc (aaaaaa.bbbbbb.ccccccccc)", "user")
        usuario.Properties("sAMAccountName").Value = "aaaaaa.bbbbbb.ccccccccc"
        usuario.Properties("userAccountControl").Value = AdsUserFlags.PasswordNotRequired
        usuario.Properties("name").Value = "aaaaaa bbbbbbbbbb ccccccccc"
        usuario.Properties("givenName").Value = "aaaaaa"
        usuario.Properties("sn").Value = "bbbbbbbbbb ccccccccc"
        usuario.CommitChanges()
    End Using
End Using
9
задан Grhm 27 January 2012 в 17:21
поделиться