Проблема с отслеживанием ссылок в Active Directory

Может быть, кто-то, кто имеет больше опыта с Active Directory, может мне помочь. Мне нужно получить информацию, такую ​​как ОС, имя, полное доменное имя с компьютера в другом домене. Я объясню, что я имею в виду. У меня есть корневой домен: example.com, с двумя поддоменами: xxx.example.com и yyy.xxx.example.com

Каждый домен содержит 1 компьютер. Они оба в одной группе, например groupfoo, они также в разных OU

Я могу получить информацию о членах в группе, я пробую PowerShell и dsquery. Они оба возвращают правильный список компьютеров в группе. Но я могу получить информацию только с компьютера в том же домене, где я запускаю сценарий PowerShell и dsquery.

чтобы быть понятным, у меня есть еще один компьютер, не входящий в groupfoo, и этот компьютер используется для администрирования Active Directory.

Как я понимаю, в Active Directory у нас есть такая вещь, как "поиск рефералов". Я много читаю и, как я знаю, Power Shell не имеет таких опций, как "включить поиск рефералов". Для dsquery я нашел опцию -r для рекурсивного запроса.

Что я уже пробовал:

PS> dsquery group -name goupfoo | dsget group -members
"CN=member01,OU=Domain Controllers,DC=xxx,DC=example,DC=com"
"CN=member02,OU=XXX,OU=Domain Controllers,DC=yyy,DC=xxx,DC=example,DC=com"

Мой компьютер в DC = гггг, DC = xxx, DC = пример, DC = com Я могу получить информацию от CN=member02,OU=XXX,OU= контроллеры домена, DC = ггг, DC = xxx, DC = пример, DC = ком

PS > dsquery * -filter "(&(objectClass=Computer)(objectCategory=Computer)(sAMAccountName=member02$))" -attr sAMAccountName operatingSystem
  sAMAccountName    operatingSystem
  member02$        Windows Server 2008 R2 Standard

Выполнение той же команды для member01 не дало никаких результатов:

PS > dsquery * -filter "(&(objectClass=Computer)(objectCategory=Computer)(sAMAccountName=member01$))" -attr sAMAccountName operatingSystem
PS >

Я пробовал разные варианты dsquery, я использую ключ -r для рекурсии, но это не сработало.

Может быть, важная вещь, в настройках "DC=yyy,DC=xxx,DC= пример,DC=com" я видел, что "DC=xxx,DC= пример,DC=com" это доверенный родитель для "DC = yyy", DC = xxx, DC = пример, DC = com "может быть, я могу получить информацию, делая то же самое из родительского домена?

То же самое, что я могу получить с Power Shell Get-ADGroup, Get-ADMember и т. Д., Я пытался использовать все параметры, учетные данные, сервер и т. Д., Он всегда возвращает информацию только с одного компьютера в том же домене, что и я.

1 ответ

Попробуйте использовать DirectorySearcher объект:

$filter     = "(&(objectCategory=Computer)(sAMAccountName=$computername))"
$properties = 'distinguishedName', 'sAMAccountName', ...

$search = New-Object DirectoryServices.DirectorySearcher
$search.SearchRoot  = New-Object DirectoryServices.DirectoryEntry
$search.Filter      = $filter
$search.SearchScope = 'Subtree'
$search.ReferralChasing = [DirectoryServices.ReferralChasingOption]::All
$properties | % { $search.PropertiesToLoad.Add($_) } | Out-Null

$search.FindAll()

Я не знаю, если ActiveDirectory Командлеты модуля на самом деле поддерживают поиск рефералов.

Другие вопросы по тегам