Каков API для получения верхнего домена (корневого домена) из любого домена в иерархии, такого как дерево или дочерний домен?
Ближайшие, которые я смог найти, были GetForest
или GetCurrentForest
, но это не то, что я ищу ..
[System.DirectoryServices.ActiveDirectory.Forest] :: GetForest (контекст каталога)
[System.DirectoryServices.ActiveDirectory.Forest] :: GetCurrentForest ()
Заранее спасибо, -SunMan
конечно .. Сценарий запускается пользователем леса A для поиска леса B. GetCurrentForest () получает объект Forest для текущего пользовательского контекста (того, кто вошел в систему) и, таким образом, каждый раз обнаруживает лес A.
Чтобы перейти от имени чужого домена к корневому домену его леса, сначала используйте Domain.GetDomain()
, а затем захватите объект корневого домена через свойство Forest
:
$ForeignDomainDNS = 'other.domain.tld'
$ForeignDomainCtx = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext 'Domain',$ForeignDomain
$ForeignDomain = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($ForeignDomainCtx)
$ForeignRootDomain = $ForeignDomain.Forest.RootDomain
$ForeignRootDomain
теперь содержит объект Domain
, представляющий корневой домен леса чужого домена.
Хорошо .. Теперь я вижу логику, и она работает. Спасибо @Mathias
«[...] это не то, что я ищу» - не могли бы вы немного уточнить? Как информация, возвращаемая
GetCurrentForest()
, не удовлетворяет вашим требованиям?