PowerShell Remoting Win2008R2 «Служба WSMan не смогла запустить хост-процесс для обработки данного запроса» - PullRequest
8 голосов
/ 05 января 2012

Я недавно обновил несколько серверов с 2003 до 2008R2. После обновления я начал видеть следующую ошибку:

[имя_сервера] Не удалось подключиться к удаленному серверу со следующим сообщением об ошибке: Службе WSMan не удалось запустить хост-процесс для обработки данного запроса. Убедитесь, что хост-сервер и прокси-сервер WSMan правильно зарегистрированы. Для получения дополнительной информации см. Раздел справки about_Remote_Trou Troubleshooting.

Ошибка кажется случайной. Сценарий будет работать, а затем потерпит неудачу. Команда для создания сеанса находится в цикле (создать сеанс, удалить сеанс) и вызывается множество раз как часть набора сценариев развертывания. Когда сценарий терпит неудачу, он терпит неудачу в разных точках.

Я проверил журнал событий на конечном сервере локальной рабочей станции (win7) (win2008R2), но я не вижу никаких ошибок.

Это случайные строки:

$ session = New-PSSession -ComputerName $ serverName -Credential $ credential

Я не видел этой проблемы на Win2003. Сценарии не изменились. Я предполагаю, что проблема на целевом сервере, но не могу найти никаких ошибок или журналов для просмотра. Он сработает один раз, а затем потерпит неудачу, поэтому мои сценарии развертывания иногда будут успешными, а затем завершатся с ошибкой в ​​разные моменты.

Будем весьма благодарны за любые рекомендации по отслеживанию этой проблемы.

1 Ответ

0 голосов
/ 23 января 2014

Достигаете ли вы ограничения по количеству процессов, создавая сбойные pssessions и оставляя процессы открытыми?

Ограничение по умолчанию - 15. Я согласен с приведенным выше комментарием и не буду использовать сеансы, вместо этого используйте команду invoke, например:

invoke-command -scriptblock $scriptBlock -ArgumentList $args -computername $compName -Credential $encodedRemoteCredentials

Проверить лимит:

PS C:\aws> ls WSMan:\localhost\Shell


   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Shell

Name                      Value
----                      ----
MaxProcessesPerShell      15

В качестве быстрого и грязного теста - в следующий раз, когда ваша версия сценария pssession завершится неудачно, увеличьте ограничение maxProcessesPerShell с помощью командлета set-item до 50 и повторите попытку. Если сценарий больше не завершается сбоем, вы знаете, что это проблема (и вам следует рассмотреть возможность перехода к invoke-command!).

...