Есть ли способ найти Active Directory в сети, не предоставляя никакой информации в C #? - PullRequest
2 голосов
/ 28 апреля 2011

Я ищу способ найти Active Directory в сети (вероятно, через назначенные настройки DNS / DHCP), а затем пытаюсь получить к нему доступ, получая все данные, такие как имя сервера AD, BaseDN или имя домена, из кода без попросить пользователя предоставить информацию о своей сети. Есть ли способ пойти?

    private  string strADServerName = "SERVERAD";
    private  string strBaseDN = "DC=DOMAIN,DC=COM";
    private  string strAccountFilter = "sAMAccountName";
    private  string domainName = "DOMAIN";

1 Ответ

2 голосов
/ 28 апреля 2011

При установке Active-Directory вам нужен динамический DNS (DDNS). Во время его установки AD регистрирует информацию в DNS, как вы можете видеть на следующем снимке. На данном компьютере Windows класс WMI win32_ComputerSystem может предоставить вам доменное имя.

enter image description here

Вы можете увидеть здесь под деталью _ldap запись:

enter image description here

Эта запись SRV содержит DNS-адрес и порт контроллеров домена вашего домена. Запись _ldap может иметь несколько значений, поскольку в вашем домене несколько контроллеров домена.

Используя инструмент NSLOOKUP.EXE, вы можете получить эту информацию, как показано здесь:

> set type=SRV
> _ldap._tcp.dom.fr
Serveur :   UnKnown
Address:  192.168.183.100

_ldap._tcp.dom.fr       SRV service location:
          priority       = 0
          weight         = 100
          port           = 389
          svr hostname   = wm2008r2ent.dom.fr
wm2008r2ent.dom.fr      internet address = 192.168.183.100

Если вы не знаете домен, вы можете просто запросить _ldap._tcp, как в примере выше:

> _ldap._tcp
Serveur :   UnKnown
Address:  192.168.183.100

_ldap._tcp.dom.fr       SRV service location:
          priority       = 0
          weight         = 100
          port           = 389
          svr hostname   = wm2008r2ent.dom.fr
wm2008r2ent.dom.fr      internet address = 192.168.183.100

С точки зрения C # я не уверен, что класс System.Net.DNS позволяет запрашивать записи SRV. Вы можете найти в эту запись кодового комплекса Кажется, что сборка DnDNS делает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...