回答:
ADのDNSサーバーを使用するようにDNSが構成されているコンピューターでは、次のことを行います。
スタート->実行-> nslookup
set type=all
_ldap._tcp.dc._msdcs.DOMAIN_NAME
DOMAIN_NAMEをexample.comなどの実際のドメイン名に置き換えます。詳細はこちら。
_ldap._tcp.dc._msdcs.UnKnown
。何をしない未知のはどういう意味ですか?
ドメインのメンバーであるコンピューターの場合、環境変数LOGONSERVERには、現在のユーザーを認証したDCの名前が含まれます。これは明らかにマルチDC環境ではすべてのDCではありませんが、ドメインコントローラーの名前をすばやく見つける方法がコマンドシェルから必要な場合は、次のようにします。
set l <enter>
DCの名前を含む「L」で始まるすべての環境変数を返します。
言及されていない、非常に簡単で迅速なオプションは、コマンドプロンプトからこれを実行することです。
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
どういう意味ですか?
これにより、Powershellで最も近いドメインコントローラーが返されます。
Import-Module ActiveDirectory
(Get-ADDomainController -DomainName <Domain FQDN> -Discover -NextClosestSite).HostName
コマンドプロンプトからを実行しgpresult
ます。あなたが取得します:
ここで、実行中の出力例gpresult
。gpresult /z
より詳細な情報を取得するように指定することもできます。
gpresult /Z
大量のデータを出力します。ありがとう。
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._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
ます。多くのテキスト出力があります。