Querying the Active Directory with the Script Task
Przetwarzanie aplikacje, takie jak dane organizacji Integration Services pakiety, często trzeba przetwarzać dane w różny sposób zależności ranga, zadanie tytuł lub inne cechy pracowników, przechowywane w usłudze Active Directory. Usługa Active Directory jest Microsoft Usługi katalogowej systemu Windows, która zapewnia scentralizowane magazynie metadane, nie tylko informacji o użytkownikach, ale o innych zasobów organizacji, takich jak komputery i drukarki. The System.DirectoryServices namespace in the Microsoft .NET Framework provides classes for working with Active Directory, to help you direct data processing workflow based on the information that it stores.
Uwaga
Jeśli chcesz utworzyć zadanie, które łatwo można używać w wielu pakietów, należy rozważyć przy użyciu kodu w tym przykładzie skrypt zadanie jako punkt początkowy dla niestandardowego zadania.Aby uzyskać więcej informacji zobaczOpracowywania niestandardowego zadania.
Description
Poniższy przykład pobiera nazwę danego pracownika, tytuł i numer telefonu z usługi Active Directory w oparciu o wartość email Zmienna, która zawiera adres e-mail pracownika. Pierwszeństwo ograniczeń w pakiecie służy do ustalania pobrane informacje, na przykład, czy wysyłać niskim priorytecie pocztą e-mail wiadomość lub strona wysokim priorytecie, oparte na stanowisko pracownika.
Aby skonfigurować ten przykład zadania skryptu
Tworzenie zmiennych trzy ciąg email, name, a title. Wprowadź adres e-mail firmy jako wartość email Zmienna.
Na Skrypt stronaEdytor zadań skryptu, add the email zmienne do ReadOnlyVariables Właściwość.
Dodawanie name i title zmienne, które mają zostać ReadWriteVariables Właściwość.
W projekcie skryptu Dodaj odwołanie do System.DirectoryServices obszar nazw.
.In your code, use an Imports statement to import the DirectoryServices namespace.
Uwaga
Aby pomyślnie uruchomić ten skrypt, firma musi być w jego sieci za pomocą usługi Active Directory i przechowywania informacji o pracownikach, które w tym przykładzie.
Code
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;
}
}
|