Bagaimana cara mengetahui komputer mana yang merupakan pengontrol domain di Windows secara terprogram?


102

Saya mencari cara untuk menentukan Nama / Alamat IP pengontrol domain untuk domain tertentu yang terhubung ke komputer klien.

Di perusahaan kami, kami memiliki banyak jaringan kecil kecil yang kami gunakan untuk pengujian dan kebanyakan dari mereka memiliki domain kecil mereka sendiri. Sebagai contoh, salah satu domain bernama "TESTLAB". Saya memiliki workstation Windows XP yang merupakan anggota dari domain TESTLAB dan saya mencoba untuk mengetahui nama pengontrol domain sehingga saya dapat pergi dan melihat untuk melihat pengguna apa yang telah ditetapkan untuk domain tersebut. Di lab kami ada campuran Windows Server 2000 dan Windows Server 2003 (dan pada kenyataannya mungkin beberapa Server NT 4) jadi alangkah baiknya menemukan solusi yang akan bekerja untuk keduanya.

Mencari di Internet, sepertinya ada berbagai utilitas, seperti Windows Power Shell atau nltest, tetapi ini semua mengharuskan Anda mengunduh dan menginstal utilitas lain. Saya berharap menemukan cara untuk menemukan pengontrol domain tanpa harus menginstal tambahan apa pun.

EDIT Jika saya ingin menulis program untuk menemukan pengontrol domain atau pengguna di domain saat ini, bagaimana cara saya melakukannya?


Karena saya menghabiskan sedikit waktu untuk menulis solusi untuk ini, saya pikir saya akan membuatnya menjadi pertanyaan pemrograman dan membuka kembali.
tvanfosson

Jawaban:


253

Dengan bahasa pemrograman paling sederhana: batch DOS

echo %LOGONSERVER%

Mungkin bukan yang dipikirkan Dorky saat itu, tapi tetap saja, mungkin yang dicari oleh sebagian besar pembaca utas. eh ... ITU yang Dorky cari. Hah!
andersoyvind

3
Ini tidak akan berfungsi jika Anda mencari DC di Domain lain yang tidak dimiliki mesin tersebut.
Brett Veenstra

@DorkyEngineer, bagaimana kalau menandai ini sebagai jawaban pilihan Anda?
ErikE

20

Di cmd di Windows, ketik perintah berikut:

nltest /dclist:{domainname}

Ini mencantumkan semua pengontrol domain di domain tertentu


3
dan nltest /dclist:mencantumkan semua pengontrol di domain mana pun yang terhubung dengan laptop saya (Windows 7)
GMasucci

12

Di C # /. NET 3.5 Anda dapat menulis program kecil untuk dilakukan:

using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
    string controller = context.ConnectedServer;
    Console.WriteLine( "Domain Controller:" + controller );
} 

Ini akan mencantumkan semua pengguna di domain saat ini:

using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
    using (UserPrincipal searchPrincipal = new UserPrincipal(context))
    {
       using (PrincipalSearcher searcher = new PrincipalSearcher(searchPrincipal))
       {
           foreach (UserPrincipal principal in searcher.FindAll())
           {
               Console.WriteLine( principal.SamAccountName);
           }
       }
    }
}

7

Dari kueri baris perintah, variabel env logonserver.

C:> SET L

LOGONSERVER = '\' \ DCNAME


6

Jalankan gpresultpada prompt perintah Windows. Anda akan mendapatkan banyak informasi tentang domain saat ini, pengguna saat ini, grup keamanan pengguna & komputer, nama kebijakan grup, Nama yang Dibedakan Direktori Aktif, dan sebagainya.


Saya harus menggunakan argumen "/ R" untuk mendapatkan laporan.
Josiah

Kamu harus mencoba gpresult /Z!!
ErikE

Apa keuntungan dari / Z? Untuk tujuan menentukan DC yang digunakan, mereka tampaknya sebanding.
Yosia

1
Orang mungkin ingin diarahkan ke opsi karena banyaknya informasi yang tersedia. Tapi Anda benar, untuk HANYA DC yang digunakan, opsi lain lebih ringkas.
ErikE


0

Untuk mengambil informasi ketika DomainControllerada di Domain di mana mesin Anda bukan miliknya, Anda memerlukan sesuatu yang lebih.

  DirectoryContext domainContext =  new DirectoryContext(DirectoryContextType.Domain, "targetDomainName", "validUserInDomain", "validUserPassword");

  var domain = System.DirectoryServices.ActiveDirectory.Domain.GetDomain(domainContext);
  var controller = domain.FindDomainController();
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.