使用C#API连接到Powershell Remoting

时间:2013-11-15 22:41:55

标签: powershell azure powershell-remoting winrm

寻求有关powershell api连接问题的帮助。以下代码适用于所有客户,但是,对于其中一个客户,它返回错误:

var context = new WSManConnectionInfo(new Uri(uri),
                    "http://schemas.microsoft.com/powershell/Microsoft.PowerShell",
                    new PSCredential(username, securePassword))
                              {
                                  SkipCACheck = true,
                                  SkipCNCheck = true
                              };

                using (var pool = RunspaceFactory.CreateRunspacePool(1, counterDefinitions.Count, context))
                {
                    pool.Open();

pool.Open()行返回以下异常:

  

类型的第一次机会异常   'System.Management.Automation.Remoting.PSRemotingTransportException'   发生在System.Management.Automation.dll

中      

附加信息:处理来自远程服务器的数据   xxx.xx.xx.xx失败,并显示以下错误消息:请求   带有ShellId的Windows远程shell some-guid-number失败,因为   在服务器上找不到shell。可能的原因是:   指定的ShellId不正确或shell上不再存在   服务器。提供正确的ShellId或创建新shell并重试   操作。有关更多信息,请参阅   about_Remote_Troubleshooting帮助主题。

如果要检查异常的Intellitrace,则在堆栈中抛出一个更高的异常如下:

  

“客户端无法连接到指定的目标   请求。验证目标上的服务是否正在运行   接受请求。请参阅日志和文档   在目标上运行的WS-Management服务,最常见的是IIS或   WinRM的。如果目标是WinRM服务,请运行以下命令   命令在目标上分析和配置WinRM服务:   “winrm quickconfig”。 “(System.Runtime.InteropServices.COMException)A   抛出了System.Runtime.InteropServices.COMException:“客户端   无法连接到请求中指定的目标。校验   目的地上的服务正在运行并且正在接受   要求。请参阅WS-Management的日志和文档   在目标上运行的服务,最常见的是IIS或WinRM。如果   destination是WinRM服务,运行以下命令   目的地分析和配置WinRM服务:“winrm   quickconfig“。”

关于可能出现什么问题的任何想法?客户已验证winrm正在运行和配置,并且该防火墙具有开放端口等。

服务器正在运行Windows Server 2012,作为Azure上的VM

1 个答案:

答案 0 :(得分:-1)

您可能需要配置TrustedHosts

http://support.microsoft.com/kb/555966