Mishgunnn
похоже тут тот же глюк, что и в первом случае. У меня на подобном скрипте вылетает та же ошибка
работает вариант моего первого скрипта ;o)
замени в моем скрипте
Set objOU = GetObject("LDAP://cn=computers,dc=dom1,dc=dom2")
на
Set objOU = GetObject("LDAP://cn=users,dc=dom1,dc=dom2")
если ты используешь OU для пользователей, то можно, либо прописать все требуемые OU в скрипте, либо написать дополнительный кусок в скрипт, который берет из AD все OU с их DistinguishedName и по нему открывает новый обьект
Set objOU = GetObject("LDAP://" &DistinguishedName), а дальше уже по первому скрипту.
Нормально получить LastLogon через запрос ADODB у меня слету не получилось.
Добавлено:
Работающий вариант по принципу перебора OU
On Error Resume Next
Set objConnection = CreateObject("ADODB.Connection")
objConnection.provider = "ADsDSOObject"
objConnection.Open ("Active Directory Provider")
Set objRecordset = CreateObject("ADODB.Recordset")
CommandText = "Select DistinguishedName"
CommandText = CommandText + " from 'LDAP://DC=dom1,DC=dom2'"
CommandText = CommandText + " where objectClass='organizationalUnit' or objectClass='Container'"
objRecordset.CursorLocation = 2
objRecordset.Open CommandText, objConnection
n = 0
While Not objRecordset.EOF
DistinguishedName = objRecordset.fields("DistinguishedName").Value
Set objOU = GetObject("LDAP://" & DistinguishedName)
objOU.Filter = Array("user")
For Each obj In objOU
n = n + 1
Cells(n, 1).Value = obj.cn
Cells(n, 2).Value = obj.LastLogin
Cells(n, 3).Value = n
Next
objRecordset.MoveNext
Wend
похоже тут тот же глюк, что и в первом случае. У меня на подобном скрипте вылетает та же ошибка
работает вариант моего первого скрипта ;o)
замени в моем скрипте
Set objOU = GetObject("LDAP://cn=computers,dc=dom1,dc=dom2")
на
Set objOU = GetObject("LDAP://cn=users,dc=dom1,dc=dom2")
если ты используешь OU для пользователей, то можно, либо прописать все требуемые OU в скрипте, либо написать дополнительный кусок в скрипт, который берет из AD все OU с их DistinguishedName и по нему открывает новый обьект
Set objOU = GetObject("LDAP://" &DistinguishedName), а дальше уже по первому скрипту.
Нормально получить LastLogon через запрос ADODB у меня слету не получилось.
Добавлено:
Работающий вариант по принципу перебора OU
On Error Resume Next
Set objConnection = CreateObject("ADODB.Connection")
objConnection.provider = "ADsDSOObject"
objConnection.Open ("Active Directory Provider")
Set objRecordset = CreateObject("ADODB.Recordset")
CommandText = "Select DistinguishedName"
CommandText = CommandText + " from 'LDAP://DC=dom1,DC=dom2'"
CommandText = CommandText + " where objectClass='organizationalUnit' or objectClass='Container'"
objRecordset.CursorLocation = 2
objRecordset.Open CommandText, objConnection
n = 0
While Not objRecordset.EOF
DistinguishedName = objRecordset.fields("DistinguishedName").Value
Set objOU = GetObject("LDAP://" & DistinguishedName)
objOU.Filter = Array("user")
For Each obj In objOU
n = n + 1
Cells(n, 1).Value = obj.cn
Cells(n, 2).Value = obj.LastLogin
Cells(n, 3).Value = n
Next
objRecordset.MoveNext
Wend