Я новичок в LDAP. Я пытаюсь перечислить все доменные имена NT. Под доменными именами NT я имею в виду имена доменов, которые вы найдете в сети LAN. Вы можете наблюдать это на компьютерах с Windows XP, когда вы пытаетесь войти в систему на этом компьютере (то есть диалог входа в систему, который вы получаете после нажатия ctrl + alt + del). Обычно мы выбираем имя домена в последнем раскрывающемся списке после ввода учетных данных.
Я посмотрел на этот пост и не смог ничего с этим поделать. Я не знаю, что такое rootDSE
. Код, приведенный в посте, делает это с rootdse. Тем не менее, у меня есть конкретный сервер для поиска и запроса, и я думаю, что это контроллер домена. (Я могу ошибаться в этом). Мы пишем что-то вроде
LDAP://<domain_name>/dc=<domain>,dc=org
Как указано в посте, я попытался найти свойство с именем rootDomainNamingContext
. Но я не мог найти это. Тогда я попробовал следующий код:
Sub Main()
Dim oRoot As DirectoryEntry = Nothing
'Dim oSearcher As DirectorySearcher
'Dim oResults As SearchResultCollection
Try
oRoot = New DirectoryEntry("LDAP://<domain_name>/dc=<domain>,dc=org")
For Each obj As String In oRoot.Properties.PropertyNames
Console.Write(obj + ", ")
Next
Catch ex As Exception
Console.Write(ex.Message)
Finally
oRoot.Dispose()
End Try
Console.Read()
End Sub
Я не знаю, что конкретно искать в выводе, который я получил. Вывод, который я получил, был:
objectClass, description, distinguishedName, instanceType, whenCreated, whenChan
ged, subRefs, uSNCreated, dSASignature, repsTo, repsFrom, uSNChanged, name, obje
ctGUID, replUpToDateVector, creationTime, forceLogoff, lockoutDuration, lockOutO
bservationWindow, lockoutThreshold, maxPwdAge, minPwdAge, minPwdLength, modified
CountAtLastProm, nextRid, pwdProperties, pwdHistoryLength, objectSid, uASCompat,
modifiedCount, auditingPolicy, nTMixedDomain, rIDManagerReference, fSMORoleOwne
r, systemFlags, wellKnownObjects, objectCategory, isCriticalSystemObject, gPLink
, gPOptions, masteredBy, ms-DS-MachineAccountQuota, msDS-Behavior-Version, msDS-
PerUserTrustQuota, msDS-AllUsersTrustQuota, msDS-PerUserTrustTombstonesQuota, ms
Ds-masteredBy, dc, nTSecurityDescriptor,
Мне действительно нужно руководство.
UPDATE
Я использовал приведенный ниже код для получения доменов:
Dim dc As New DirectoryContext(DirectoryContextType.DirectoryServer, DcIpAddr)
Dim domc As DomainController = DomainController.GetDomainController(dc)
For Each dmn As Domain In domc.Forest.Domains
Console.WriteLine(dmn.Name)
Next
Теперь проблема в два раза. Во-первых, несоответствие в доменных именах. Предположим, что DNS-имя моего DC составляет prod.domain.com
, и ожидаемые доменные имена относятся, например, к. dev, domain, etc
. Вместо этого я получаю dev.domain.org, domain.org, etc
. Некоторые имена, которые появляются в диалоге входа в Windows, при запросе отображаются с суффиксом domain.org
; некоторые имеют суффикс .org
.
2-й вопрос - не все доменные имена (которые появляются в диалоге входа в Windows, 3-й выпадающий) появляются. Интересно, почему это так?
UPDATE
Рисунок, что другие домены (которые не появляются) могут быть частью другого сервера контроллера домена, или мне нужен доступ к dc с соответствующими учетными данными.