Задать вопрос
@nstadnik

Как исправить ошибку 'Сервер LDAP недоступен' при подключении к LDAP на Windows Server 2022?

Привет!

Я сталкиваюсь с проблемой подключения к серверу Active Directory (LDAP) на Windows Server 2022. При попытке выполнить подключение с использованием PowerShell, я получаю ошибку: 

> "Сервер LDAP недоступен."

Я проверил, что порт 389 (для обычного LDAP) и 636 (для LDAPS) открыты, а также что сервер доступен и корректно работает.

Вот шаги, которые я предпринял:

1. Использовал команду Test-NetConnection для проверки доступности портов 389 и 636 — оба порта доступны.
2. Пробовал подключиться через PowerShell с использованием разных типов аутентификации:
   - Negotiate
   - Basic
3. Пытался подключиться как Administrator с правильными учетными данными: 

```powershell
$ldapConnection = New-Object DirectoryServices.Protocols.LdapConnection("LDAP://localhost:389")
$ldapConnection.AuthType = [System.DirectoryServices.Protocols.AuthType]::Negotiate
$credential = New-Object System.Net.NetworkCredential("Administrator", "Password", "domain.local")
$ldapConnection.Bind($credential)
```


4. Проверил разрешения учетной записи Administrator с помощью dsacls. Все необходимые разрешения присутствуют.
5. Пробовал подключаться к localhost через port 389 и 636, но получаю ошибку: "Сервер LDAP недоступен".

Может ли быть проблема в настройках безопасности, аутентификации или чем-то другом? Если у кого-то есть опыт решения подобных проблем, буду рад любым советам и рекомендациям.
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@NortheR73
системный инженер
Конечная цель упражнения какая? Если для поиска объектов в AD/ADLDS, то обычно для этого берут System.DirectoryServices.DirectorySearcher и/или System.DirectoryServices.DirectoryEntry либо командлеты PS-модуля ActiveDirectory (почему их не используете?).
Вот нашел в своих старых записях:
$ldapIdentifier = New-Object -TypeName System.DirectoryServices.Protocols.LdapDirectoryIdentifier(ServerFQDN,Port)
$ldapConnection = New-Object System.DirectoryServices.Protocols.LdapConnection($ldapIdentifier)
$ldapConnection.AuthType = [System.DirectoryServices.Protocols.AuthType]::Negotiate  <<< тут можно поиграться с типами (Basic, Anonymous и т.д.)
$credential = New-Object System.Net.NetworkCredential("Admin Distinguished Name","Password")
$ldapConnection.Bind($credential)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы