Приветствую!
Есть задача: на сервере 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 не могут быть найдены в кэше"
В чем загвоздка? Каким образом нужно модифицировать скрипт?
Здравствуйте, 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")
то что?
Здравствуйте, Elena_, Вы писали:
E_>А если
E_>E_>intUAC = objUser.Get("UserFlags")
E_>
E_>то что?
О, великая Елена... Вы просто гений!

Все просто замечательно заработало, большое Вам спасибо!
P.S.: сорри за флуд. =)
Вот рабочий код:
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!"