PasswordNeverExpires
От: Molkov Россия http://vladregion.arbitr.ru/
Дата: 12.04.05 09:02
Оценка:
Приветствую!
Есть задача: на сервере Win2KServ без домена находятся порядка 100 пользователей... необходимо им установить флаг "Срок действия пароля не ограничен".
при выполнении следующего кода возникает ошибка

1: ServerName="Server1"
2: UserName="User1"
3: Const DONT_EXPIRE_PASSWD = &h10000
4: Set objUser = GetObject("WinNT://" & ServerName & "/" & UserName & ",user")
5: intUAC = objUser.Get("userAccountControl")
6: If Not (DONT_EXPIRE_PASSWD AND intUAC) Then
7:    objUser.Put "userAccountControl", intUAC XOR DONT_EXPIRE_PASSWD
8:    objUser.SetInfo
9: End If


Ругается на строку 5 и говорит: "Свойства службы каталогов Active Directory не могут быть найдены в кэше"

В чем загвоздка? Каким образом нужно модифицировать скрипт?
Re: PasswordNeverExpires
От: Elena_ Россия  
Дата: 12.04.05 12:18
Оценка: 10 (1)
Здравствуйте, Molkov, Вы писали:

M>Есть задача: на сервере Win2KServ без домена находятся порядка 100 пользователей... необходимо им установить флаг "Срок действия пароля не ограничен".

M>при выполнении следующего кода возникает ошибка

M>
M>4: Set objUser = GetObject("WinNT://" & ServerName & "/" & UserName & ",user")
M>5: intUAC = objUser.Get("userAccountControl")
M>


M>Ругается на строку 5 и говорит: "Свойства службы каталогов Active Directory не могут быть найдены в кэше"


M>В чем загвоздка? Каким образом нужно модифицировать скрипт?


А если
intUAC = objUser.Get("UserFlags")


то что?
Пользователь — друг программиста!
Re[2]: PasswordNeverExpires
От: Мольков А.В. Россия http://vladregion.arbitr.ru/
Дата: 13.04.05 06:30
Оценка:
Здравствуйте, Elena_, Вы писали:

E_>А если

E_>
E_>intUAC = objUser.Get("UserFlags")
E_>

E_>то что?

О, великая Елена... Вы просто гений!
Все просто замечательно заработало, большое Вам спасибо!

P.S.: сорри за флуд. =)
Re: PasswordNeverExpires
От: IronHead Россия  
Дата: 28.04.05 07:30
Оценка:
Вот рабочий код:

Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000
Const ADS_UF_PASSWD_CANT_CHANGE = &H0040

usrName = "Ivanov"

Set WshNetwork = WScript.CreateObject("WScript.Network")
strComputerName = WshNetwork.ComputerName

Set Computer = GetObject("WinNT://" & strComputerName & "")
Set objUser = Computer.Create("user", usrName)
' Настроим у пользователя некоторые параметры
objUser.SetPassword "lalala"
objUser.FullName = usrName
objUser.Description = "Учетная запись создана с помощью VBScript"
objUser.UserFlags = objUser.UserFlags Or ADS_UF_DONT_EXPIRE_PASSWD Or ADS_UF_PASSWD_CANT_CHANGE
objUser.SetInfo

Wscript.Echo "User created!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.