Удаленный Powershell не работает, но работает test-wsman

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

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

$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_Trou 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, проверять настройки брандмауэра и привилегии пользователя

3 ответа

Решение

Я решил свою проблему. Существует известная проблема между 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

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

$curValue = (get-item wsman:\localhost\Client\TrustedHosts).value
set-item wsman:\localhost\Client\TrustedHosts -value "$curValue, serverB_alias"

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

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

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

Источник /questions/97668/dobavit-novyij-server-v-dispetcher-serverov-poluchit-oshibku-kerberos-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

Я столкнулся с этой проблемой в VMWare и исправил ее, выполнив следующие действия.

Я удалил как ServerA, так и ServerB из списка пользователей и компьютеров Active Directory.

Затем я изменил сетевой идентификатор ServerA и ServerB с домена на рабочую группу.

Затем я перезапустил ServerA и ServerB и переместил их обратно в домен.

затем я бегуEnable-PSRemoting -forceкак на ServerA, так и на ServerB, еслиWinRM serviceне работает.

Другие вопросы по тегам