Здравствуйте!
Ошибка "Сервер LDAP недоступен" может возникать по разным причинам, и вы уже сделали много полезных шагов для её устранения. Давайте рассмотрим дополнительные действия, которые могут помочь выявить и исправить проблему.
### 1. Проверка сетевой конфигурации
- **DNS**: Убедитесь, что DNS правильно настроен. Попробуйте выполнить команду `nslookup` на имя LDAP-сервера. Это должно вернуть корректный IP-адрес сервера.
- **Ping**: Убедитесь, что сервер доступен с помощью команды `ping <hostname>` или `ping <IP_address>`.
### 2. Проверка сервисов
- **LDAP-сервис**: Убедитесь, что службы Active Directory работают. Проверьте службы, такие как «Active Directory Domain Services», и убедитесь, что они запущены.
### 3. Проверка настроек брандмауэра
Если у вас есть сторонний брандмауэр, попробуйте временно отключить его и протестировать соединение, чтобы исключить эту причину.
### 4. Проверка SSL-сертификата (для LDAPS)
Если вы пытаетесь подключиться по LDAPS (порт 636):
- Убедитесь, что на сервере установлен корректный SSL-сертификат.
- Используйте команду `Get-ChildItem -Path Cert:\LocalMachine\My` для проверки установленных сертификатов.
- Проверьте, что сертификат доверен для вашего клиента и использует правильное имя хоста.
### 5. Использование другого клиентского приложения
Попробуйте использовать другой клиент LDAP, например, `ldapsearch` или `LDP.exe`, чтобы осуществить подключение и посмотреть, будет ли ошибка сохраняться.
### 6. Проверка логов событий
Проверьте журналы событий на сервере в разделе «Журналы Windows» -> «Система» и «Приложение». Ищите ошибки или предупреждения, которые могут дать подсказку о причинах проблемы.
### 7. Проверка настроек аутентификации
Иногда такие ошибки могут вызываться несовпадением настроек аутентификации:
- Убедитесь, что ваш сервер настроен на разрешение использования аутентификации Negotiate и Basic.
### 8. Убедитесь, что у вас есть доступ из Powershell
В некоторых случаях использование PowerShell требует дополнительных прав. Попробуйте запустить PowerShell от администратора и повторите подключение.
### Пример кода для подключения
Убедитесь, что вы используете правильный формат при создании `LdapConnection`. Попробуйте следующий пример:
```powershell
$ldapServer = "localhost"
$port = 389 # Или 636 для LDAPS
$ldapConnection = New-Object DirectoryServices.Protocols.LdapConnection($ldapServer, $port)
$ldapConnection.AuthType = [System.DirectoryServices.Protocols.AuthType]::Negotiate
$credential = New-Object System.Net.NetworkCredential("Administrator", "Password", "domain.local")
try {
$ldapConnection.Bind($credential)
Write-Host "Успешно подключено к LDAP."
} catch {
Write-Host "Ошибка при подключении: $_"
}
```
### Заключение
Если все вышеперечисленные шаги не помогли, возможно, стоит проверить аппаратные и программные компоненты сервера на наличие неисправностей. Надеюсь, что один из этих методов поможет вам решить проблему. Если же нет, предоставьте, пожалуйста, дополнительные сведения о конфигурации и любых сообщениях об ошибках, чтобы можно было глубже проанализировать ситуацию.