ค้นหาชื่อของตัวควบคุมโดเมน Active Directory


127

ฉันจะหาชื่อ / ที่อยู่ IP ของตัวควบคุมโดเมนโฆษณาบนเครือข่ายของฉันได้อย่างไร


DNS ควรอยู่ตรงนั้นเพื่อจุดประสงค์นี้ support.microsoft.com/kb/816587/en-us petri.co.il/active_directory_srv_records.htm
Massimo

คำตอบสั้น ๆ และหวานใจมากจากกระทู้ที่เกี่ยวข้องใน SO
RBT

คำตอบ:


147

บนคอมพิวเตอร์ทุกเครื่องที่มี DNS ที่กำหนดค่าให้ใช้เซิร์ฟเวอร์ DNS ของ AD:

  • เริ่ม -> Run -> nslookup

    set type=all
    _ldap._tcp.dc._msdcs.DOMAIN_NAME
    

แทนที่DOMAIN_NAMEกับชื่อโดเมนจริงเช่นexample.com อ่านเพิ่มเติมที่นี่


ในคำตอบข้างต้นการป้อน set type = all (ใน nslookup) ช่วยให้คุณเห็นระเบียน DNS SRV นอกจากนี้คุณยังสามารถพิมพ์ "set type = SRV" ระเบียน SRV เป็นวิธีโฆษณาโฆษณาตัวเองในเครือข่าย
Les

_ldap._tcp.dc._msdcs.UnKnownฉันวิ่งนี้และมี อะไรที่ไม่รู้จักความหมายว่าอย่างไร
jp2code

64

สำหรับคอมพิวเตอร์ที่เป็นสมาชิกของโดเมนนั้นตัวแปรสภาพแวดล้อม LOGONSERVER ประกอบด้วยชื่อของ DC ที่รับรองความถูกต้องของผู้ใช้ปัจจุบัน เห็นได้ชัดว่านี่จะไม่เป็น DC ทั้งหมดในสภาพแวดล้อมแบบ multi-DC แต่ถ้าคุณต้องการเป็นวิธีที่รวดเร็วในการค้นหาชื่อของ Domain Controller จากนั้นจาก command shell:

set l <enter>

จะส่งกลับตัวแปรสภาพแวดล้อมทั้งหมดที่ขึ้นต้นด้วย "L" รวมถึงชื่อของ DC


5
+1 เพื่อความง่าย หลังจากได้รับชื่อของ DC เพียง ping เพื่อรับ IP
Bigbio2002

2
ง่ายใช่ แต่ถ้าคุณมีการเชื่อมต่อ VPN ไปยังเครือข่ายที่คุณสนใจ LOGONSERVER จะไม่ให้สิ่งนั้นกับคุณ คำตอบที่ได้รับการยอมรับจะให้เซิร์ฟเวอร์ที่ถูกต้องกับคุณในทุกกรณีที่ฉันนึกถึง
Les

1
มันไม่สมบูรณ์แบบ แต่บางครั้งก็สำคัญที่จะต้องรู้วิธีการทำสิ่งที่ดีพออย่างรวดเร็ว นอกจากนี้ยังล้มเหลวในการเข้าสู่ระบบในท้องถิ่น แต่ฉันไม่เคยตรวจสอบผ่าน VPN ขอบคุณที่รู้
Helvick

35

ตัวเลือกที่ไม่ได้กล่าวถึงง่ายสุดและรวดเร็วคือการเรียกใช้จากพรอมต์คำสั่ง:

nltest /dclist:domainname

เพียงแทนที่ 'domainname' ด้วยโดเมนของคุณ

คุณยังสามารถเรียกใช้ตัวเลือกอื่น ๆ เพื่อค้นหาเพิ่มเติม:

/dcname:domainnameรับชื่อ PDC สำหรับโดเมนที่ /dsgetdc:domainnameมีธงสำหรับข้อมูลอื่น ๆ

ลองใช้nltest /?พรอมต์เพื่อรับตัวเลือกเพิ่มเติม! :)


C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully นั่นหมายความว่าอย่างไร?
jp2code

1
แทนที่ชื่อโดเมนด้วยชื่อโดเมนของคุณ
Abraxas

โอ้ นั่นคือสิ่งที่ฉันคิดว่านี่จะตามหาฉัน
jp2code

สิ่งนี้มีประโยชน์มากสำหรับฉันเพราะ [Bash # host -t srv _ldap._tcp.MYCOMPANY] กล่าวว่าไม่พบโดเมน [CMD: \> nltest / dclist: MYCOMPANY] บอกฉันว่าชื่อโดเมนคือ corp.ad.mycompany.com แล้วฉันก็สามารถใช้ข้อมูลนั้นเพื่อให้คำสั่งอื่นทำงานได้ [Bash # host -t srv _ldap._tcp.corp.ad.mycompany.com] ได้ผลแล้ว
neokyle


17

gpresultจากคำสั่งเรียก คุณจะได้รับ:

  • ข้อมูลเวิร์กสเตชันและโดเมนทั่วไป
  • สำหรับทั้งคอมพิวเตอร์และผู้ใช้ :
    • ชื่อที่แตกต่างในโฆษณาและนโยบายใดที่นำมาใช้
    • วัตถุนโยบายกลุ่มที่ใช้
    • รายชื่อกลุ่มความปลอดภัยที่เป็นสมาชิกของ

นี่คือการส่งออกตัวอย่างของการทำงาน gpresultนอกจากนี้คุณยังสามารถระบุgpresult /zเพื่อรับข้อมูลรายละเอียดเพิ่มเติม


5
ว้าวgpresult /Zส่งออกข้อมูลจำนวนมาก ขอบคุณ
friederbluemle

10

DNS และ DHCP เป็นวิธีที่ดีที่สุดในการตรวจสอบเนื่องจากอาจมีเครื่อง Unix / Linux บนเครือข่ายที่จัดการโดยตัวควบคุมโดเมน AD หรือทำหน้าที่เป็นตัวควบคุมโดเมน

นอกจากนี้เมื่อพิจารณาถึงไดเรกทอรีที่ใช้งานอยู่จะไม่มีอะไรมากไปกว่า Kerberos, LDAP, dhcp และ dns ของ Microsoft มันจะเป็นการดีกว่าที่จะเข้าใจและแก้ไขข้อบกพร่องในเลเยอร์ที่ต่ำกว่าเลเยอร์ 7+ นี่เป็นเพราะระบบปฏิบัติการจะ preform คำขอเดียวกันเหล่านี้และ RFC ที่ขีดเส้นใต้สำหรับแต่ละโปรโตคอลทำงานจริงในระดับ OSI ไม่ใช่ระดับ "เครื่องมือแทรกรายการโปรดที่นี่"

หนึ่งสามารถไปอีกขั้นและสอบถาม DHCP สำหรับตัวเลือก 6, 15, และ 44 ที่จะได้รับชื่อโดเมน , เซิร์ฟเวอร์ชื่อโดเมนและชนะ / NetBIOS ชื่อเซิร์ฟเวอร์

จากนั้นใช้ dns เพื่อตรวจสอบ _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs และ _ldap._tcp ระเบียน SRV:

nslookup -type=srv _kerberos._tcp.EXMAPLE.COM
nslookup -type=srv _kpasswd._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.dc._msdcs.EXAMPLE.COM

.EXAMPLE.COM ::= value returned from dhcp option-1

สิ่งนี้แบ่งออกเป็นสามส่วนส่วนที่สองคือโปรโตคอล DNS-SD ที่รองรับบันทึก:

  • _kerberos._tcpและ_kpasswd._tcp(ภายใต้ UNIX / Linux / OSX + บางเครือข่าย windows มี_kadmin._tcp) สำหรับ kerberos
  • _ldap._tcpใช้สำหรับ ldap (ไดเร็กทอรี openldap, opendc, sun / oracle, ms ad) _LDAP._TCP.dc._msdcsเป็นส่วนขยายของ Microsoft เท่านั้นที่เป็น ldap เพื่อแมปตัวควบคุมโดเมน

2

น้ำมันดิบ CMD

เพียงค้นหาชื่อ DC

บันทึกเป็นGetDcNames.cmd:

nslookup -type=any %userdnsdomain%.

เรียกใช้เป็น: GetDcNames.cmd.

(หมายเหตุ: จุดต่อท้ายใน "% userdnsdomain%." มีจุดประสงค์มันหยุด nslookup ในพื้นที่ของคุณจากการใช้สตริงเส้นทางการค้นหา DNS ใด ๆ )

ค้นหาโดเมน DNS ที่เกี่ยวข้องกับโฆษณาเพิ่มเติม

ฉันตีไฟล์แบตช์ที่รวดเร็วและสกปรกเพื่อที่ฉันจะได้ไม่ต้องจำชื่อโดเมน DNS และ / หรือต้องพิมพ์ให้หมด (รายการอาจไม่สมบูรณ์)

ทำงานได้จากเครื่องจักรที่เข้าร่วมโดเมน หากเครื่องของคุณไม่ได้เข้าร่วมกับโดเมนคุณต้องตั้งค่า USERDNSDOMAIN ด้วยตนเองเป็นสิ่งที่คุณต้องการ

บันทึกเป็นTestAdDnsRecords.cmd:

@setlocal
@REM Test AD DNS domains for presence.
@REM For details see: http://serverfault.com/a/811622/253701

nslookup -type=srv _kerberos._tcp.%userdnsdomain%.
nslookup -type=srv _kerberos._udp.%userdnsdomain%.
@echo .

nslookup -type=srv _kpasswd._tcp.%userdnsdomain%.
nslookup -type=srv _kpasswd._udp.%userdnsdomain%.
@echo .

nslookup -type=srv _ldap._tcp.%userdnsdomain%.
@echo .

nslookup -type=srv _ldap._tcp.dc._msdcs.%userdnsdomain%.
@echo .

nslookup -type=srv _ldap._tcp.pdc._msdcs.%userdnsdomain%.
@echo .

@REM Those next few lines here are forest specific:
@REM Change the next line your current domain is not also the forest root.
@SET "DNSFORESTNAME=%USERDNSDOMAIN%"

nslookup -type=srv _ldap._tcp.gc._msdcs.%DNSFORESTNAME%.
@echo .

nslookup -type=srv _gc._tcp.%DNSFORESTNAME%.

TestAdDnsRecords.cmd | moreทำงานเป็น มีเอาต์พุตข้อความจำนวนมาก

แหล่งที่มา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.