dalight Цитата: Хотелось бы сразу скормить список
попробуй [more=так:]
const ADS_SCOPE_SUBTREE = 2 ' или 0 если не интересны вложенные ОУ
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
'7
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = _
"Select * from 'LDAP://DC=DOMAIN,DC=local' " _
& "Where objectClass='User' and objectCategory='person'"
'objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set rs = objCommand.Execute
rs.MoveFirst
'18
Do Until rs.EOF
'msgbox ChkLAcc(rs.Fields(0).Value)
'тока для не встроенных и (вроде) не локальных
if Not ChkLAcc(rs.Fields(0).Value) then
Set objUser1 = GetObject(rs.Fields(0).Value)
'objUser1.Get("sAMAccountName") - выдает логин юзера
'objUser1.Get("userPrincipalName") - выдает "логин юзера@полное имя домена"
'objUser1.Get("Name") - выдает имя юзера из описания
objUser1.Put "mail", "it@domain.ru"
objUser1.SetInfo
Set objUser1= Nothing
end if
rs.MoveNext
Loop
'чекаем локальные и встроенные аккаунты
Function ChkLAcc(FDQNAccName)
const LAC0="IUSR_"
const LAC1="IWAM_"
const LAC2="SUPPORT_"
const LAC3="krbtgt"
on error resume next
ChkLAcc=False
Set objUser = GetObject(FDQNAccName)
if IsNull(objUser.Get("Description")) then exit function
if instr(objUser.Get("Description"),"Встроенная")_
OR instr(objUser.Get("Name"),LAC0)_
OR instr(objUser.Get("Name"),LAC1)_
OR instr(objUser.Get("Name"),LAC2)_
OR instr(objUser.Get("Name"),LAC3) then
ChkLAcc=true
Set objUser = Nothing
exit function
end if
End Function
[/more]