Уффф. первичный набросок. Остальное добавлю в комменты.. . ппц короче скриптик вышел, но у меня пашет =)
Сохранить в имя. vbs и выполнить cscript имя. vbs, скрипт должен запускаться от имени админа домена (от юзера может только запрос пройти без изменения состояния аккаунта)
Сейчас - выводит _СТАНДАРТНЫЕ_ обычные аккаунты юзеров с их датой входа и емылом
Пишет OK - если <90 дней, OLD если больше. Выводит общее число юзеров и тех, которому сменили состояние. Остальное добавлю в комменты. (осталось сделать Account = disable юзеру)
Комменты если нужно могу подписать что для чего подробнее (письмом)
-------
'Получаем инфу о временной зоне (мало-ли он географически в другой =)
intBias = TimeZoneBias
'Аттрибуты для вывода на экран
arrAttributes = Array("lastLogonTimeStamp","displayname","mail")
dtStart = Date
intCount = 0
intTotal = 0
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection
Set objRootDSE = GetObject("LDAP://RootDSE")
strBase = "<ldap://">"
Set objRootDSE = Nothing
'Фильтр для запроса к AD 66048 - аттрибуты обычного юзера исключая системные аккаунты
strFilter = "(&(objectCategory=person)(objectClass=user)(userAccountControl=66048))"
strAttributes = Join(arrAttributes,",")
Wscript.Echo Join(arrAttributes,";")
adoCommand.CommandText = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 30 'Ахтунг! Выставите таймаут больше, если сервер черти-где =)
adoCommand.Properties("Cache Results") = False 'Кеширование может помешать
Set adoRecordset = adoCommand.Execute
Do Until adoRecordset.EOF
On Error Resume Next
strTempOutput = ""
For i = 1 To Ubound(arrAttributes)
strTempOutput = strTempOutput & " ; " & adoRecordset.Fields(arrAttributes(i)).Value
strOutput = Mid(Ltrim(strTempOutput),3)
Next
Set objDate = adoRecordset.Fields(arrAttributes(0)).Value
If (Err.Number <> 0) Then
dtmDate = #1/1/1601#
Else
dtmDate = ((((objDate.Highpart * (2^32)) + objDate.LowPart)/(600000000 - intBias))/1440) + #1/1/1601#
End If
Set objDate = Nothing
strOutput = strOutput & " ; " & dtmDate & " : "
If (dtStart - dtmDate) > 90 Then
strOutput = strOutput & "OLD"
intCount = intCount + 1
Else
strOutput = strOutput & "OK"
End If
Wscript.Echo strOutput
intTotal = intTotal + 1
adoRecordset.MoveNext
Loop
WScript.echo "Total records:" & intTotal & " Changed:" & intCount
adoRecordset.Close
adoConnection.Close
Set adoRecordset = Nothing
Set adoConnection = Nothing
Set adoCommand = Nothing
Function TimeZoneBias
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colTimeZone = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objTimeZone in colTimeZone
TimeZoneBias = objTimeZone.Bias
Exit For
Next
Set colTimeZone = Nothing
Set objWMIService = Nothing
End Function
Другие языки программирования и технологии
Помогите создать скрипт
А теперь по подробнее, шо такэ AD?
БД есть? Выбираем и метим юзверей.. . делов-то
А так.. . любой каприз за ваши $
БД есть? Выбираем и метим юзверей.. . делов-то
А так.. . любой каприз за ваши $
Chyngyz Kasmambetov
AD - это Active Directory.
то, что это "делов-то " - я не сомневаюсь.
Но я прошу помочь в написании скрипта.
то, что это "делов-то " - я не сомневаюсь.
Но я прошу помочь в написании скрипта.
а разве через GPO нельзя?
если нет, то попробуй в скрипте dsquery и dsmod
если нет, то попробуй в скрипте dsquery и dsmod
Chyngyz Kasmambetov
Через GPO не в курсе где ковырять.
Через dsquery и dsmod пробую, но не отрабатывается.
dsquery user "ou=MSK,ou=USERS,dc=test_domain,dc=com" -inactive 1 | dsmod user -disabled yes
Через dsquery и dsmod пробую, но не отрабатывается.
dsquery user "ou=MSK,ou=USERS,dc=test_domain,dc=com" -inactive 1 | dsmod user -disabled yes
Похожие вопросы
- Помогите со скриптом авторизации и регистрации пользователей на сайте через БД
- Помогите написать скрипт сканирования файла для антивируса
- Как создать скрипт замены строки для excel? Строка должна заменяться каждый день в час ночи в файле.
- Помогите создать резервную копию ОС
- Срочно! Помогите со скриптом! HTML
- Помогите сделать скрипт на autohotkey.
- Помогите со скриптом
- люди помогите создать онлайн игру
- Помогите создать базу данных
- Пожалуйста, помогите создать сайт!
ок... потестю ща... спасибо!!!