Làm cách nào tôi có thể tìm ra tên / địa chỉ IP của bộ điều khiển miền AD trên mạng của mình?
Làm cách nào tôi có thể tìm ra tên / địa chỉ IP của bộ điều khiển miền AD trên mạng của mình?
Câu trả lời:
Trên bất kỳ máy tính nào có DNS được cấu hình để sử dụng máy chủ DNS của AD sẽ:
Bắt đầu -> Chạy -> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
Thay thế DOMAIN_NAME bằng tên miền thực tế, ví dụ example.com . Đọc thêm ở đây .
_ldap._tcp.dc._msdcs.UnKnown
. Không gì chưa biết nghĩa là gì?
Đối với một máy tính là thành viên của một miền, Biến môi trường LOGONSERVER chứa tên của DC đã xác thực người dùng hiện tại. Đây rõ ràng sẽ không phải là tất cả các DC trong môi trường nhiều DC nhưng nếu tất cả những gì bạn muốn là một cách nhanh chóng để tìm tên của Bộ điều khiển miền thì từ vỏ lệnh:
set l <enter>
Sẽ trả về tất cả các biến Môi trường bắt đầu bằng "L" bao gồm tên của một DC.
Một tùy chọn chưa được đề cập, siêu dễ dàng và nhanh chóng là chạy nó từ một dấu nhắc lệnh:
nltest /dclist:domainname
Chỉ cần thay thế 'tên miền' bằng tên miền của bạn
Bạn cũng có thể chạy một số tùy chọn khác để tìm hiểu thêm:
/dcname:domainname
lấy tên PDC cho tên miền
/dsgetdc:domainname
có cờ cho thông tin khác
Hãy thử nltest /?
trong lời nhắc của bạn để có thêm tùy chọn! :)
C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully
Điều đó nghĩa là gì?
Điều này sẽ trả về Bộ điều khiển miền gần nhất của bạn trong Powershell:
Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
Từ một dấu nhắc lệnh, chạy gpresult
. Bạn sẽ nhận được:
Dưới đây là ví dụ đầu ra của việc chạygpresult
. Bạn cũng có thể chỉ định gpresult /z
để có được thông tin chi tiết hơn.
gpresult /Z
xuất ra rất nhiều dữ liệu. Cảm ơn.
DNS và DHCP là cách tốt nhất để kiểm tra vì có thể có các máy Unix / Linux trên mạng được quản lý bởi bộ điều khiển miền AD hoặc đóng vai trò là bộ điều khiển miền.
Thêm vào đó, xem xét thư mục hoạt động không gì khác hơn là phiên bản Kerberos, LDAP, dhcp và dns của Microsoft. Sẽ tốt hơn để hiểu và gỡ lỗi mọi thứ ở các lớp thấp hơn lớp 7+. Điều này là do hệ điều hành sẽ tạo ra các yêu cầu tương tự và RFC gạch chân cho mỗi giao thức thực sự hoạt động ở cấp độ OSI chứ không phải ở cấp độ "chèn công cụ yêu thích ở đây".
Người ta có thể đi một bước xa hơn và truy vấn DHCP cho các tùy chọn 6, 15, và 44 để có được tên miền , tên miền máy chủ , và Thắng / NetBIOS tên máy chủ .
Sau đó, sử dụng dns để kiểm tra các bản ghi SRV _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs và _ldap._tcp:
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
Điều này được chia thành ba khu vực, hai là các bản ghi DNS-SD được hỗ trợ giao thức:
_kerberos._tcp
và _kpasswd._tcp
(cũng theo UNIX / Linux / OSX + một số mạng windows có _kadmin._tcp
) dành cho kerberos_ldap._tcp
dành cho ldap (thư mục openldap, opendc, sun / oracle, ms ad)
_LDAP._TCP.dc._msdcs
là phần mở rộng duy nhất của Microsoft cho ldap để ánh xạ bộ điều khiển miền.Lưu dưới dạng GetDcNames.cmd
:
nslookup -type=any %userdnsdomain%.
Chạy như : GetDcNames.cmd
.
(Lưu ý: Dấu chấm ở "% userdnsdomain%." Có chủ đích. Nó ngăn nslookup cục bộ của bạn sử dụng bất kỳ chuỗi đường dẫn tìm kiếm DNS nào.)
Tôi đã đánh cắp một tệp bó nhanh và bẩn, để tôi không phải nhớ tên miền DNS và / hoặc phải nhập tất cả chúng. (Danh sách có thể không đầy đủ.)
Hoạt động từ máy gia nhập miền. Nếu máy của bạn không được gia nhập miền, thì bạn phải đặt thủ công USERDNSDOMAIN theo cách bạn muốn.
Lưu dưới dạng 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%.
Chạy như TestAdDnsRecords.cmd | more
. Có rất nhiều văn bản đầu ra.