Как я могу использовать PowerShell [adsisearcher]
чтобы запросить домен, которым я являюсь не членом? Обычно я делаю что-то вроде этого:
$myAdsi = [adsisearcher]""
$myAdsi.SearchRoot = [adsi]"LDAP://dc=corp,dc=mycompany,dc=com"
$myAdsi.Filter = "objectCategory=computer"
$res = $myAdsi.FindAll()
Если я запустил этот фрагмент на хосте в моем домене, я получу ожидаемый результат. Однако, если я запускаю это с компьютера, имеющего сетевой доступ к домену (через L2L VPN), я получаю сообщение об ошибке:
Exception calling "FindAll" with "0" argument(s): "The specified domain either does not exist or could not be contacted.
"
At line:11 char:33
+ $adComputers = $searcher.FindAll <<<< ()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Это несколько ожидаемо, поскольку я не предоставил никаких учетных данных для [adsisearcher]
это скажет ему, как аутентифицироваться. Мой вопрос: как мне позволить [adsisearcher]
знаете, что я хочу пройти аутентификацию в домене, членом которого я не являюсь?
Отредактировал мой последний ответ. Извини, что мне потребовалось время, чтобы ответить тебе. Следующее беззастенчиво скопировано с http://powershell.com/cs/blogs/ebookv2/archive/2012/03/26/chapter-19-user-management.aspx :
[ADSI] - это ярлык для типа DirectoryServices.DirectoryEntry .NET. Вот почему вы также могли настроить предыдущее соединение таким образом:
$domain = [DirectoryServices.DirectoryEntry]""
$domain
distinguishedName
-----------------
{DC=scriptinternals,DC=technet}
Итак, попробуйте это, чтобы предоставить учетные данные другому домену:
$domain = new-object DirectoryServices.DirectoryEntry("LDAP://10.10.10.1","domain\user", "secret")
$domain.name
scriptinternals
$domain.distinguishedName
DC=scriptinternals,DC=technet
Вы правы, это проблема аутентификации, хотя я бы хотел, чтобы сообщение об ошибке было более точным, чтобы отразить это. Это должно вам помочь.