Запрос Active Directory в задаче «Скрипт»
Корпоративные приложения обработки данных, такие как пакеты служб Integration Services, часто требуют обработки данных по-разному в зависимости от ранга, названия задания или других характеристик сотрудников, хранящихся в Active Directory. Active Directory — это служба каталогов Microsoft Windows, которая предоставляет централизованное хранилище метаданных, а не только о пользователях, но и о других ресурсах организации, таких как компьютеры и принтеры. Пространство имен System.DirectoryServices
платформы Microsoft .NET Framework предоставляет классы для работы со службой каталогов Active Directory, с помощью которых можно управлять рабочим процессом по обработке данных в зависимости от типа данных.
Примечание.
Если нужно создать задачу, которую будет удобно использовать в нескольких пакетах, рекомендуется начать разработку пользовательской задачи с этого образца задачи «Скрипт». Дополнительные сведения см. в разделе Разработка пользовательской задачи.
Description
В следующем примере имя сотрудника, название его должности и номер телефона извлекаются из службы каталогов Active Directory в соответствии со значением переменной email
, которая содержит адрес электронной почты сотрудника. Элементы управления очередностью в пакете могут использовать извлеченные данные, чтобы определить, например, с каким приоритетом – низким или высоким – следует отправить сообщение электронной почты, в зависимости от должности сотрудника.
Настройка этого образца задачи «Скрипт»
Создайте три строковые переменные:
email
,name
иtitle
. Введите действительный корпоративный адрес электронной почты в качестве значения переменнойemail
.На странице "Скрипт" редактора задач скрипта добавьте
email
переменную вReadOnlyVariables
свойство.Добавьте переменные
name
иtitle
в свойствоReadWriteVariables
.В проекте скрипта добавьте ссылку на пространство имен
System.DirectoryServices
.. Используйте инструкцию
Imports
, чтобы импортировать пространство именDirectoryServices
.
Примечание.
Для успешного выполнения этого скрипта необходимо, чтобы в сети организации использовалась служба каталогов Active Directory и в ней хранились сведения, используемые в этом примере.
Код
Public Sub Main()
Dim directory As DirectoryServices.DirectorySearcher
Dim result As DirectoryServices.SearchResult
Dim email As String
email = Dts.Variables("email").Value.ToString
Try
directory = New _
DirectoryServices.DirectorySearcher("(mail=" & email & ")")
result = directory.FindOne
Dts.Variables("name").Value = _
result.Properties("displayname").ToString
Dts.Variables("title").Value = _
result.Properties("title").ToString
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
Dts.Events.FireError(0, _
"Script Task Example", _
ex.Message & ControlChars.CrLf & ex.StackTrace, _
String.Empty, 0)
Dts.TaskResult = ScriptResults.Failure
End Try
End Sub
public void Main()
{
//
DirectorySearcher directory;
SearchResult result;
string email;
email = (string)Dts.Variables["email"].Value;
try
{
directory = new DirectorySearcher("(mail=" + email + ")");
result = directory.FindOne();
Dts.Variables["name"].Value = result.Properties["displayname"].ToString();
Dts.Variables["title"].Value = result.Properties["title"].ToString();
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(0, "Script Task Example", ex.Message + "\n" + ex.StackTrace, String.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
Внешние ресурсы
- Техническая статья Обработка данных Active Directory в службах SSIS на сайте social.technet.microsoft.com
Оставайтесь в курсе в службах Integration Services
Последние загрузки, статьи, примеры и видео из Корпорации Майкрософт, а также выбранные решения из сообщества, посетите страницу служб Integration Services на сайте MSDN:
Посетить страницу «Службы Integration Services» на сайте MSDN
Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.