Я хотел бы получить список компьютеров, которые являются частью домена Windows, членом которого является моя рабочая станция Windows 7.
Я хотел бы добиться этого с минимальными дополнительными установками или без них, особенно с пакетом средств удаленного администрирования сервера 230 МБ, который предлагает Microsoft.
Варианты, которые я видел до сих пор, включают инструмент DSQuery (часть пакета RSAT) и модуль ActiveDirectory для PowerShell (также часть пакета RSAT).
Что касается разрешений пользователя, который будет выполнять запрос, я хотел бы иметь возможность использовать непривилегированного пользователя домена, но администратор также является вариантом, если нет непривилегированных альтернатив.
Я также отмечу, что net view
команда отображает несколько компьютеров в одной подсети или иным образом «рядом» с рабочей станцией, но, очевидно, не все компьютеры в домене. С другой стороны, команда net view /domain:<domain_name>
не отображает результатов и возвращает ошибку 6118 (что странно, потому что тогда я ожидал net view
чтобы также не отображать результаты).
Вы всегда можете использовать ADSI интерфейсы через PowerShell / .NET и System.DirectoryServices
пространство имен.
Вот быстрый пример использования DirectorySearcher
предполагая, что вы используете PowerShell как стандартный пользователь домена.
$searcher = New-Object DirectoryServices.DirectorySearcher
$searcher.Filter = '(objectclass=computer)'
$searcher.SearchRoot = 'LDAP://DC=example,DC=com'
$searcher.FindAll()
На мой взгляд, это не так хорошо, как работать с модулем ActiveDirectory. Но это определенно выполнимо и в некоторых случаях может быть быстрее, чем модуль ActiveDirectory.
Вы также можете извлечь только файлы модуля ActiveDirectory из другой установки и добавить их в свой личный профиль, вместо того, чтобы устанавливать весь пакет RSAT. Если я правильно помню, это одна папка и около 5 МБ файлов.