PowerShell远程处理Win2008R2“WSMan服务无法启动主机进程来处理给定的请求”

问题描述 投票:8回答:1

我最近从2003年到2008年升级了许多服务器。自升级以来,我开始看到以下错误:

[servername]连接到远程服务器失败,并显示以下错误消息:WSMan服务无法启动主机进程来处理给定的请求。确保正确注册了WSMan提供程序主机服务器和代理。有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。

错误似乎是随机的。该脚本将工作,然后失败。创建会话的命令处于循环中(创建会话,删除会话),并且作为一组部署脚本的一部分被多次调用。当脚本失败时,它会在不同的点失败。

我检查了本地工作站(win7)目标服务器(win2008R2)上的事件日志,但没有我能看到的错误。

这是随机失败的行:

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

我在Win2003上没有看到这个问题。脚本没有改变。我假设问题出在目标服​​务器上,但无法找到任何错误或日志来查看。它将工作一次然后失败,因此我的部署脚本有时会成功,然后在不同的点失败。

任何关于追踪这个问题的指导都将非常感激。

powershell windows-server-2008 powershell-v2.0 powershell-remoting
1个回答
0
投票

您是否通过创建崩溃并使进程保持打开状态的pssessions来达到进程数限制?

默认限制是15.我同意上面的注释而不使用会话,而是使用invoke-command,如:

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版本的脚本失败时,使用set-item cmdlet将maxProcessesPerShell限制增加到50并重试。如果脚本不再失败,您就知道这是问题(并且应该考虑转移到invoke-command!)。

© www.soinside.com 2019 - 2024. All rights reserved.