YNY
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору 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 | Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 10:15 10-06-2012 | Исправлено: YNY, 11:06 10-06-2012 |
|