Вопрос или проблема
Я пытаюсь подключиться к серверу Exchange удаленно с помощью PowerShell. Это происходит с отдельного домена Active Directory. (Подключение domainA к domainB) Я могу подключаться с domainA к серверам на других доменах без проблем. Я получаю следующую ошибку:
PS Y:\Personal\scripts> $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://server1.domainB.tld/PowerShell/ -Authentication Kerberos -Credential $cred
New-PSSession : [server1.domainB.tld] Подключение к удаленному серверу server1.domainB.tld не удалось с следующим сообщением об ошибке: Имя пользователя или пароль неверны. Для получения дополнительной информации смотрите раздел about_Remote_Troubleshooting.
По адресу строки:1 символ:12
+ $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri ht ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : LogonFailure,PSSessionOpenFailed
Это не связано с этим сервером, я получаю такие же результаты для двух других серверов в том же домене.
Мое имя пользователя в формате UPN [email protected]
. Если я использую domainB\me
, я получаю следующую ошибку:
PS Y:\Personal\scripts> $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://server1.domainB.tld/PowerShell/ -Authentication Kerberos -Credential $cred
New-PSSession : [server1.domainB.tld] Подключение к удаленному серверу server1.domainB.tld не удалось с следующим сообщением об ошибке: WinRM не может обработать запрос. Следующая ошибка с кодом ошибки 0x80090311 произошла при использовании аутентификации Kerberos: В данный момент нет доступных серверов для обработки запроса на вход в систему.
Возможные причины:
- Указанные имя пользователя или пароль неверны.
- Kerberos используется, когда не указаны методы аутентификации и имя пользователя.
- Kerberos принимает доменные имена пользователей, но не локальные имена пользователей.
- Имя принципала службы (SPN) для удаленного имени компьютера и порта не существует.
- Клиентские и удаленные компьютеры находятся в разных доменах, и между ними нет доверия.
После проверки вышеуказанных вопросов, попробуйте следующее:
- Проверьте Просмотр событий на наличие событий, связанных с аутентификацией.
- Измените метод аутентификации; добавьте целевой компьютер в конфигурацию TrustedHosts WinRM или используйте HTTPS транспорт.
Обратите внимание, что компьютеры в списке TrustedHosts могут не быть аутентифицированы.
- Для получения дополнительной информации об конфигурации WinRM выполните следующую команду: winrm help config. Для получения дополнительной информации смотрите раздел about_Remote_Troubleshooting.
По адресу строки:1 символ:12
+ $session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri ht ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : AuthenticationFailed,PSSessionOpenFailed
Я также пробовал подключаться к domainB с других доменов и получаю такие же результаты. Я предполагаю, что где-то нужно установить разрешения, но не знаю, какие.
wsman:\localhost\client\trustedhosts
установлено на правильные значения.
Я могу подключиться через RDP с теми же учетными данными без проблем, поэтому я знаю, что мои учетные данные действительны. Я также администратор домена. Серверы работают на Windows 2012 R2.
PSRemoting включен.
[PS] D:\>Enable-PSRemoting -Force
WinRM уже настроен для приема запросов на этом компьютере.
WinRM уже настроен для удаленного управления на этом компьютере.
Конфигурация PSSession
Name : microsoft.powershell
PSVersion : 4.0
StartupScript :
RunAsUser :
Permission : BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : microsoft.powershell.workflow
PSVersion : 4.0
StartupScript :
RunAsUser :
Permission : BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : microsoft.powershell32
PSVersion : 4.0
StartupScript :
RunAsUser :
Permission : BUILTIN\Administrators AccessAllowed, BUILTIN\Remote Management Users AccessAllowed
Name : microsoft.windows.servermanagerworkflows
PSVersion : 3.0
StartupScript :
RunAsUser :
Permission : NT AUTHORITY\INTERACTIVE AccessAllowed, BUILTIN\Administrators AccessAllowed
Кроме того, я пробовал подключаться с сервера в domainB к server1.domainB, и это работает нормально. Таким образом, это связано с подключением извне домена.
Тестовая аутентификация в IIS сработала нормально
Удаление -Authentication Kerberos
или использование Negotiate
также приводит к ошибкам.
wsman trustedhosts – добавил FQDN клиента на сервер. Добавил FQDN и IP сервера на клиент. Изменений не произошло.
Что мне нужно исправить, чтобы иметь возможность подключаться удаленно?
Если это была проблема с правами, ошибка была бы такой, как ‘доступ запрещен’.
Как-то сервер действительно не знает вашего пользователя (или пароль неверен).
Вы сказали, что пытаетесь подключиться ‘из DomainA в DomainB’. Это звучит так, как будто ваш пользователь находится в DomainA, но вы говорите серверу, что ваш пользователь находится в DomainB.
Попробуйте подключиться с [email protected]
или me\domainA
.
Вы пробовали удалить -Authentication Kerberos
из вашего New-PSSession? У меня есть аналогичные скрипты для управления серверами обмена в доверенных доменах, но я не указываю тип аутентификации.
$session = New-PSSession -ConnectionUri "https://mail.server.com/Powershell" -ConfigurationName Microsoft.Exchange -Credential $cred
Ответ или решение
Проблема, с которой вы столкнулись при попытке подключиться к удаленному серверу Exchange через PowerShell, обусловлена несколькими факторами. Ошибка "Имя пользователя или пароль неверны" может быть следствием неверной аутентификации, отсутствия доверительных отношений между доменами или неправильной конфигурации системы. Давайте разберем эту ситуацию более подробно.
1. Аутентификация
Вы пытаетесь подключиться к серверу, используя учетные данные, относящиеся к domainA
, но при этом указываете UPN-формат для пользователя domainB
. Если ваш пользователь находится в domainA
, попробуйте использовать формат UPN
с учетом домена, например:
$cred = Get-Credential -UserName "username@domainA.tld" -Message "Введите пароль"
или
$cred = Get-Credential -UserName "domainA\username" -Message "Введите пароль"
Попробуйте также подключиться, убрав параметр -Authentication Kerberos
. Вы можете использовать метод аутентификации по умолчанию или задать Negotiate
, который может автоматически выбрать подходящий механизм аутентификации:
$session = New-PSSession -ConnectionUri "http://server1.domainB.tld/PowerShell/" -ConfigurationName Microsoft.Exchange -Credential $cred
2. Доверие между доменами
Если domainA
и domainB
не имеют доверия, это может вызывать трудности при аутентификации. Убедитесь, что вы можете использовать ваши учетные данные из domainA
для доступа к ресурсам в domainB
. Это можно проверить с использованием команды nltest
на вашем компьютере для диагностики доверительных отношений.
3. Конфигурация WinRM и TrustedHosts
Вы упомянули, что wsman:\localhost\client\trustedhosts
настроен корректно. Убедитесь, что вы добавили как FQDN (fully qualified domain name) сервера, так и IP-адрес в этот список. Для этого можно использовать следующую команду:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "server1.domainB.tld" -Concatenate -Force
Не забудьте перезапустить WinRM после внесения изменений:
Restart-Service WinRM
4. Проверка выполнения WinRM
Убедитесь, что служба WinRM настроена и работает на сервере Exchange. Вы можете проверить состояние WinRM следующей командой:
winrm get winrm/config
Если у вас возникли проблемы с WinRM, попробуйте выполнить следующую команду на сервере, чтобы убедиться, что WinRM разрешаетRemote запросы:
winrm quickconfig
5. Логи и диагностика
Если проблема не решилась, проверьте логи событий как на клиентском, так и на серверном компьютере. Вы можете просмотреть события в "Просмотре событий" в разделе "Приложения и службы", а также в категориях, связанных с безопасностью и приложениями.
Заключение
Каждый из этих шагов поможет вам установить причину проблемы и устранить её. Необходимо удостовериться, что используются правильные учетные данные и что сетевая конфигурация и настройки соответствуют вашим требованиям для успешного подключения к удаленному серверу. В случае дальнейших трудностей рекомендую обратиться к системному администратору для более глубокой диагностики конфигурации доменов и их доверительных отношений.