![]() |
Windows AD 2003 и атрибуты пользователя
Windows 2003 server. Active directory
Имя сервера Proliantd Имя домена ARB.COM Добрый день! У меня в AD пользователи раскинуты по 12 подразделениям(P1,P2...P12). У каждого пользователя в атрибутах стоит галка "Запретить смену пароля пользователем" и "Срок действия пароля неограничен". Мне нужно заставить пользователей поменять свой пароль. Т.Е. Убрать галочки "Запретить смену пароля пользователем" и "Срок действия пароля неограничен" и у каждого пользователя в подразделении поставить галку "Требовать смену пароля при следующем входе в систему". Как это скриптом сделать? Находил такой вариант, но он мне выдал только (null): 0x80005000 Set objUser = GetObject _ ("LDAP://CN=user,OU=P1,DC=ARB,DC=com") objUser.Put "pwdLastSet", 0 objUser.SetInfo |
Получился у меня такой скипт . В принципе работает. Снимает галку "Срок действия пароля" и ставит "Требовать смену пароля".
Set objOU = GetObject ("LDAP://ou=P1,dc=ARB,dc=com") objOU.Filter = Array("user") For Each objUser In objOU 'wscript.echo objUser.adspath objUserFlags = objUser.Get("UserAccountControl") objPasswordExpirationFlag = 66048 'objPasswordExpirationFlag = 512 'objPasswordMustChanged = 0 ставит галку требовать смену пароля objPasswordMustChanged = 0 objUser.Put "UserAccountControl", objPasswordExpirationFlag objUser.Put "pwdLastSet", objPasswordMustChanged objUser.SetInfo Next ============== Но вот проблема подразделение P1 имеет в Аctive Directory подразделения(B1,B2..B7). Т.е. P1 - это верхушка дерева. Если в строке делаю Set objOU = GetObject ("LDAP://ou=B1,dc=ARB,dc=com") то получаю сообщение "(null): Такой объект на сервере отсутствует." Как правильно указать в строке Set objOU = GetObject ("LDAP://ou=??,dc=ARB,dc=com") подразделения B1..B7 ?? |
Время: 18:27. |
Время: 18:27.
© OSzone.net 2001-