Cara Mendapatkan Daftar Domain di Jaringan Anda Menggunakan API Windows

Jika Anda seorang administrator jaringan atau pengembang yang bekerja dengan Active Directory, Anda mungkin sering perlu mengambil daftar domain yang ada di jaringan Anda. Baik untuk tujuan pemantauan, pengelolaan sumber daya, atau memastikan protokol keamanan yang tepat, akses ke informasi domain sangat penting. Dalam pos blog ini, kami akan menjelaskan cara menyelesaikan tugas ini menggunakan API Windows dengan kueri LDAP.

Memahami Masalah

Untuk mendapatkan daftar semua domain di jaringan Anda, Anda biasanya akan berinteraksi dengan Active Directory. Tantangannya terletak pada penggunaan protokol dan kueri yang tepat untuk mengekstrak informasi ini secara efektif. Untungnya, tugas ini dapat diselesaikan dengan sedikit skrip!

Solusinya

Menggunakan VBScript dengan Kueri LDAP

Salah satu cara paling efisien untuk mendapatkan informasi domain adalah dengan menggunakan VBScript yang dipadukan dengan kueri LDAP (Lightweight Directory Access Protocol). Di bawah ini, kami akan memandu Anda melalui skrip contoh yang dapat dijalankan di mesin mana pun yang terhubung ke jaringan tempat Active Directory digunakan.

Contoh Kode VBScript

Berikut adalah skrip yang dapat Anda gunakan untuk mengambil daftar domain:

' Kode VBScript ini mendapatkan daftar domain yang terkandung dalam 
' hutan yang ada saat pengguna yang menjalankan skrip sedang masuk

' ---------------------------------------------------------------
' Dari buku "Active Directory Cookbook" oleh Robbie Allen
' Penerbit: O'Reilly and Associates
' ISBN: 0-596-00466-4
' Situs web buku: http://rallenhome.com/books/adcookbook/code.html
' ---------------------------------------------------------------

set objRootDSE = GetObject("LDAP://RootDSE")
strADsPath =  "<GC://" & objRootDSE.Get("rootDomainNamingContext") & ">;;"
strFilter  = "(objectcategory=domainDNS);"
strAttrs   = "name;"
strScope   = "SubTree"

set objConn = CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
set objRS = objConn.Execute(strADsPath & strFilter & strAttrs & strScope)
objRS.MoveFirst
while Not objRS.EOF
    Wscript.Echo objRS.Fields(0).Value
    objRS.MoveNext
wend

Penjelasan Skrip

  1. Inisialisasi Koneksi LDAP:

    • Skrip dimulai dengan mendapatkan referensi ke akar direktori.
    • GetObject("LDAP://RootDSE") mengambil akar dari direktori.
  2. Setel Jalur dan Filter Kueri:

    • strADsPath: Ini menetapkan jalur untuk konteks penamaan domain.
    • strFilter: Menentukan jenis objek yang akan dicari; dalam hal ini, hanya domain.
  3. Membangun Koneksi:

    • Koneksi ke Active Directory dibangun menggunakan ADODB.Connection.
  4. Eksekusi Kueri:

    • Kueri Active Directory dieksekusi, dan hasilnya disimpan dalam objek recordset.
  5. Tampilkan Hasil:

    • Skrip mengiterasi melalui recordset, menampilkan setiap nama domain hingga semua entri ditampilkan.

Sumber Daya Tambahan

Untuk mereka yang lebih suka bekerja dalam lingkungan C#, versi C# ini juga tersedia. Alternatif ini dapat memberikan hasil yang serupa dengan pertimbangan implementasi yang mungkin berbeda.

Kesimpulan

Mengambil daftar domain di jaringan Anda adalah proses yang sederhana saat memanfaatkan API Windows bersama dengan kueri LDAP. Dengan menggunakan kode VBScript yang disediakan, Anda dapat dengan cepat dan efektif mengumpulkan data yang diperlukan, meningkatkan kemampuan Anda untuk mengelola sumber daya Active Directory. Jika Anda mencari kinerja atau fitur tambahan, pertimbangkan untuk menjelajahi alternatif C# untuk solusi yang lebih kuat.

Sekarang Anda dilengkapi dengan alat untuk mengelola domain jaringan Anda secara efisien. Cobalah menerapkan kode di atas, dan Anda akan melihat betapa kuatnya skrip dalam manajemen jaringan!