Если вы используете .NET 3.5 (или вы можете обновить его), ознакомьтесь с пространством имен System.DirectoryServices.AccountManagement
- многое упрощается.
Читайте об этом: Управление принципами безопасности каталогов в .NET Framework 3.5 и ознакомьтесь со всеми свойствами, появившимися в новом UserPrincipal
классе в .NET 3.5.
Другое место, которое я бы порекомендовал, это веб-сайт Ричарда Мюллера - у него много листов Excel, которые показывают все атрибуты AD / LDAP, где на интерактивных инструментах вы их найдете, и вперед. Очень полезно!
Объедините эти два ресурса, и вы сможете делать все, что вам нужно!
Обновление: если вы не можете обновить до .NET 3.5 (который на самом деле похож на пакет обновления поверх .NET 2 ....), вам придется выполнить следующие шаги:
- импортировать CSV в
List<CSVRecord>
- я бы использовал для этого бесплатную библиотеку FileHelpers ; ваш CSVRecord
будет содержать три поля в вашем CSV-файле
создать класс DirectorySearcher
на основе вашего корня поиска (вашего домена или его подконтейнера); найти правильный фильтр поиска LDAP, чтобы найти вашего пользователя по EmployeeId
зацикливать записи в вашем списке и для каждой записи
- поиск в каталоге для этого пользователя
- если найдено: возьмите
DirectoryEntry
из вашего SearchResult
и обновите два атрибута
- звоните
.CommitChanges()
на этом DirectoryEntry
Я не думаю, что на самом деле есть какой-то другой способ сделать это - нет волшебного способа выбрать всех пользователей одновременно или обновить их всех сразу.
Обновление № 2:
Вот некоторые ресурсы, которые вы можете проверить:
и окончательная книга на эту тему:
Джо Каплан / Райан Данн: Руководство разработчика по .NET для программирования служб каталогов
альтернативный текст http://ecx.images -amazon.com / images / I / 512V652XBSL._SL500_AA300_.jpg