Mengkueri Active Directory dengan Tugas Skrip

Berlaku untuk:SQL Server SSIS Integration Runtime di Azure Data Factory

Aplikasi pemrosesan data perusahaan, seperti paket Layanan Integrasi, sering kali perlu memproses data secara berbeda berdasarkan peringkat, jabatan pekerjaan, atau karakteristik lain karyawan yang disimpan di Direktori Aktif. Direktori Aktif adalah layanan direktori Microsoft Windows yang menyediakan penyimpanan metadata terpusat, tidak hanya tentang pengguna, tetapi juga tentang aset organisasi lainnya seperti komputer dan printer. Namespace layanan System.DirectoryServices di Microsoft .NET Framework menyediakan kelas untuk bekerja dengan Direktori Aktif, untuk membantu Anda mengarahkan alur kerja pemrosesan data berdasarkan informasi yang disimpannya.

Catatan

Jika Anda ingin membuat tugas yang dapat digunakan kembali dengan lebih mudah di beberapa paket, pertimbangkan untuk menggunakan kode dalam sampel tugas Skrip ini sebagai titik awal untuk tugas kustom. Untuk informasi selengkapnya, lihat Mengembangkan Tugas Kustom.

Deskripsi

Contoh berikut mengambil nama, judul, dan nomor telepon karyawan dari Direktori Aktif berdasarkan nilai email variabel, yang berisi alamat email karyawan. Batasan prioritas dalam paket dapat menggunakan informasi yang diambil untuk menentukan, misalnya, apakah akan mengirim pesan email berprioritas rendah atau halaman prioritas tinggi, berdasarkan jabatan pekerjaan karyawan.

Untuk mengonfigurasi contoh Tugas Skrip ini

  1. Buat tiga variabel emailstring , , namedan title. Masukkan alamat email perusahaan yang valid sebagai nilai email variabel.

  2. Pada halaman Skrip Editor Tugas Skrip, tambahkan email variabel ke properti ReadOnlyVariables.

  3. name Tambahkan variabel dan title ke properti ReadWriteVariables.

  4. Dalam proyek skrip, tambahkan referensi ke namespace System.DirectoryServices .

  5. . Dalam kode Anda, gunakan pernyataan Impor untuk mengimpor namespace layanan DirectoryServices .

Catatan

Agar skrip ini berhasil dijalankan, perusahaan Anda harus menggunakan Direktori Aktif di jaringannya dan menyimpan informasi karyawan yang digunakan contoh ini.

Kode

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;  
    }  
  
}  

Sumber Daya Eksternal