ネットワーク上のADドメインコントローラーの名前/ IPアドレスを確認するにはどうすればよいですか?
ADのDNSサーバーを使用するようにDNSが構成されている任意のコンピューターで、次の操作を行います。
スタート->実行-> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
DOMAIN_NAMEを実際のドメイン名に置き換えます。 example.com。続きを読む こちら 。
ドメインのメンバーであるコンピューターの場合、環境変数LOGONSERVERには、現在のユーザーを認証したDCの名前が含まれます。これは明らかにマルチDC環境ではすべてのDCになるわけではありません。しかし、ドメインコントローラーの名前をすばやく見つける方法が必要な場合は、コマンドシェルから次のように入力します。
set l <enter>
DCの名前を含め、「L」で始まるすべての環境変数を返します。
言及されていない、非常に簡単で迅速なオプションは、コマンドプロンプトからこれを実行することです。
nltest /dclist:domainname
「domainname」をあなたのドメインに置き換えてください
その他のオプションを実行して詳細を確認することもできます。
/dcname:domainname
はPDCドメインの名前を取得します/dsgetdc:domainname
は他の情報のフラグを持っています
より多くのオプションを取得するには、プロンプトでnltest /?
を試してください! :)
これにより、Powershellで最も近いドメインコントローラーが返されます。
Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
コマンドプロンプトからgpresult
を実行します。あなたは得るでしょう:
こちらが gpresult
の実行結果の出力例 です。 gpresult /z
を指定して、より詳細な情報を取得することもできます。
ADドメインコントローラーによって管理されている、またはドメインコントローラーとして機能しているネットワーク上にUnix/Linuxマシンが存在する可能性があるため、DNSとDHCPがチェックする最良の方法です。
さらに、Active Directoryを検討することは、MicrosoftのバージョンのKerberos、LDAP、dhcp、dnsにすぎません。レイヤー7+よりも低いレイヤーで物事を理解してデバッグする方が良いでしょう。これは、オペレーティングシステムがこれらの同じ要求を実行し、各プロトコルの基になるRFCが実際に「ここにお気に入りのツールを挿入する」レベルではなくOSIレベルで動作するためです。
さらに進んで、dhcpにオプション6、15、および44を照会して、 ドメイン名 、 ドメイン名サーバー 、および Wins/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
これは3つの領域に分類されます。2つはプロトコルでサポートされているDNS-SDレコードです。
_kerberos._tcp
および_kpasswd._tcp
(UNIX/Linux/OSX +一部のWindowsネットワークでも_kadmin._tcp
)はケルベロス用です_ldap._tcp
はldap用です(openldap、opendc、Sun/Oracleディレクトリ、ms ad)_LDAP._TCP.dc._msdcs
は、ドメインコントローラをマップするためのMicrosoftのldapに対する唯一の拡張機能です。GetDcNames.cmd
として保存:
nslookup -type=any %userdnsdomain%.
GetDcNames.cmd
として実行します。
(注:「%userdnsdomain%。」の末尾のドットは意図的なものです。ローカルのnslookupが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
として実行します。多くのテキスト出力があります。