#c# #c#-4.0 #active-directory
#c# #c #-4.0 #active-directory
Вопрос:
Я ищу способ найти 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:
При установке Active Directory вам нужен динамический DNS (DDNS). Во время своей установки AD регистрирует информацию в DNS, как вы можете видеть на следующем снимке. На данном компьютере с Windows класс WMI win32_ComputerSystem
может предоставить вам доменное имя.
Вы можете посмотреть здесь в разделе подробная _ldap
запись :
В этой 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. Вы можете найти в этой записи codeplex, что сборка DnDNS, похоже, делает это.
Комментарии:
1. Я знаю о методе nslookup .. хотя вам все равно придется вводить _ldap._tcp.dom.fr не так ли? итак, вы должны знать, что ищете?
2. Win32_ComputerSystem может предоставить вам «dom.fr «часть.
3. Будет ли он предоставлять это и на компьютере вне домена?
4. Конечно, нет. Что вы действительно хотите сделать? обнаружить AD в сети с нуля?
5. Ну да. У меня есть компьютер, который не находится в домене, но мне нужно, чтобы он мог обнаруживать Active Directory, когда он подключен к сети. Чтобы в программе, которую я буду писать, мне не нужно было вводить имя домена и так далее, Но я мог бы просто выбрать его из меню выбора, а программа сделала бы все остальное. Учитывая, что DHCP проверяет DNS, который также является Active Directory, это должно быть выполнимо.