SerBUser
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Помогите, пожалуйста - есть Эксклевский файл, в который из AD заношу данные пользователей: Код: Set objRootDSE = GetObject("LDAP://RootDSE") strRoot = objRootDSE.Get("DefaultNamingContext") strFilter = "(&(objectCategory=Person)(objectClass=User))" strAttributes = "distinguishedName,sAMAccountName,userPrincipalName,cn,Company,givenName,sn," & _ "displayName,physicalDeliveryOfficeName," & _ "telephoneNumber,mail," & _ "department," & _ "manager" strScope = "subtree" Set cn = CreateObject("ADODB.Connection") Set cmd = CreateObject("ADODB.Command") cn.Provider = "ADsDSOObject" cn.Open "Active Directory Provider" cmd.ActiveConnection = cn cmd.Properties("Page Size") = 1000 cmd.CommandText = "<LDAP://" & strRoot & ">;" & strFilter & ";" & _ strAttributes & ";" & strScope Set rs = cmd.Execute Worksheets("Лист1").Activate For i = 0 To rs.Fields.Count - 1 Worksheets("Лист1").Cells(17, i + 1).Value = rs.Fields(i).Name Worksheets("Лист1").Cells(17, i + 1).Font.Bold = True Next Worksheets("Лист1").Range("A18").CopyFromRecordset (rs) rs.Close cn.Close | Все замечательно заполняется. Теперь надо поменять в AD у пользователей организацию. Делаю так: Код: Dim str, strCompany, strCompanyd Worksheets("Лист1").Activate Row = 18 str = Worksheets("Лист1").Cells(Row, 1).Value While str <> "" MsgBox (str) strCompanyd = Trim(Worksheets("Лист1").Cells(Row, 5).Value) Set objItem = GetObject("LDAP://" & str) strCompany = Trim(objItem.Get("company")) If strCompany <> strCompanyd Then objItem.Put "company", strCompanyd objItem.SetInfo End If Row = Row + 1 str = Worksheets("Лист1").Cells(Row, 1).Value Wend MsgBox ("Выполнено") | У одного пользователя меняет нормально, а на втором вываливает ошибка: " Свойства служб каталогов не могут быть найдены в кэше". С чем это может быть связано? |