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?
Trên mọi máy tính, 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 tại đây .
Đối với máy tính là thành viên của 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ả 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ừ lệnh Shell:
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 lệnh này từ lệnh Nhắc:
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
Thử nltest /?
trong Lời nhắc của bạn để có thêm tùy chọn! :)
Đ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 lệnh Nhắc, chạy gpresult
. Bạn sẽ nhận được:
Đây là ví dụ đầu ra của việc chạy gpresult
. Bạn cũng có thể chỉ định gpresult /z
để có được thông tin chi tiết hơ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 Active Directory 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ể tiến thêm một bước và truy vấn dhcp cho các tùy chọn 6, 15 và 44 để lấy tên miền , máy chủ tên miền 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 thuộc UNIX/Linux/OSX + một số mạng windows có _kadmin._tcp
) dành cho kerberos_ldap._tcp
dành cho ldap (openldap, opendc, thư mục Sun/Oracle, quảng cáo ms) _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 thành GetDcNames.cmd
:
nslookup -type=any %userdnsdomain%.
Chạy như: GetDcNames.cmd
.
(Lưu ý: Dấu chấm trong "% 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 thành 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 đầu ra văn bản.