Active Directory Запрос LDAP sAMAccountName и Доменом

Чтобы вставить JDBC, вы можете использовать

dataframe.write.mode(SaveMode.Append).jdbc(jdbc_url,table_name,connection_properties)

Кроме того, Dataframe.write предоставляет вам DataFrameWriter и имеет некоторые методы для вставки блока данных.

def insertInto(tableName: String): Unit

Вставляет содержимое DataFrame в указанную таблицу. Это требует, чтобы схема DataFrame была такой же, как схема таблицы.

Поскольку она вставляет данные в существующую таблицу, формат или параметры будут игнорироваться.

http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.DataFrameWriter

Пока ничего не удалось обновить отдельные записи из коробки из искры, хотя

21
задан GEOCHET 9 March 2009 в 23:24
поделиться

4 ответа

Во-первых, измените свой поисковый фильтр, чтобы только искать пользователей и не контакты:

(&(objectCategory=person)(objectClass=user)(sAMAccountName=BTYNDALL))

можно перечислить все домены леса путем соединения с разделом конфигурации и перечисления всех записей в контейнере разделов. Извините у меня нет кода C# прямо сейчас, но вот некоторый код vbscript, который я использовал в прошлом:

Set objRootDSE = GetObject("LDAP://RootDSE")
AdComm.Properties("Sort on") = "name"
AdComm.CommandText = "<LDAP://cn=Partitions," & _
    objRootDSE.Get("ConfigurationNamingContext") & ">;" & _
        "(&(objectcategory=crossRef)(systemFlags=3));" & _
            "name,nCName,dnsRoot;onelevel"
set AdRs = AdComm.Execute

, От которого можно получить имя и dnsRoot каждого раздела:

AdRs.MoveFirst
With AdRs
  While Not .EOF
    dnsRoot = .Fields("dnsRoot")

    Set objOption = Document.createElement("OPTION")
    objOption.Text = dnsRoot(0)
    objOption.Value = "LDAP://" & dnsRoot(0) & "/" & .Fields("nCName").Value
    Domain.Add(objOption)
    .MoveNext 
  Wend 
End With
21
ответ дан Dscoduc 29 November 2019 в 06:49
поделиться

"Домен" не является свойством объекта LDAP. Это больше похоже на название база данных , объект хранится в.

, Таким образом, необходимо соединиться с правильной базой данных (в терминах LDAP: "связывают с доменом/сервером каталогов" ) для выполнения поиска в той базе данных.

, После того как Вы связали успешно, Ваш запрос в, он - текущая форма, все, в чем Вы нуждаетесь.

BTW: Выбор "ObjectCategory=Person" более чем "ObjectClass=user" были хорошим решением. В AD первый - "индексируемое свойство" с превосходной производительностью, последний не индексируется и немного медленнее.

5
ответ дан Tomalak 29 November 2019 в 06:49
поделиться

Необходимо выполнить поиск в домене:

http://msdn.microsoft.com/en-us/library/ms677934 (По сравнению с 85) .aspx Так, в основном Ваш должен связать с доменом для поиска в этом домене.

3
ответ дан lkurts 29 November 2019 в 06:49
поделиться

При использовании.NET используйте класс DirectorySearcher . Можно передать в домене как строка в конструктора.

// if you domain is domain.com...
string username = "user"
string domain = "LDAP://DC=domain,DC=com";
DirectorySearcher search = new DirectorySearcher(domain);
search.Filter = "(SAMAccountName=" + username + ")";
3
ответ дан Aaron Daniels 29 November 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: