Remote Powershell не работает, но test-wsman работает

Мне нужно написать сценарий для некоторой рутинной задачи для удаленного выполнения с serverA на многих хостах, но некоторые из них не могут выполнить сценарий.

Если я выполню это:

$cred = Get-Credential myUser
Invoke-Command -ComputerName serverB -ScriptBlock{gci d:\} -Credential $cred

или это :

Test-WSMan -ComputerName ServerB -Credential $cred -Authentication Negotiate

Я получаю следующую ошибку

[SeverB] Не удалось подключиться к удаленному серверу ServerB, появляется следующее сообщение об ошибке: WinRM не может обработать запрос. Следующая ошибка с кодом ошибки 0x80090322 произошла при использовании проверки подлинности согласования: неизвестно произошла ошибка безопасности. Возможные причины: -Указанное имя пользователя или пароль недействительны. -Kerberos используется, когда не указан метод аутентификации и имя пользователя. -Kerberos принимает имена пользователей домена, но не имена локальных пользователей. -Имя участника службы (SPN) для имени и порта удаленного компьютера не существует. -Клиентский и удаленный компьютеры находятся в разных доменах, и между этими двумя доменами нет доверия. Проверив указанные выше проблемы, попробуйте следующее: -Проверьте просмотр событий на наличие событий, связанных с аутентификацией. -Изменить метод аутентификации; добавьте конечный компьютер в параметр конфигурации WinRM TrustedHosts или использовать транспорт HTTPS. Обратите внимание, что компьютеры в списке TrustedHosts могут не пройти проверку подлинности. -Для получения дополнительных сведений о конфигурации WinRM выполните следующую команду: winrm help config. Для большего Для получения дополнительной информации см. раздел справки about_Remote_Troubleshooting. + CategoryInfo: OpenError: (serverB: String) [], PSRemotingTransportException + FullyQualifiedErrorId: -2144108387, PSSessionStateBroken

Но когда я использовал только test-wsman:

Test-WSMan -ComputerName ServerB

wsmid : 
http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 0.0.0 SP: 0.0 Stack: 3.0

я не знаю, где могла быть проблема. Я уже пробовал использовать enable-psremote , winrm qc , проверять настройки брандмауэра и права пользователя

2
задан 6 October 2017 в 15:38
2 ответа

Я решил свою проблему. Существует известная проблема между Kerberos Autentication, Remote Powershell и Intregation Service (это приложение запущено на сервере). Информацию можно найти здесь и здесь

Мне нужно создать DNS-запись A для сервера (serverB_alias) и установить HTTP spn для этого сервера на учетную запись, указав порт, который пытается wsman для подключения (5985).

setspn -s http/serverB domain\user
setspn -s http/serverB.domain domain\user
setspn -s http/serverB_alias:5985 domain\user
setspn -s http/serverB_alias.domain:5985 domain\user

Наконец, я добавляю к серверу A список доверенных хостов псевдонима DNS, используя:

$curValue = (get-item wsman:\localhost\Client\TrustedHosts).value
set-item wsman:\localhost\Client\TrustedHosts -value "$curValue, serverB_alias"
1
ответ дан 3 December 2019 в 11:27

похоже на проблему с существующей проблемой сопоставления spn. В PowerShell вы можете удалить учетную запись spn и повторить попытку.

setspn -D HTTP/SERVERNAME <domain account>
setspn -D HTTP/SERVERNAME.DOMAINAME.COM <domain account>

если проблема не исчезнет, ​​вы можете проверить, используя IP-адрес (IPv4) вместо имя сервера для обхода ошибки Kerberos.

Источник https://serverfault.com/questions/580411/windows-server-manager-kerberos-error-0x80090322

https://social.technet.microsoft.com/Forums/windows/en-US/a4c5c787 -ea65-4150-8d16-2a19c569a589 / enterpssession-winrm-cannot-process-the-request-kerberos-authentication-error-0x80090322? forum = winserverpowershell

1
ответ дан 3 December 2019 в 11:27

Теги

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