Active Directoryドメインコントローラーの名前を見つける


回答:


147

ADのDNSサーバーを使用するようにDNSが構成されているコンピューターでは、次のことを行います。

  • スタート->実行-> nslookup

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

DOMAIN_NAMEexample.comなどの実際のドメイン名に置き換えます。詳細はこちら


上記の答えで、set type = all(nslookupで)を入力すると、DNS SRVレコードを表示できます。また、SRVレコードがADは、ネットワーク上で自分自身をアドバタイズする方法は、「設定タイプ= SRV」を入力した可能性

これを実行してもらいました_ldap._tcp.dc._msdcs.UnKnown。何をしない未知のはどういう意味ですか?
jp2code

64

ドメインのメンバーであるコンピューターの場合、環境変数LOGONSERVERには、現在のユーザーを認証したDCの名前が含まれます。これは明らかにマルチDC環境ではすべてのDCではありませんが、ドメインコントローラーの名前をすばやく見つける方法がコマンドシェルから必要な場合は、次のようにします。

set l <enter>

DCの名前を含む「L」で始まるすべての環境変数を返します。


5
シンプルにするために+1。DCの名前を取得したら、pingを実行してIPを取得します。
Bigbio2002

2
単純なはい。ただし、関心のあるネットワークへのVPN接続がある場合、LOGONSERVERはそれを提供しません。受け入れられた答えは、私が考えることができるすべての場合に適切なサーバーを提供します。

1
それは完璧ではありませんが、時には十分にすぐれた何かをする方法を知ることも重要です。ローカルログオンでも失敗しますが、VPN経由で確認したことはありません。
ヘルヴィック

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
ドメインの名前をドメイン名に置き換え
アブラクサス

ああ。それは私がこれが私のために見つけると思っていたものです。
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

21

これにより、Powershellで最も近いドメインコントローラーが返されます。

Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName

17

コマンドプロンプトからを実行しgpresultます。あなたが取得します:

  • 一般的なワークステーションおよびドメイン情報
  • コンピューターユーザーの両方について:
    • ADの識別名とポリシーが適用されたDC
    • 適用されたグループポリシーオブジェクト
    • メンバーが属するセキュリティグループのリスト

ここで、実行中の出力例gpresultgpresult /zより詳細な情報を取得するように指定することもできます。


5
うわー、gpresult /Z大量のデータを出力します。ありがとう。
friederbluemle 14

10

DNSおよびDHCPは、ADドメインコントローラーによって管理されているか、ドメインコントローラーとして機能しているネットワーク上にUnix / Linuxマシンが存在する可能性があるため、チェックする最良の方法です。

さらに、Active Directoryを考慮することは、MicrosoftのバージョンのKerberos、LDAP、dhcp、およびdnsにすぎません。レイヤー7+よりも低いレイヤーで物事を理解してデバッグする方が良いでしょう。これは、オペレーティングシステムがこれらの同じ要求を実行し、各プロトコルのアンダーラインRFCが「お気に入りツールをここに挿入」レベルではなく、OSIレベルで実際に動作するためです。

さらに一歩進んで、オプション6、15、および44のdhcpを照会して、ドメイン名ドメインネームサーバー、および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)はkerberos用です
  • _ldap._tcpldap用(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検索パス文字列を使用するのを防ぎます。)

AD関連の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.