zolivan
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Друзья, прошу помощи в решении такой задачи: Требуется создать в домене 200 пользователей с заранее известными паролями и с установленными "флагами" - "Запретить смену пароля пользователем" и "Срок действия пароля не ограничен". Для этой цели я решил взять за основу следующий скрипт для одного пользователя: Dim department Dim name Dim Login Dim pswr Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 department = "ou=бухгалтерия" name = "TestUser" Login = "Юзер" pswd = "12345" Set objOU = GetObject("LDAP://"&department&",ou=Пользователи,dc=test,dc=local") Set objUser = objOU.Create("user", "cn=" & name) objUser.sAMAccountName = Login 'Login objUser.GivenName = Login 'name objUser.userPrincipalName = "" & Login & "@test.local" 'Учетная запись objUser.displayName = Login 'Выводимое имя objUser.SetInfo 'Задаем пароль и включаем акаунт objUser.SetPassword pswd 'Пароль objUserFlags = objUser.Get("UserAccountControl") objPasswordExpirationFlag = objUserFlags OR ADS_UF_DONT_EXPIRE_PASSWD objUser.Put "UserAccountControl", objPasswordExpirationFlag objUser.SetInfo пользователь создается и стоит галочка "Срок действия пароля не ограничен" Добавляю строки: Const ADS_UF_PASSWD_CANT_CHANGE = &H40 'Вначале objUser.Put "UserAccountControl", ADS_UF_PASSWD_CANT_CHANGE ' в третьем блоке и флаги не устанавливаются. (( И еще пара вопросов: на форумах встретил такую запись вызова состояния флагов: "objUser.Get("userFlags")" - это тоже самое, что и "objUser.Get("UserAccountControl")"? и не совсем понятно зачем вообще нужна запись, точнее логическая операция: objPasswordExpirationFlag = objUserFlags OR ADS_UF_DONT_EXPIRE_PASSWD? Понимаю, что вопросы может и глупые, да и я не силен в программировании, а после гугла вопросов стало больше, чем ответов. |