3

Недавно PowerShell прекрасно работал с CredSSP, но теперь каждый раз, когда я пытаюсь установить сеанс удаленного взаимодействия с помощью CredSSP, я получаю следующую ошибку:

Enter-PSSession: подключение к удаленному серверу server01.contoso.com завершилось неудачно со следующим сообщением об ошибке: Клиент WinRM получил состояние ошибки HTTP-сервера (500), но удаленная служба не включала никакой другой информации о причине сбоя. Для получения дополнительной информации см. Раздел справки about_Remote_Trou Troubleshooting. В строке: 1 символ: 1 + Enter-PSSession -ComputerName server01.contoso.com -Credential $ cred -Аутентификация C ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo: InvalidArgument: (server01.contoso.com:String) [Enter-PSSession] , PSRemotingTransportException + FullyQualifiedErrorId: CreateRemoteRunspaceFailed

Я попытался сбросить службу winrm с помощью winrm invoke restore winrm/config

Я попытался отключить удаленное взаимодействие PowerShell, отключить CredSSP (клиент и сервер), повторно включить удаленное взаимодействие PowerShell, повторно включить CredSSP, отключить любые объекты групповой политики, связанные с настройкой WinRM и делегированием учетных данных, и ничего не помогло. Есть ли способ углубиться в это, чтобы выяснить, что происходит?

Это влияет на все системы Windows Server 2012 в моей лабораторной среде, которые, очевидно, работают под управлением PowerShell v3.

На стороне клиента я вижу это в журнале событий удаленного управления Windows : WSMan operation CreateShell failed, error code 2150859120

Настроить сервер

  • Disable-PSRemoting -Force;
  • Disable-WsmanCredssp -Role Client;
  • Disable-WsmanCredssp -Role Server;
  • Enable-PSRemoting -Force;
  • Set-WSmanQuickConfig -UseSSL -Force;
  • Enable-WsmanCredSSP -Role Server -Force;

Настроить клиент

  • Disable-PSRemoting -Force;
  • Disable-WsmanCredssp -Role Client;
  • Disable-WsmanCredssp -Role Server;
  • Enable-PSRemoting -Force;
  • Set-WSmanQuickConfig -UseSSL -Force;
  • Enable-WsmanCredssp -Role Client -DelegateComputer *.contoso.com -Force;

После настройки клиента и сервера выполните:

$cred = Get-Credential;
Enter-PSSession -ComputerName server.contoso.com -Credential $cred -Authentication CredSSP;

Это воспроизводит ошибку последовательно.

1 ответ1

1

Я думаю, что, возможно, нашел проблему.

У меня изначально были проблемы с слушателем HTTPS. Я хотел использовать явный IP-адрес, но он доступен только при использовании SSL. Настройка прослушивателя SSL с помощью следующего:

Set-WSManQuickConfig -UseSSL -Force

или же

winrm quickconfig -transport:https -Force

настроит прослушиватель на сервере, но все равно потерпит неудачу при подключении с клиента с параметром -UseSSL .

Я отказался от IP-адресов и вернулся к использованию имен компьютеров. Я оставил попытки установить HTTPS в скрипте, но столкнулся с проблемами, которые у вас были с 500 ответами при использовании Credssp для аутентификации.

Наконец, я решил попробовать по одной вещи за раз. Как только я удалил настройки HTTPS, все заработало!

Мой полный сценарий выглядит так:

# Disable/revoke winrm/remoting
Start-Service winrm
winrm invoke restore winrm/config

Disable-PSRemoting -Force
Disable-WSManCredSSP -Role Client
Disable-WSManCredSSP -Role Server
Stop-Service winrm

# Enable remoting
Enable-PSRemoting -Force
Enable-WSManCredSSP -Role Server -Force
Enable-WSManCredSSP -Role Client -DelegateComputer "*.mydomain.com" -Force
winrm enumerate winrm/config/listener

Set-Item WSMan:\localhost\Client\TrustedHosts "*.mydomain.com" -Force

Это конечно не идеально, но я надеюсь, что это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .