Powershell Remoting:运输异常

时间:2013-08-23 22:02:39

标签: powershell powershell-remoting

这是我正在使用的代码:

const string username = "domain\\user";
const string password = "password";
var credentials = new PSCredential(username, password.ToSecureString());
var connInfo = new WSManConnectionInfo(new Uri("https://server.domain.com/powershell"), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credentials)
                           {AuthenticationMechanism = AuthenticationMechanism.Negotiate};

var rS = RunspaceFactory.CreateRunspace(connInfo);

rS.Open();

这是例外:

  

连接到远程服务器server.domain.com失败,并显示以下错误消息:WinRM客户端无法处理请求。服务器不支持客户端请求的身份验证机制,或者在服务配置中禁用未加密的流量。验证服务配置中的未加密流量设置,或指定服务器支持的一种身份验证机制。要使用Kerberos,请将计算机名称指定为远程目标。还要验证客户端计算机和目标计算机是否已加入域。要使用Basic,请将计算机名称指定为远程目标,指定基本身份验证并提供用户名和密码。服务器报告的可能的身份验证机制:有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。

所以这是我的困惑。

  • 我检查了客户端计算机上的WSMan:\ localhost \ Client,并确保AllowUnencrypted为$ true。
  • 我在服务器上检查了WSMan:\ localhost \ Service,并确保AllowUnencrypted为$ true。
  • WSMan:\ localhost \ Service \ Auth已经协商,Kerberos也设置为$ true。

我还可以检查什么来摆脱异常?

1 个答案:

答案 0 :(得分:1)

我无法对此进行测试,但在查看MSDN Blog处的另一个示例后,无论您选择哪种凭据,似乎都需要更新connInfo行以添加服务器名称使用。

var connInfo = new WSManConnectionInfo(new Uri("https://server.domain.com/powershell", ADD_SERVER_NAME_HERE), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credentials) { AuthenticationMechanism = AuthenticationMechanism.Negotiate };