Я ищу простой способ экспортировать информацию о всех активных каталогах в уникальные vcards для каждого. есть некоторая информация, которую я хотел бы оставить вне vcard, как домашний телефон, и экстренный контакт. я посмотрел вокруг сети и мало что нашел. любая помощь будет оценена по достоинству.способ сценария экспорта всех пользователей AD vcards
ответ
Я сомневаюсь, что будет очень простой способ. В конечном счете, вы должны
- перечислить все пользователь (или подмножество поэтому)
- перебрать полученный список пользователей
- экспорта данных каждого пользователя в VCard
Для поиска & итерация часть, вы можете использовать PrincipalSearcher
сделать ваш поиск:
// create your domain context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
// define a "query-by-example" principal - here, we search for a UserPrincipal
// this "QBE" user would give you the ability to further limit what you get back
// as results from the searcher
UserPrincipal qbeUser = new UserPrincipal(ctx);
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
// find all matches
foreach(var found in srch.FindAll())
{
UserPrincipal foundUser = found as UserPrincipal;
if(foundUser != null)
{
ExportToVCard(foundUser);
}
}
}
И теперь все, что осталось сделать, это создать функцию ExportToVCard
:-) Смотрите e.g. this blog post with code samples and further links за помощью.
Если у вас еще нет - абсолютно прочитайте статью MSDN Managing Directory Security Principals in the .NET Framework 3.5, в которой показано, как наилучшим образом использовать новые функции в System.DirectoryServices.AccountManagement
. Или просмотрите пространство имен .
Если вы просто хотите сами данные, я бы посмотрел бесплатный браузер LDAP от Softerra, found here.
Настройка профиля для вашего сервера каталогов - после его подключения в браузере вы увидите схему по умолчанию для BaseDN, которую вы предоставили во время начальной настройки. На значке сервера щелкните правой кнопкой мыши и нажмите «Экспорт данных».
Мастер экспорта будет ходить вас через большую часть процесса, но важная часть Шаг 3. Если вы хотите, чтобы найти всех пользователей, просто установите фильтр поиска для (objectClass=user)
, убедитесь, что область поиска это SubTree, а затем отредактируйте, какие атрибуты вы хотите вернуть.
Вам необходимо обработать результаты в VCards, но это самый простой \ быстрый способ получить все нужные вам пользователи и атрибуты.
Если вы используете Java, вы можете использовать «ez-vcard» для создания файлов vCard (отказ от ответственности: я автор;)): http://code.google.com/p/ez-vcard – Michael